Dziwne skoki na przetworniku ADC w ATmedze.

Witam.

Jest projekt bez przetwornika. W ostatniej chwili trzeba bylo jednak z niego skorzystać. Ponieważ nie był w zamierzeniach to jedyne co jest to kondensator na Vref i dławik na zasilaniu AVcc. Masy nie są rozdzielone, specjalnej wagi nikt nie przykładał do ich prowadzenia.

Trzeba było jednak użyć ADC i tutaj ciekawostka: ATMega128 podczas pomiaru pojedynczego napięcia, róznicowego, ze wzmocnieniem 1x i 200x ma ciekawy objaw: okresowo, kilka razy na sekundę wynik różni się od prawidłowego o około 20%. To daje gdzieś pi x drzwi 3 bity dokładności...

Pomiar wykonywany jest tak:

a) podawane stałe napięcie z dzielnika, dzielnik zasilany z Vref. b) przetwornik najwolniej jak się da c) odczyt przynajmniej kilkanaście razy wolniej niż podawany w intrukcji. d) procesor podczas pomiaru *musi* coś robić, nie mogę go uśpić e) Vref wewnętrzny, z kondensatorem na pinie.

Bez względu na to jak straszliwie mam zaszumione zasilanie, jak krzywo poprowadzone masy nie chcę mi się wierzyć że przetornik szumi na 7 bitach i to jeszcze jakoś tak impulsowo.

Zmiany są zarówno w + jak i w -.

Oczywiście nie chodzi mi teraz o rady jak to naprawić - płytka jest. Chodzi raczej o pytanie: co powoduje aż tak kolosalne szumy.

Błąd software wykluczam, spędziłem dobę debugując wszystko i nie ma tam miejsca na pomyłkę.

Reply to
Sebastian Biały
Loading thread data ...

dołóż jeszcze niewielki kondensator do tego dzielnika, choćby 100p...10n.

Podłącz oscyloskop do mierzonego napięcia i wyzwalaj pomiar innym pinem uC, jeśli odchyłka bieżącego pomiaru będzie większa niż x% średniej z poprzednich pomiarów. Może coś jednak włazi na napięcie mierzone.

Trzeba było po kolei wyłączać sterowanie różnymi obciążeniami i zobaczyć, czy pomiary nadal wariują.

Reply to
Zbych

W dniu 2012-03-17 21:50, Sebastian Biały pisze:

Kiedy ja mam takie wrażenie to znaczy, że albo nie doczytałem erraty do sprzętu, albo błąd jest zbyt oczywisty, bym go dostrzegł... Weź najprostszy przykład programu obsługi ADC dla tego procesora, zobacz czy on też tak wariuje a potem popraw swój.

Reply to
Andrzej W.

Nie pomogo :/

Najzabawniejsze że między innymi podawałem tam napięcie z ... baterii. Dalej podskakuje. Podałem w końcu tą baterię również na Vref ... efekt jak zwykle.

Najlepsze że procesor w zasadzie "nic nie robi" na zewnatrz. Czyta tylko piny, nie zmienia ich stanów, wykonuje obliczenia real-time. Czyli żaden z pinów nie drga.

Ja wiem, "pokaż schemat i kod" ale niestety nie mogę :)

Reply to
Sebastian Biały

Ale sprawdziłeś oscyloskopem?

No to pozostaje zrobić program minimum czytający tylko adc i zobaczyć czy coś się zmieniło.

Reply to
Zbych

Użytkownik "Sebastian Biały" snipped-for-privacy@poczta.onet.pl> napisał w wiadomości news:jk2te1$faf$ snipped-for-privacy@inews.gazeta.pl...

Podobne problemy z ADC w Xmega rozwiązało pojawienie się kolejnej wersji pdf-a z kolejną listą błędów z której wynikało "nie używać" i problem zniknął ;-) P.G.

Reply to
Piotr Gałka

Spróbuj użyć oversamplingu. Nie usunie to problemu, ale zamaskuje go.

Reply to
Adam Wysocki

A czy na piny TEGO SAMEGO PORTU, co ADC wchodzi jakiś sygnał cyfrowy, albo wychodzi jakiś?? Wiem, wiem, nie zmieniasz stanu pinów, ale może masz mimowszystko coś "włączone", jakiś PWM, czy coś na niepodłączonym pinie. Może na tym samym porcie działa JTAG i bruździ?? Generalnie, przy ADC trzeba uważać na cały port, na którym on siedzi... .

Reply to
Konop

"Sebastian Bialy" snipped-for-privacy@poczta.onet.pl> schrieb

Jak to tylko? Tzn nie masz kondensatora na AVCC?

mw

Reply to
mw158979

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.