[an error occurred while processing this directive]
Точность АЦП MCS1210
(«Телесистемы»: Конференция 'Микроконтроллеры и их применение')

миниатюрный аудио-видеорекордер mAVR

Отправлено cka 19 сентября 2005 г. 19:10

Возникла проблема с точностью измерений.
Код такой:

//----BEGIN----//
...
#define DECIMATION 1728
float adc_res;
...
CKCON=0; // Clock control
// Timer setup
//USEC=10; // One Microseconds Register
ACLK=9; // Analog clock
// ADC Setup
PDCON&=0x0F7; // turn on ADC
ADMUX=0x18; // Select RDT
ADCON0=0x30; // BOD->off, EVREF->on, VREFH=2.5, EBUF->disable, PGA=1
// Freq=10Hz
ADCON2=DECIMATION&0xFF; // LSB of decimation
ADCON3=(DECIMATION>>8)&0x07; // MSB of decimation

ADCON1=0x01; // bipolar, filter:auto, self calibration Ofset & Gain
ADC_Skip_Time(4);

while(1){
for(i=0;i while(!(AIE&0x20)); // Wait for result
adc_res+=bipolar();
}
adc_res=adc_res/SAMPLES; // average result
adc_res=adc_res*5050/0x800000; // resistance
}
//----END----//

значения сопротивления получаются 53.40-53.43
На 0x18(ADMUX) стоит резистор,
его точное сопротивление 53.504 (в этом не приходится сомневаться)
В чем может быть проблема? ...

Я правильно понимаю:
ACLK задает частоту дискретизации выходных данных (f) с АЦП по формуле:
f=11059200/(ACLK+1)/64;
ADCON[2:3] - частоту ... э-э-э не могу сформулировать правильно
(в документации Decimation Ratio-Коэффициент Прореживания?)по формуле:
ADCON[2:3]=f/f1, где f1 - нужная частота.
В моем случае f=17.28 kHz
f1=10 HZ
при изменении ACLK, показания значительно изменяются.
Например, при ACLK=3 (т.е. f=43.2 kHZ) значения где-то 53.5-53.52
Так и должно быть?

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru