szum ADC w Atmega16
Masz problem? Zapytaj na forum elektroda.pl
From: Tomasz Piasecki <mtbrider_at_nospam__-nospam-_.poczta.onet.pl>
Subject: szum ADC w Atmega16
Date: Sat, 25 Jun 2005 00:07:37 +0200
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.
--
| _ _ _ |
| _____ _| |_| | __ (o) | | __ __ _at_nospam_poczta.onet.pl |
| | \ | | |o \| \| |/o |/ _\| \ |
| |_|_|_| \_| |__/|_| |_|\__|\__||_| Tomasz Piasecki |
From: "Sebastor" <brakadresu_at_nospam_onet.pl>
Subject: Re: szum ADC w Atmega16
Date: Sat, 25 Jun 2005 08:24:17 +0200
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.
Sprawdz zasilanie oscyloskopem. Moze nie dales 100nF na wyprowadzeniach
stabilizatorow i sie wzbudzaja.
Sebastor
From: Tomasz Piasecki <mtbrider_at_nospam__-nospam-_.poczta.onet.pl>
Subject: Re: szum ADC w Atmega16
Date: Sat, 25 Jun 2005 11:08:48 +0200
Sebastor wrote:
Sprawdz zasilanie oscyloskopem.
To będę mógł zrobić w robocie w poniedziałek.
Moze nie dales 100nF na wyprowadzeniach stabilizatorow i sie wzbudzaja.
Dałem je wszędzie gdzie się da :)
Dzięki za te pomysły i czekam na następne.
TP.
--
| _ _ _ |
| _____ _| |_| | __ (o) | | __ __ _at_nospam_poczta.onet.pl |
| | \ | | |o \| \| |/o |/ _\| \ |
| |_|_|_| \_| |__/|_| |_|\__|\__||_| Tomasz Piasecki |
From: Krzysiek Kubicki <coobix_at_nospam_gazeta.plBeZTeGo>
Subject: Re: szum ADC w Atmega16
Date: Sat, 25 Jun 2005 11:42:15 +0200
Tomasz Piasecki wrote:
Sebastor wrote:
Dzięki za te pomysły i czekam na następne.
A wprowadzasz go w tryb Noise Reduction?
--
Pozdrawiam
Krzysztof Kubicki
http://www.kubi.rox.pl
From: Tomasz Piasecki <mtbrider_at_nospam__-nospam-_.poczta.onet.pl>
Subject: Re: szum ADC w Atmega16
Date: Sat, 25 Jun 2005 12:49:53 +0200
Krzysiek Kubicki wrote:
Dzięki za te pomysły i czekam na następne.
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.
--
| _ _ _ |
| _____ _| |_| | __ (o) | | __ __ _at_nospam_poczta.onet.pl |
| | \ | | |o \| \| |/o |/ _\| \ |
| |_|_|_| \_| |__/|_| |_|\__|\__||_| Tomasz Piasecki |
From: "Sylwester Łazar" <goalpropl_at_nospam_alpro.pl>
Subject: Re: szum ADC w Atmega16
Date: Sat, 25 Jun 2005 14:33:28 +0200
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
http://www.alpro.pl
http://www.rimu.pl -oprogramowanie do edycji schematów
i projektowania PCB
From: Tomasz Piasecki <mtbrider_at_nospam__-nospam-_.poczta.onet.pl>
Subject: Re: szum ADC w Atmega16
Date: Sat, 25 Jun 2005 15:05:53 +0200
Sylwester Łazar wrote:
Czy na płycie jest jakiekolwiek inne źródło sygnału zegarowego lub
zmiennego?
Jest tylko kwarc do procka.
TL431 to nie jest za stabilne źródło.
Myślałem że do 10 bitów wystarczy w zupełności
Poza tym nie wiadomo jakie napięcie wyjściowe jest ustalone dzielnikiem
(poziom) i jakie wejściowe (poziom, stabilizowane czy nie).
Ustalane dzielnikiem z 1% rezystorów na 5V.
Nie wiem czy w ATM16 podczas SLEEP wyłącza się generator.
Nie wiem o jaki generator Ci chodzi. W pdf piszą, że zatrzymuje się
clk_i/0, clk_cpu, clk_flash.
Jeśli tak, to nie wiem jak długo.
Aż do końca przetwarzania i odpalenia przerwania ADC.
Może nie są zachowane odpowiednie przedziały czasowe.
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.
Należałoby spróbować podłączyć rezonator kwarcowy 32768 Hz i zobaczyć jakie
są róźnice w pomiarach.
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.
Generalnie polecam oscyloskop.
Sprawdzę w poniedziałek.
Prościej by było gdybyśmy ujrzeli skan schematu.
Raczej screenshot - schemat jest mój :)
http://www.pias-t.net/img/mainboard_sch.png
Uprzedzając pytania. Masa w złączu podpiętym pod port A jest
pociągnięta z nogi AGND procka.
TP.
--
| _ _ _ |
| _____ _| |_| | __ (o) | | __ __ _at_nospam_poczta.onet.pl |
| | \ | | |o \| \| |/o |/ _\| \ |
| |_|_|_| \_| |__/|_| |_|\__|\__||_| Tomasz Piasecki |
From: "Sebastor" <brakadresu_at_nospam_onet.pl>
Subject: Re: szum ADC w Atmega16
Date: Sat, 25 Jun 2005 17:10:27 +0200
Poza tym nie wiadomo jakie napięcie wyjściowe jest ustalone dzielnikiem
(poziom) i jakie wejściowe (poziom, stabilizowane czy nie).
Ustalane dzielnikiem z 1% rezystorów na 5V.
Probowales odlaczyc te zewnetrzne ref i wlaczyc wewnetrzne ref z
kondensatorem na wejsciu ?
Sebastor
From: Tomasz Piasecki <mtbrider_at_nospam__-nospam-_.poczta.onet.pl>
Subject: Re: szum ADC w Atmega16
Date: Sat, 25 Jun 2005 17:52:19 +0200
Sebastor wrote:
Probowales odlaczyc te zewnetrzne ref i wlaczyc wewnetrzne ref z
kondensatorem na wejsciu ?
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.
--
| _ _ _ |
| _____ _| |_| | __ (o) | | __ __ _at_nospam_poczta.onet.pl |
| | \ | | |o \| \| |/o |/ _\| \ |
| |_|_|_| \_| |__/|_| |_|\__|\__||_| Tomasz Piasecki |
From: Tomasz Piasecki <mtbrider_at_nospam__-nospam-_.poczta.onet.pl>
Subject: Re: szum ADC w Atmega16
Date: Sat, 25 Jun 2005 18:24:04 +0200
Tomasz Piasecki wrote:
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.
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.
--
| _ _ _ |
| _____ _| |_| | __ (o) | | __ __ _at_nospam_poczta.onet.pl |
| | \ | | |o \| \| |/o |/ _\| \ |
| |_|_|_| \_| |__/|_| |_|\__|\__||_| Tomasz Piasecki |
From: "Sylwester Łazar" <goalpropl_at_nospam_alpro.pl>
Subject: Re: szum ADC w Atmega16
Date: Sat, 25 Jun 2005 19:39:11 +0200
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?
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
http://www.alpro.pl
http://www.rimu.pl -oprogramowanie do edycji schematów
i projektowania PCB
From: Tomasz Piasecki <mtbrider_at_nospam__-nospam-_.poczta.onet.pl>
Subject: Re: szum ADC w Atmega16
Date: Sat, 25 Jun 2005 19:51:37 +0200
Sylwester Łazar wrote:
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.
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.
Poza tym widać wg powyższego, że zegar do ADC jest jednak pobierany z 16MHz
i dzielony.
Tak jest.
Wydaje mi się, że obniżenie częstotliwości rezonatora do f<1MHz powinno mieć
wpływ na poprawienie dokładności.
Próbowałem na wewnętrznym RC lecieć i to nie pomogło. A wychodzi
właśnie 1MHz z tego zegarka.
TP.
--
| _ _ _ |
| _____ _| |_| | __ (o) | | __ __ _at_nospam_poczta.onet.pl |
| | \ | | |o \| \| |/o |/ _\| \ |
| |_|_|_| \_| |__/|_| |_|\__|\__||_| Tomasz Piasecki |
From: Adam Dybkowski <adybkows123_at_nospam_amwaw.edu.pl>
Subject: Re: szum ADC w Atmega16
Date: Sun, 26 Jun 2005 01:17:40 +0200
Tomasz Piasecki wrote:
Probowales odlaczyc te zewnetrzne ref i wlaczyc wewnetrzne ref z
kondensatorem na wejsciu ?
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.
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.
--
Adam Dybkowski
http://www.amwaw.edu.pl/~adybkows/
Uwaga: przed wysłaniem do mnie maila usuń "123" z adresu.
From: Tomasz Piasecki <mtbrider_at_nospam__-nospam-_.poczta.onet.pl>
Subject: Re: szum ADC w Atmega16
Date: Sun, 26 Jun 2005 11:23:40 +0200
Adam Dybkowski wrote:
Tomasz Piasecki wrote:
Probowales odlaczyc te zewnetrzne ref i wlaczyc wewnetrzne ref z
kondensatorem na wejsciu ?
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.
Może po prostu zostań przy wewnętrznym źródle napięcia odniesienia
(2,56V)
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.
--
| _ _ _ |
| _____ _| |_| | __ (o) | | __ __ _at_nospam_poczta.onet.pl |
| | \ | | |o \| \| |/o |/ _\| \ |
| |_|_|_| \_| |__/|_| |_|\__|\__||_| Tomasz Piasecki |
From: Marek Michalkiewicz <spamtrap_at_nospam_amelek.gda.pl.invalid>
Subject: Re: szum ADC w Atmega16
Date: Sun, 26 Jun 2005 17:36:41 +0200 (CEST)
Tomasz Piasecki <mtbrider_at_nospam__-nospam-_.poczta.onet.pl> wrote:
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.
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
From: "Greg" <gkasprow_at_nospam_gmail.com>
Subject: Re: szum ADC w Atmega16
Date: Sat, 25 Jun 2005 22:31:44 +0200
TL431 to nie jest za stabilne źródło.
Myślałem że do 10 bitów wystarczy w zupełności
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.