Страница 1 из 1

АЦП в Xmega

Добавлено: Пт янв 15, 2016 06:17:36
Nosaer
Всем доброго времени суток.
Возникла проблема с АЦП на контроллере Xmega.
Настраиваю, запускаю автоматическое преобразование и все время получаю одно и то же значение, плавающее в некотором не большом интервале.
Причем это значение постоянно для любого напряжения поданного на вывод, и даже если на него вообще ничего не подавать.
Возможно кто то работал с АЦП на этом контроллере и сможет помочь)
Вот собственно функция настройки.

Код: Выделить всё

void ADC_init()
{	
	ADCA.CAL=0xff;										// Значение для калибровки АЦП
	ADCA.CTRLB = ADC_RESOLUTION_12BIT_gc;					// 12 бит дескретизация
	ADCA.REFCTRL = 0x00;
	 ADCA.REFCTRL = ADC_REFSEL_INT1V_gc | 0x02;				// Опорное напряжение 1 В.
	ADCA.PRESCALER =ADC_PRESCALER_DIV512_gc;				// Переферийная частота работы АЦП
	ADCA.CH0.CTRL = ADC_CH_INPUTMODE_SINGLEENDED_gc;		// CH0 настроен на внешний нессимметричный вход
	//ADCA.CH0.CTRL = ADC_CH_INPUTMODE0_bm;
	ADCA.CH0.MUXCTRL = ADC_CH_MUXPOS_PIN3_gc; 				// Настраиваем как положительный вывод порта для АЦП
	//ADCA.CH0.MUXCTRL = ADC_CH_MUXINT0_bm;
	ADCA.CTRLA = ADC_ENABLE_bm;							// Активирую АЦП
	ADCA.CTRLB|=(1<<3);			                                                //старт  автоматического преобразования АЦП						
}
И да, постоянное значение плавает где то в районе 2500. И почему то при изменении скорости преобразования в регистре ADCA.PRESCALER =ADC_PRESCALER_DIV512_gc;, она изменяется на единиц 200.

Re: АЦП в Xmega

Добавлено: Пт янв 15, 2016 10:55:37
НАПАЛМ
Может у вас вход АЦП на выход ЦАП сконфигурирован? :)

Re: АЦП в Xmega

Добавлено: Пт янв 15, 2016 12:40:19
Nosaer
Нет, на внешний сигнал. Хотя с цапом бы тоже работало, так как именно с него я и выдаю напряжение для проверки АЦП.
Проблема решилась заменой контроллера. Видимо убил я как то вывод. А неделю мучался наверно с ним.
Спасибо за ответ)