szum ADC w Atmega16

Witam,

Mam problem z dużym szumem przy pracy ADC w tym procku.

Wszystko zasilam z +12V - procesor przez 7805 + elektrolity + kilka

100nF przy procku. AVCC mam zapodane dodatkowo przez filtr LC. VRef robię osobno z tego +12V przy pomocy TL431. Masy spotykają się w jednym punkcie - przy jednej nodze masy procesora. Wszystko zmontowane na PCB.

Procek chodzi na 16MHz. Gdy zewrę wejście analogowe do masy - wynik przetwarzania jest z przedziału 0-5. Gdy mierzę napięcie na bateryjce to wyniki przetwarzania potrafią się różnić o 10-12, czyli czterech ostatnich bitów w zasadzie nie mam.

WTF? To mój pierwszy cyfrowo-analogowy układ i wyraźnie gdzieś się rąbnąłem.

TP.

Reply to
Tomasz Piasecki
Loading thread data ...

To będę mógł zrobić w robocie w poniedziałek.

Dałem je wszędzie gdzie się da :)

Dzięki za te pomysły i czekam na następne.

TP.

Reply to
Tomasz Piasecki

A wprowadzasz go w tryb Noise Reduction?

Reply to
Krzysiek Kubicki

Wydaje mi się że tak. Ustawiam odpowiednie bity, nie odpalam samego przetwarzania (ADSC) tylko daję sleep i po tym wchodzi mi w obsługę przerwania ADC.

Wielkość tych błędów nie zależy od tego czy korzystam z Noise Reduction czy nie :/

TP.

Reply to
Tomasz Piasecki
Reply to
invalid unparseable

Jest tylko kwarc do procka.

Myślałem że do 10 bitów wystarczy w zupełności

Ustalane dzielnikiem z 1% rezystorów na 5V.

Nie wiem o jaki generator Ci chodzi. W pdf piszą, że zatrzymuje się clk_i/0, clk_cpu, clk_flash.

Aż do końca przetwarzania i odpalenia przerwania ADC.

Próbkuję 1x na sekundę, preskaler zegarka ADC ustawiłem na 128, co daje

125kHz taktowania ADC - mieści się to w zalecanym przedziale częstotliwości.

Próbowałem pojechać na wewnętrznym RC - zawsze to kilka razy wolniej, i nie było różnic. A z 32768 byłby taki problem że wyniki konwersji wysyłam po rs232 do komputera.

Sprawdzę w poniedziałek.

Raczej screenshot - schemat jest mój :)

formatting link
Uprzedzając pytania. Masa w złączu podpiętym pod port A jest pociągnięta z nogi AGND procka.

TP.

Reply to
Tomasz Piasecki

Ten Pan wygrywa zestaw sekatorów ogrodniczych!

Mała interwencja rozlutownicą, mała zmiana w programie i wynik przetwarzania nie drgnie ani o bit.

Dzięki, już wiem zatem jaka jest przyczyna błędów. Muszę coś innego wstawić jako źródło +5V Vref. Albo coś pokombinować z tym co miałem.

TP.

Reply to
Tomasz Piasecki

Pokombinowałem i sam nie wiem co jest grane. Zmieniłem rezystory, teraz vref jest 4,92 było 5,00. VCC mam 5,04. Czy to możliwe że przyczyną złego zachowania było Vref zbyt bliskie vcc?

TP.

Reply to
Tomasz Piasecki
Reply to
invalid unparseable

Ale ja teraz mam to vref z tego samego tl431 wlutowanego z powrotem, tyle że rezystory są inne. Vref zmniejszyło się o 100mV i już ADC pracuje jak należy. Czasem o 1 bit przeskoczy. Oprócz tego nic nie zmieniałem.

Obawiam się teraz, że jak w tym układzie podłączę vref do +5V z nie wiem jak fajnego ZNO to będę miał ten sam problem co początkowo. Już chyba wolę tak jak jest, te 100mV nie robią mi różnicy, byle je uwzględnić w wyniku.

Tak jest.

Próbowałem na wewnętrznym RC lecieć i to nie pomogło. A wychodzi właśnie 1MHz z tego zegarka.

TP.

Reply to
Tomasz Piasecki

Może po prostu zostań przy wewnętrznym źródle napięcia odniesienia (2,56V) a napięcia mierzone podziel dzielnikami rezystorowymi tak, aby nie przekroczyć tych 2,56V? BTW: Ostatnio mierzyłem, co wychodzi w ATmega128 na AREF w podobnych warunkach. Wyszło prawie że idealnie 2,65V (a nie 2,56V). Okazuje się, że wg PDFa to wewnętrzne źródło napięcia odniesienia może fluktuować w dość sporym zakresie.

Reply to
Adam Dybkowski

To wewnętrzne to jest badziewie... 2.3 do 2.7V. Jeździ termicznie aż miło :/

No cóż, jest 4.92, co mi wystarczy, i mierzy ok. Chciałbym jednak wiedzieć dlaczego gdy tam było 5,00 to adc się zachowywał tak głupio.

TP.

Reply to
Tomasz Piasecki

Proponuje sprawdzic, czy TL431 sie nie wzbudza z powodu obciazenia pojemnosciowego - w PDFie sa takie ladne wykresy "stability boundary conditions" i przy 100nF akurat ma prawo sie wzbudzac. Zmniejszenie napiecia - nieco wiekszy prad, moze to wystarczylo by ten egzemplarz przestal sie wzbudzac. Co nie znaczy, ze tak samo bedzie z innym...

Jesli to ten problem - dodac rownolegle 10uF i powinno byc OK.

Marek

Reply to
Marek Michalkiewicz

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.