logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak ustabilizować pomiar napięcia w Atmega8 przy zasilaczu sieciowym?

jasmin 26 Wrz 2006 22:50 2433 13
REKLAMA
  • #1 3060636
    jasmin
    Poziom 11  
    Posty: 11
    Ocena: 1
    Cześć wszystkim podpiąłem do mojego A8 pod C0 układzik i wspaniale mierzy mi napięcie do 20 volt. Wszystko jest ok skalibrowane na cacy problem pojawia się gdy napięcie mierzę na innym zasilaczu sieciowym.Wtedy pomiar pływa np 16.51v - 16.92v przypusczam że atmega jest na tyle szybka że wyłapuje mi tętnienia50 hz i raz łapie górkę napięcia a raz minimum. Takich cudów nie mam sprawdzając napięcie np z akumulatora stoi jak dzwon.Badany zasilacz ma za mostkiem potężne kondziory ok 20000uF a i tak napięcie pływa bez żadnego obciążenia.nie bardzo wiem jak sobie z tym poradzić nie chciał bym obsługiować tego programowo -uśredniamiem tylko sprzętowo ale dorzucanie kolejnych kondziorów jest już chyba bezcelowe.Może jest jakiś patent na to ???
    .Napięcie dejmuję co ok 0.5 sek.Dzięki za podpowiedzi

    Moderowany przez MirekCz:

    Przeniesione z Programowania ogólne.

  • REKLAMA
  • #2 3060958
    Paweł Es.
    VIP Zasłużony dla elektroda
    Posty: 6981
    Pomógł: 1236
    Ocena: 693
    spróbuj zasilać Atmegę z tego samego zasilacza, który mierzysz (przez stabilizator) może ci coś po masach łazi. Lub zasil Atmegę z baterii.
  • #3 3063261
    jasmin
    Poziom 11  
    Posty: 11
    Ocena: 1
    Miałem i tak i tak. Atmega zasilana z akumulatorka, zasilacza sieciowego, przez stabilizator-zasilanie atmegi nie mawpływu na wskazanie.Zawsze to samo pomiar bateri stabilne wskazanie, pomiar napięcia z zasilacza i wartość wyświetlana pływa.
  • #4 3063334
    Tdv
    Poziom 34  
    Posty: 2237
    Pomógł: 150
    Ocena: 53
    Zacznij od przeszukania forum, podobnych wątków było już kilka.
    1. Wina może ;eżeć w źle zaprojektowanejpłytce.
    2. Rób kilka pomiarów i uśredniaj, przy czym okres pomiaru dobierz tak, żeby był wielokrotnością 20ms, wtedy pozbędziesz się ewentualnych zakłóceń sieciowych.
  • REKLAMA
  • #5 3083457
    slashpeage
    Poziom 11  
    Posty: 8
    Jak podajesz napiecie odniesienia dla przetwornika ? Jeżeli korzystasz z wewnętrznego to one nie są zbyt dobre i pływają , możesz wstawić LM385 taki na 2.5V, no i jakiś dławik na AVCC tak jak w nocie z Atmela, nie wiem być może to o czym ja tu pisze już zrobiłeś :)
    powodzenia
  • #6 3083595
    Tdv
    Poziom 34  
    Posty: 2237
    Pomógł: 150
    Ocena: 53
    slashpeage napisał:
    Jak podajesz napiecie odniesienia dla przetwornika ? Jeżeli korzystasz z wewnętrznego to one nie są zbyt dobre i pływają , możesz wstawić LM385 taki na 2.5V, no i jakiś dławik na AVCC tak jak w nocie z Atmela, nie wiem być może to o czym ja tu pisze już zrobiłeś :)
    powodzenia

    Chyba powineineś zostać marynarzem i iść sobie popływać.
    Gdzie widziałeś pływające napięcie odniesienia w AVRach? Jak nie masz o czymś pojęcia to nie pisz głupot i nie wprowadzaj ludzi w błąd. Te źródła mają spore odchyłki od danych znamionowych (2,56V znamionowo) ale jest to opisane w manualu (patrz dane techniczne) i ich wartość jest bardzo stała w czasie, nawet dryft temperaturowy mają bardzo mały.
  • #7 3083767
    marek_Łódź
    Poziom 36  
    Posty: 3103
    Pomógł: 208
    Ocena: 66
    Z postów autora wynika, że problem leży po stronie mierzonej i to napięcie trzeba filtrować. Na początek można dać w torze pomiarowym prosty filtr RC o stałej czasowej chociaż o rząd wyższej od 20ms (np 10k w szereg i 100uF między wejście ADC i masę).
  • #8 3086036
    slashpeage
    Poziom 11  
    Posty: 8
    Tdv... tak bardzo ufasz temu co jest w notach aplikacyjnych Atmela ?

    Jak się ktoś chce pobawić w domu pomiarami to i może to wystarczy, ale jeszcze nie widziałem by ktoś w konkretnych urządzeniach używał tego wewnętrzego źródła...
  • #9 3086190
    zbig_wwl
    Poziom 17  
    Posty: 181
    Pomógł: 20
    Ocena: 17
    A ja używam i potwierdzam, że jeżeli chodzi o wartość znamionową, to różni się ona dość znacznie od egzemalarza do egzemplarza uC.
    Na stronie Atmela są noty, jak skorygować poszczególne składowe błędów ADC i po skalibrowaniu przetwornika wszystko działa jak najbardzej prawidłowo i zaskakująco dobrze, jeżeli chodzi o stabilność czasową i temperaturową.
    Ale nawet bez tych zabiegów stabilność źródła napięcia referencyjnego jest całkiem niezła. Np. jeden z moich niekomercyjnych projektów jest tak zrobiony i działa całkiem nieźle - popatrz tutaj
    Sprawa pływania - zauważcie, że jeżeli mierzymy napięcia w zakresie 20V, to w najlepszym przypadku rozdzielczość 10 bitów to ok 20mV. Tutaj pływa to w zakresie 40mV. To, że nie skacze na baterii o te 20mV, to po części kwestia przypadku, że akurat napięcie baterii trafia w środek "schodka" ADC.
    Napisz, jaki stopień podziału ma twój dzielnik wejściowy :?:
    Pozdrawiam

    ADD:
    Dzięki trol.six za sprostowanie - to w rzeczy samej 400mV a nie 40mV jak wyżej napisałem. Wrócę do szkoły pouczyć się odejmowania :D
  • REKLAMA
  • #10 3086271
    shg
    Poziom 35  
    Posty: 2289
    Pomógł: 339
    Ocena: 135
    - Nie mierzysz bez obciążenia, bo obciążenie stanowi sam układ pomiarowy.
    - kondensatory nie są doskonałe, z czasem wytracają zgromadzoną energię
    - mostki prostownicze nie są doskonałe, mają jakiś określony recovery time (nie wiem jak to po polsku), polega to na tym, że przez pewien moment po zmianie polaryzacji na zaporową dioda przewodzi w kierunku zaporowym.

    Najprościej zrobić uśrednianie programowo. Zazwyczaj robię tak, że próbkowanie około 1kHz (a czasem nawet więcej) i uśrednianie ilości próbek będącej potęgą dwójki, bo najłatwiej to zrealizować programowo.
    Czasem tylko, gdy i tak używam obliczeń zmiennoprzecinkowych staram się uśredniać okresy będące wielokrotnością 20ms (50Hz).

    No i jak pisze kolega powyżej - "pływanie" rzędu jednego (a czasem i więcej) bitu jest rzeczą całkiem normalną.
  • #11 3086420
    trol.six
    Poziom 31  
    Posty: 1650
    Pomógł: 151
    Ocena: 381
    zbig_wwl napisał:
    Sprawa pływania - zauważcie, że jeżeli mierzymy napięcia w zakresie 20V, to w najlepszym przypadku rozdzielczość 10 bitów to ok 20mV. Tutaj pływa to w zakresie 40mV.

    Właśnie zuważyluśmy że 16.51v - 16.92v = 400mV a nie 40mV

    jasmin:
    a na pewno masz stabilne to co mierzysz?
    no i jaki masz podział. Bo jak duży to będzie skakać dużo przy małych skokach.
    Jak zrobic programowo to juz sie tu wypowiedzieli.
    Nie programowo to sie daje opornik z kondensatorkiem.
  • #12 3086491
    Tdv
    Poziom 34  
    Posty: 2237
    Pomógł: 150
    Ocena: 53
    slashpeage napisał:
    Tdv... tak bardzo ufasz temu co jest w notach aplikacyjnych Atmela ?

    Jak się ktoś chce pobawić w domu pomiarami to i może to wystarczy, ale jeszcze nie widziałem by ktoś w konkretnych urządzeniach używał tego wewnętrzego źródła...


    A Ty dalej te głupoty piszesz? Weź człowieku miernik, kilka sztuk procesora AVR i zmierz, a nie rób zamętu. Robie urządzenia, które korzystają z wewnętrznego źródła odniesienia w AVR i pracują z temperaturach od 0 do 70 stopni i nie ma z nimi żadnych problemów.
    Skoro nie wierzysz w noty aplikacyjne to jak chcesz cokolwiek zrobić?

    Koledze polecam jeszcze zapoznanie się z wątkami:
    https://www.elektroda.pl/rtvforum/topic564392.html
    https://www.elektroda.pl/rtvforum/topic233838.html
    https://www.elektroda.pl/rtvforum/topic188342.html
  • REKLAMA
  • #13 3087780
    PIOTR111
    Poziom 16  
    Posty: 279
    Pomógł: 9
    Ocena: 47
    Witam
    Ja to rozwiązałęm poprzez pomiar wielokrotny i następnie podzielenie wyniku
    Pomiar jest stabilny i nie pływa
    To się nazywa uśrednianie i jest stosowane w niektórych przetwornikach
    Pozdrawiam PIOTR
  • #14 3566455
    jasmin
    Poziom 11  
    Posty: 11
    Ocena: 1
    Dziękuję bardzo serdecznie wszytkim za udzielone informacje. Zastosowałem uśrednianie (maksymalizacja wyniku) i teraz jest już ok.
    Pozdrawiam.

