Kalibracja przetwornika A/C w ADuC841

Witam,

Nie wiem co robię źle, ale za nic nie potrafię skalibrować wewnętrznego przetwornika A/C w mikrokontrolerze ADuC841. (PDF:

formatting link
od strony 30)

Na wejście kanału 0 poprzez bufor na LM358 podaje napięcie z potencjometru, wszystko to zasilane z AVDD. Porównuje napięcie mierzone multimetrem na wejściu kanału 0 (wyjście wzm. oper.) z napięciem obiczonym przez uC na podstawie odczytu z rejestrów przetwornika.

Bez kalibracji błąd jest niewielki, natomiast po kalibracji tylko błędu offsetu (zera), lub tylko błędu wzmocnienia, lub obu błędów naraz pojawia się znaczny błąd (błąd 120mV przy Uwe = 500mV).

Dokonałem kilkunastu pomiarów (na szybko) i uzyskałem takie ch-yki:

formatting link
Kalibracji dokonuję zgodnie z dokumentacją, tzn.: (obsługa przetwornika w procedurze przerwania)

----- MOV ADCCON1, #8Ch ; podzial przez 32 i 4 okresy akwizycji

MOV ADCCON2, #0Bh ; odczyt z kanalu AGND MOV ADCCON3, #25h ; uruchom kal. offsetu (31 odczytow) kal_1: MOV A, ADCCON3 ; sprawdzaj czy kalibracja juz sie JB ACC.7, kal_1 ; zakonczyla

MOV ADCCON2, #0Ch ; odczyt z kanalu Vref MOV ADCCON3, #27h ; uruchom kal. wzmocnienia (31 odczytow) kal_2: MOV A, ADCCON3 JB ACC.7, kal_2

MOV ADCCON2, #00h ; odczyt z kanalu 0 MOV IE, #0C0h ; przerwania od przetwornika ADC

pomiar: SETB SCONV ; uruchom pojedynczy pomiar CALL Delay_100ms ; co 100ms JMP pomiar

-----

Podobne jest, jeśli np. kanał 1 połączę z masą analogową i użyję go do kalibracji błędu zera (nie próbowałem tego robić z Vref). Wg pomiarów (nóżka Cref) Vref = 2.48V (powinno być 2.5V z dokładnością +/-10mV).

Próbowałem zmieniać ilość pomiarów przy kalibracji (średnia), kolejność kalibracji, ale ten duży błąd nadal występuje.

Mikrokontroler zasilam pojedyńczym napięciem DVDD=5V (część analogowa jest zasilana wg dokumentacji - przez diody, rezystor i dławik), masy (AGND i DGND) połączone w jednym miejscu blisko uC, wyświetlacz LCD zasilam od strony masy cyfrowej (z DVDD), zaś wzm. oper. i potencjometr od strony masy analogowej (z AVDD), przy każdym układzie kondesatory odsprzęgające (na płytce z uC w SMD), kabel z przetwornika ekranowany. Odczyt jest dość stabilny, tyle, że ze sporym błędem.

Czy ktoś ma jakieś pomysły, co może być nie tak?

Reply to
Dykus
Loading thread data ...

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.