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

Multimetr atmega8 - nieregularne skoki napięcia przy pomiarze, brak cewki w układzie

HEYAH 16 Lis 2007 21:00 4606 12
REKLAMA
  • #1 4489000
    HEYAH
    Poziom 13  
    Posty: 113
    Ocena: 9
    Witam. Streszczając się : zaprogramowałem ostatnio atmegę do pracy, jako woltomierz i amperomierz w jednym. Kod w `bas`umieszczam w załączniku.
    Podłączyłem napięcie do przetwornika atmegi, zrobiłem dzielnik 1:10 i ... mierząc napięcie otrzymuję prawidłowy wynik, ale co chwilę (nieregularnie) wynik skacze na jakąś wartość i wraca (nie jest to wachanie się wyniku). Napewno nie są to szumy zasilania, bo testowałem na baterii. Atmegę taktuję wew. oscylatorem 8M. W układzie nie zastosowałem cewki, która występuje w większości schematów tego układu. W czym problem, jak myślicie ?
    Załączniki:
    • Multimetr.rar (459 Bajtów) Musisz być zalogowany, aby pobrać ten załącznik.
    • Multimetr atmega8 - nieregularne skoki napięcia przy pomiarze, brak cewki w układzie aa 192.jpg (163.16 KB) Musisz być zalogowany, aby pobrać ten załącznik.
    • Multimetr atmega8 - nieregularne skoki napięcia przy pomiarze, brak cewki w układzie aa 191.jpg (165.33 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #2 4489196
    joy_pl
    VIP Zasłużony dla elektroda
    Posty: 3342
    Pomógł: 170
    Ocena: 225
    Może spróbuj z zewnętrznym rezonatorem 11,0592mhz ale pamiętaj żebyś go przełączył na zewnętrzny oscylator.
  • REKLAMA
  • #3 4489368
    HEYAH
    Poziom 13  
    Posty: 113
    Ocena: 9
    Ok. Jaka jest w takim razie wada wewnętrznego oscylatora, która może powodować te skoki ?
  • REKLAMA
  • #4 4489612
    joy_pl
    VIP Zasłużony dla elektroda
    Posty: 3342
    Pomógł: 170
    Ocena: 225
    Nie wiem czy na pewno w wewnętrznym, ale przy niektórych rezonatorach procesor robi duże błędy i to może być powód a przy 11,0592 mhz nie robi takich błędów w ogóle
  • #5 4489715
    ggrunge
    Poziom 17  
    Posty: 307
    Pomógł: 9
    Ocena: 25
    Cytat:
    Nie wiem czy na pewno w wewnętrznym, ale przy niektórych rezonatorach procesor robi duże błędy i to może być powód a przy 11,0592 mhz nie robi takich błędów w ogóle


    joy_pl:Jakto robi bledy? Co oznacza, ze procesor robi bledy? Co to za bledy?!?

    HEYAH: nie znam zabardzo bascoma, ale sprobowalbym zmienna V rowniez jako Word zadeklarowac (tak jak Wart_ac).
    Moze ta funkcja "Fusin" cos nawala, jak sie domyslam zamienia liczbe do stringa z jakas tam zadana maska.
    I ta funkcje Cursor Off wyrzucilbym przed petle, chociaz podejrzewam ze to ma akurat malo wspolnego, chociaz nie wiadomo co tam bascom dokonca kryje w sobie :)

    Pozdrawiam,
    Michal
  • REKLAMA
  • #6 4490067
    joy_pl
    VIP Zasłużony dla elektroda
    Posty: 3342
    Pomógł: 170
    Ocena: 225
    Gdzieś widziałem taka tabele błędów zależnie od oscylatora

    ps. i mówiłem, że to może(nie musi) pomóc zawsze można spróbować
  • #7 4490170
    DHQ
    Poziom 12  
    Posty: 28
    Pomógł: 2
    Ocena: 92
    Miałem podobny efekt. Przypadkowo sprawdzałem napięcia na kiektórych pinach procesora, i ze zdziwieniem stwierdziłem że napięcie na pinie 20 w ATMega8 (AREF), które ma być stałe i ma wynosić 2,56V, lekko się waha; takie niewielkie niregularne "oscylacje" rzędu kilkudziesięciu mV o częstotliwości "na oko" ok. 1Hz. Skutkiem były skoki wskazań na LCD. Oscylacje te zanikły gdy kondensator blokujący 0,1uF zamieniłem na tantal 1uF. Nie wiem jaka jest przyczyna takiego zjawiska. Może ktoś zauważył podobne zjawisko? Niewykluczone że przyczyną jest "błąd" w rozplanowaniu ścieżek na płytce - kondensator 0,1uF ma być podłączony do masy "analogowej"; a u mnie masa analogowa i cyfrowa są połączone razem. W pdf-ie procesora przeczytałem sugestię aby na czas pomiaru ADC przełączyć procesor w stan "idle" - aby ograniczyć wpływ zakłóceń na wynik pomiaru.
  • #8 4490740
    gothye
    Poziom 33  
    Posty: 2421
    Pomógł: 183
    Ocena: 60
    w petli odczytu daj przerwe ( waitms ) ok 200ms
  • #9 4491546
    ggrunge
    Poziom 17  
    Posty: 307
    Pomógł: 9
    Ocena: 25
    joy_pl: jedyna taka tabele jaka mi sie kojarzy, to moze byc dotyczaca UART, gdzie widniala czestotliwosc rezonatora, predkosc transmisji i blad procentowy.


    Oprocz zwiekszenia opoznienia ja bym jeszcze dodal drugie opoznienie pomiedzy pomiarami a nie tylko na koncu petli.
  • #10 4491906
    HEYAH
    Poziom 13  
    Posty: 113
    Ocena: 9
    testowałem chyba już każdą przerwę od 1ms do 1s. Testowałem wszystko... dopóki czegoś nie zepsułem :). Dzisiaj wrzuciłem na procka jeszcze parę kodów i nagle bascom "powiedział", że procek jest niepodłączony. Sprawdziłem wszystko 100 razy i, kiedy rozkręciłem wtyczkę programatora do LPT, zobaczyłem, że 2 kabelki (od danych i masa) się oderwały i sobie luźno latają. Zastanawiam się, czy czasem nie zrobiłem zwarcia i nie spaliłem LPT. W panelu ster. pisze, że działa, a nie mam żadnego urządzenia na LPT. Podpinałem procka (atmegę i attiny2313 dla upewnienia) bezpośrednio pod port i żaden program go nie wykrywa. Jak mogę sprawdzić, czy port padł ?
  • #12 4501863
    HEYAH
    Poziom 13  
    Posty: 113
    Ocena: 9
    Już w porządku ;) Lpt cały, okazało się, że spaliłem atmegę, nową (8L) uruchomiłem na kwarcu 8MHz - wartość skacze już zupełnie inaczej - tak, jak w miernikach, gdy wartość jest pośrednia. Wynik nadal niejest do odczytania, ale wina chyba leży po stronie układu zmontowanego na "pałę" - bez kondensatorów, cewki itd. (sam dzielnik 1:10). Kiedy zmontuję pełny układ pomiarowy, dam znać, jakie są rezultaty ;)
  • #13 4586590
    mariansq
    Poziom 15  
    Posty: 203
    Pomógł: 11
    Ocena: 12
    Witaj

    Zeby ograniczyć skakanie pomiaru napiecia przede wszystkim zrezygnowalbym z wenetrznego Uref-zapodaj zewnetrzny jakiegoś lm'a i bedzie git. Nastepnie w programie nie musisz wyswietlać z prędkoscią swiatła :) wyniku zapodaj petle na odczyt wartości z przetwornika np for do 100 zbieraj te wartosci jako sume do zmiennej bufor , na petelke daj opoznienie np 5ms co po wykonaniu da wynik 0.5s potem podziel bufor przez 100 i wyswietl wynik-będziesz mial uśredniony wynik napiecia z okresu 0,5s (czyli wszelakie piki sriki sie usrednią) i tym sposobem pomiar nie lata jak żyt po pustym sklepie:) a tym samym wyswietlacz lcd nie clir'uje Ci sie z prędkością błyskawicy i zobaczysz swoje wartości:)
    pozdry