Podsumowanie tematu

✨ Problem dotyczy niestabilnych pomiarów napięcia do 20 V wykonywanych przez mikrokontroler Atmega8 na wejściu ADC (C0) przy zasilaniu z różnych zasilaczy sieciowych. Pomiar wykazuje wahania rzędu kilkudziesięciu do kilkuset miliwoltów (np. 16,51 V - 16,92 V), co jest przypisywane tętnieniom sieci 50 Hz oraz brakiem odpowiedniego filtrowania sygnału pomiarowego. Zasilanie Atmegi z różnych źródeł (akumulator, zasilacz, stabilizator) nie wpływa na stabilność pomiaru, a problem występuje tylko przy pomiarze napięcia zasilacza sieciowego. Kondensatory filtrujące (nawet duże, np. 20000 µF) nie eliminują wahań napięcia.

Wskazano, że źródłem problemu jest brak odpowiedniego filtrowania sygnału wejściowego do ADC. Zalecane jest zastosowanie sprzętowego filtra RC o stałej czasowej większej niż okres tętnień sieci (np. rezystor 10 kΩ w szereg i kondensator 100 µF do masy) w torze pomiarowym. Alternatywnie można stosować uśrednianie pomiarów programowo, pobierając próbki w odstępach będących wielokrotnością 20 ms (okres sieci 50 Hz), co pozwala wyeliminować zakłócenia sieciowe.

Dyskusja poruszała również kwestię stabilności wewnętrznego źródła napięcia odniesienia ADC w Atmedze8, które jest wystarczająco stabilne i nie jest przyczyną problemu. Wskazano, że rozdzielczość 10-bitowego ADC przy pomiarze 20 V to około 20 mV na krok, więc wahania rzędu kilkudziesięciu mV są normalne. Zalecane jest także sprawdzenie poprawności dzielnika napięcia na wejściu ADC. Ostatecznie autor zastosował uśrednianie wyników pomiarów (maksymalizacja wyniku) i uzyskał stabilne wskazania napięcia.

Podsumowując, stabilizacja pomiaru napięcia w Atmega8 przy zasilaczu sieciowym wymaga zastosowania sprzętowego filtra RC w torze pomiarowym lub uśredniania pomiarów programowo, a problem nie wynika ze źródła napięcia odniesienia ADC.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA