Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Непонятки с ADC (AT91SAM7X)
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
KAlex
VREF - половина питания.
Входы ADC подтянуты к питанию через 51к.
Меряю статический сигнал (опрос кнопок подлюченных по принципу R2R) на 4 канале.
5 канал - только подтяжка, сигнал не подается.

#define TRGEN (0x0)
#define TRGSEL (0x0)
#define LOWRES (0x0)
#define SLEEP (0x0)
#define PRESCAL (0x0)
#define STARTUP (0x11)
#define SHTIM (0x3)
Инициализация:
AT91C_BASE_ADC->ADC_CR = AT91C_ADC_SWRST;
AT91C_BASE_ADC->ADC_MR = (SHTIM << 24) | (STARTUP << 16) | (PRESCAL << 8) | (SLEEP << 5) | (LOWRES <<4) | (TRGSEL << 1) | (TRGEN );
AT91C_BASE_ADC->ADC_CHER = (1<<CHANNEL4)|(1<<CHANNEL5);
AT91C_BASE_ADC->ADC_CR = AT91C_ADC_START;

Считывание в цикле:
while (!( (AT91C_BASE_ADC->ADC_SR & (1<<CHANNEL4)|(1<<CHANNEL5)) == (1<<CHANNEL4)|(1<<CHANNEL5)) );
scan_data4 = AT91C_BASE_ADC->ADC_CDR4;
scan_data5 = AT91C_BASE_ADC->ADC_CDR5;
AT91C_BASE_ADC->ADC_CR = AT91C_ADC_START;

При подаче какого либо уровня на 4 канал изменяется не только scan_data4, но и scan_data5.
т.е. если было 3FF то становится 3FE, 3F0 - младшие глючат.
В чем причина? Еррату смотрел, вроде ничего нет такого.
aaarrr
Цитата(KAlex @ Sep 11 2009, 11:21) *
В чем причина? Еррату смотрел, вроде ничего нет такого.


Цитата
#define PRESCAL (0x0)

А MCK точно не выше 10MHz? Предельная часта ADCClock для 10 бит режима - 5MHz.

Ну и на это надо обратить внимание:
Цитата
The user can drive ADC input with impedance up to:
• ZOUT ≤ (SHTIM -470) x 10 in 8-bit resolution mode
• ZOUT ≤ (SHTIM -589) x 7.69 in 10-bit resolution mode
KAlex
Цитата(aaarrr @ Sep 11 2009, 15:07) *
А MCK точно не выше 10MHz? Предельная часта ADCClock для 10 бит режима - 5MHz.

Да. Выше.
Сейчас буду проверять.

Спасибо.
Теперь все адекватно заработало.
Calculator
Цитата(KAlex @ Sep 11 2009, 13:21) *
VREF - половина питания.

А в этом не может быть проблемы? По даташиту на SAM7X VREF должен быть не менее 2.6 в 10-битном и не менее 2.5 в 8-битном режимах
KAlex
Цитата(Calculator @ Sep 18 2009, 11:40) *
А в этом не может быть проблемы? По даташиту на SAM7X VREF должен быть не менее 2.6 в 10-битном и не менее 2.5 в 8-битном режимах

Не. Все, разобрался. Причина в тактовой была.
Хотя для более точных измерений может и нужно на это внимание обратить. В моем случае(R2R) все и так работает нормально.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.