Podsumowanie tematu

✨ Problem dotyczy nieregularnych skoków napięcia podczas pomiaru za pomocą Atmegi8 zaprogramowanej jako woltomierz i amperomierz. Układ wykorzystuje wewnętrzny oscylator 8 MHz oraz dzielnik napięcia 1:10, ale brak zastosowania cewki i kondensatorów filtrujących powoduje niestabilność pomiarów. Wskazano, że wewnętrzny oscylator może generować błędy pomiarowe, a zastosowanie zewnętrznego rezonatora (np. 11,0592 MHz) może poprawić stabilność. Zalecane jest także stosowanie kondensatora tantalowego 1 µF na pinie AREF zamiast 0,1 µF ceramicznego oraz rozdzielenie masy analogowej i cyfrowej, aby ograniczyć zakłócenia. W programie sugerowano uśrednianie wielu pomiarów ADC z opóźnieniami (np. 5 ms) w celu wygładzenia wyników oraz unikanie zbyt szybkiego odświeżania wyświetlacza LCD. Dodatkowo, wskazano na możliwość przełączania procesora w stan "idle" podczas pomiaru ADC dla redukcji zakłóceń. Autor potwierdził, że po zastosowaniu kwarcu 8 MHz i pełnego układu z kondensatorami i cewką wyniki pomiarów uległy poprawie, choć nadal wymagają dalszej optymalizacji. Poruszono także problem uszkodzenia portu LPT podczas programowania i metody jego testowania.
Wygenerowane przez model językowy.
REKLAMA