szum ADC w Atmega16

Jun 24, 2005 15 Replies

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.


Sprawdz zasilanie oscyloskopem. Moze nie dales 100nF na wyprowadzeniach stabilizatorow i sie wzbudzaja.

Sebastor

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.

A wprowadzasz go w tryb Noise Reduction?

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.

Czy na p³ycie jest jakiekolwiek inne ¼ród³o sygna³u zegarowego lub zmiennego? TL431 to nie jest za stabilne ¼ród³o. Poza tym nie wiadomo jakie napiêcie wyj¶ciowe jest ustalone dzielnikiem (poziom) i jakie wej¶ciowe (poziom, stabilizowane czy nie). Nie wiem czy w ATM16 podczas SLEEP wy³±cza siê generator. Je¶li tak, to nie wiem jak d³ugo. Mo¿e nie s± zachowane odpowiednie przedzia³y czasowe. Nale¿a³oby spróbowaæ pod³±czyæ rezonator kwarcowy 32768 Hz i zobaczyæ jakie s± ró¼nice w pomiarach. Generalnie polecam oscyloskop. Pro¶ciej by by³o gdyby¶my ujrzeli skan schematu.

-- . pozdrawiam Sylwester £azar

formatting link
-oprogramowanie do edycji schematów i projektowania PCB

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.

Probowales odlaczyc te zewnetrzne ref i wlaczyc wewnetrzne ref z kondensatorem na wejsciu ?

Sebastor

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.

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.

Wszystko mo¿e mieæ wp³yw.

W tym uk³adzie z TL431 nie widzê innej drogi jak praca z oscyloskopem. Trzeba pamiêtaæ, ¿e jeden bit dla 10-bitowego przetwornika i zakresu 5V odpowiada ok. dV= 4,9 mV. W zwi±zku z powy¿szym wszystko zale¿y od owego +12V. Je¶li jest niestabilizowane - to ten uk³ad TL431 nie bêdzie siê nadawa³ do stabilizacji. No chyba, ¿e wstêpnie bêdzie stabilizowane napiêcie wej¶ciowe do TL431.

Poza tym widaæ wg powy¿szego, ¿e zegar do ADC jest jednak pobierany z 16MHz i dzielony. Wydaje mi siê, ¿e obni¿enie czêstotliwo¶ci rezonatora do f<1MHz powinno mieæ wp³yw na poprawienie dok³adno¶ci. Czy do ATM16 nie mo¿na pod³aczyæ dwóch rezonatorów?

-- . pozdrawiam Sylwester £azar

formatting link
-oprogramowanie do edycji schematów i projektowania PCB

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.

bez przesady..jest calkiem przyzwoite..uzywam je z dobrym skutkiem do duzo powazneijszych zastosowan..takze jako niskoszumowy stabilizator parametryczny. - i smiga ladnie u ciebie wystarczy w zupelnosci uzywalem w kilku ukladach przetworniak AC i zawsze bylo wyjatkowo stabilny wynik z ADC.. ostatnio dalem tylko 2 kondensatory, a referencyjne i VCCA zwarlem razem z VCC, wszystk ozasililem przez LM317 i szum jeest ponizej 1 LLSB. jak chcesz, moge podeslac schemat..lub / i pcb Objawy mi sugeruja uszkodzony procek.

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.

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.

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

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required