Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как грамотно инсталлировать ADC
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
maug
SAM7S256
Как правильно расчитать параметры SHTIM, STARTUP, PRESCAL?
Формулы есть:

PRESCAL - настройка предварительного делителя частоты синхронизации АЦП
Fсинхр=Fmck/((PRESCAL)*2);


STARTUP - время активизации АЦП
Tактивизации = (STARTUP+1)*8/Fсинхр;

SHTIM - время выборки хранения (в-х)
Тв-х=(SHTIM+1)/Fсинхр;

Так вот, что такое и где взять Fсинхр и Тв-х.

PS Исходные данные:
Используется один канал, аппаратный запуск от TIOA (таймер-счетчик TC1) частота выборок 6кГц, используется DMA.
KAlex
Может примерчик поможет.

/* ADC field definition for the Mode Register: Reminder
TRGEN => Selection bewteen Software or hardware start of conversion
TRGSEL => Relevant if the previous field set a Hardware Triggering Mode
LOWRES => 10-bit result if ths bit is cleared 0
SLEEP => normal mode if ths is cleared
PRESCAL => ADCclock = MCK / [(PRESCAL + 1)*2]
STARTUP => Startup Time = [(STARTUP + 1)*8] / ADCclock
SHTIM => Tracking time = (SHTIM + 1) / ADCclock
*/
#define TRGEN (0x0) // Software triggering
#define TRGSEL (0x0) // Without effect in Software triggering
#define LOWRES (0x1) // 8-bit (0x0) // 10-bit result output format
#define SLEEP (0x0) // Normal Mode (instead of SLEEP Mode)
#define PRESCAL (0x0) //MCK/2 //(0x4) // Max value
#define STARTUP (0x11) // This time period must be higher than 20 µs
#define SHTIM (0x3) // Must be higher than 3 ADC clock cycles but depends on output
// impedance of the analog driver to the ADC input
//*--------------------------------------------------------------------------------------
//*--------------------------------------------------------------------------------------
void ADC_init(void){
AT91F_ADC_SoftReset (AT91C_BASE_ADC);
AT91F_ADC_CfgModeReg (AT91C_BASE_ADC, (SHTIM << 24) | (STARTUP << 16) | (PRESCAL << 8) | (SLEEP << 5) | (LOWRES <<4) | (TRGSEL << 1) | (TRGEN )) ;
AT91F_ADC_EnableChannel (AT91C_BASE_ADC, (1<<CHANNEL4)|(1<<CHANNEL5)|(1<<CHANNEL6)|(1<<CHANNEL7) );
AT91F_ADC_StartConversion (AT91C_BASE_ADC);
}
//*--------------------------------------------------------------------------------------
maug
Цитата(KAlex @ Oct 3 2007, 17:09) *
Может примерчик поможет.


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