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

atmega32, problem z przetwornikiem

qudi 19 Kwi 2010 18:56 1752 24
REKLAMA
  • #1 7980110
    qudi
    Poziom 15  
    Witam !!!
    Mam problem z przetwornikiem ADC, mój uC pracuje pod kwarcem 14,745 Mhz. Przetwornik działa na preskalerze 64. Wszystko działa ładnie, pięknie tylko, że nie mogę sterować wartością przetwornika ADC dokładnie co 1, następują przeskoki stany niepewne tzn. migotania. A ja potrzebuje nią sterować z dokładnością co 1. Napięcie na wejściu przetwornika steruję potencjometrem 2K na 22 obroty(montażowym). Kondensator pomiędzy ADC a GND nic nie daje wręcz powoduje lekkie "pływanie" tzn większe przeskoki.
    Jak wyeliminować takie coś ???
    Proszę o szybką pomoc...
  • REKLAMA
  • #2 7980120
    gothye
    Poziom 33  
    - zakładając dławik na zasilaniu przetwornika
    - odczytu dokonując przez wyliczenie średniej z np 50 pomiarów
  • #3 7980161
    qudi
    Poziom 15  
    z dławika korzystam razem z kondensatorem mam takie filtrowanie też i także skacze...
  • #4 7980186
    gothye
    Poziom 33  
    Wiec dokonaj odczytu przez wyliczenie średniej z np 50 pomiarów, u mnie w zasilaczu gdzie zakłócenia są spore, wynik jest stabilny na LCD ;)
  • #5 7981754
    OlekM
    Poziom 17  
    Czy jako napięcie odniesienia jest podane to samo napięcie, które zasila potencjometr?
  • REKLAMA
  • #6 7982408
    qudi
    Poziom 15  
    sama atmega32 jest zasilana u mnie z napięcia 5v (zwykłego po stabilizatorze) natomiast potencjometr jest zasilany tym filtrowanym avcc ... z tą średnia też mi nie wychodzi coś bo zrobiłem ją i dalej skacze, widocznie raz bierze średnią taką a raz taką... nie wiem jak sobie z tym poradzić
  • #7 7982436
    tmf
    VIP Zasłużony dla elektroda
    Nie poradzisz sobie, ADC w ATMedze to nie cud techniki, pływanie ostatniego bitu jest norma, ba, jest wręcz wykorzystywane jako generator liczb losowych :) Jak chcesz stabilnie i możesz sobie na to pozwolić to zrób oversampling i odrzucaj najmlodsze bity. Pewną poprawę może przynieść podłączenie potencjometru nie pod AVCC, tylko Vref procesora - oczywiście pamiętając, że obciążalność tego wyjścia jest znikoma.
    BTW, po co jest ten potencjometr?
  • #8 7982740
    OlekM
    Poziom 17  
    Jeszcze jest jeden trick, niestety mało wygodny. Można usypiać procesor na czas wykonywania pomiaru przetwornikiem ADC. Dzięki temu mniej zakłóceń przeniknie "wewnątrz krzemu".

    Niestety potencjometrem zawsze będzie można nastawić napięcie na wartość bliską progu przejścia do kolejnego bitu. Nawet jeśli nastawi się napięcie "idealnie po środku bitu", to okaże się że temperatura, wibracje i procesy starzeniowe kiedyś spowodują zmianę wartości.

    Jeśli wartość ma być nastawiana jednorazowo lub na długi czas, to może warto ją przechowywać w pamięci EEPROM. Jeśli konieczna jest możliwość zmieniania wartości podczas pracy układu - to można dodać przyciski, enkoder, lub... MAX232 :-)
  • #9 7985447
    qudi
    Poziom 15  
    Dziś sprawdziłem cały układ gdzie indziej, u kolegi i wszystko działa jak należy, dlaczego u mnie jest inaczej ? Tam mogłem bez problemu sterować sobie wartością ADC co 1 u mnie natomiast dalej występują migotania ! Czy możliwe, że u mnie są jakieś zakłócenia w sieci to dość stary budynek i pewnie tak stara jest też tu instalacja itd.
    Może można sobie jakoś z tym poradzić ??? Jakiś filtr czy coś ???
    Proszę o pomoc...
  • #10 7985474
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • #11 7985509
    qudi
    Poziom 15  
    ciężko jest mi zapodać schemat bo pracuje sobie na takiej oto płytce http://are.net.pl/?id=products&cmd=9&pid=24
    Potencjometr podłączam do napięcia filtrowanego przez dławik z kondensatorem, na nim trybi też przetwornik. Ten sam układ działa u kolegi tak jak bym chciał ale jak przyjdę do domu to już nie... o co tu może chodzić, czytam coś o filtrach przeciwzakłóceniowych, może sobie kupić coś takiego
    http://allegro.pl/item999711478_filtr_rdzen_ferrytowy_przeciwzakloceniowy_6_9mm.html
    mogło by pomóc ???

    Proszę o szybką odpowiedź
  • REKLAMA
  • #12 7990182
    qudi
    Poziom 15  
    dziwny to problem, naprawdę... Wczoraj np. mi działało u mnie jak należy, a za parę godzin już nie. Dodatkowo najlepiej działa wtedy gdy podepnę potencjometr pod AVCC ale samego AVCC nie podpinam do niczego tylko ustawiam w rejestrze CHYBA ADMUX. Skąd bierze się na AVCC napięcie ? Zawsze myślałem że muszę na AVCC zapodać jakieś sam (przefiltrowane) więc już sam nie wiem. Podsumowując prosze o wyjaśnienie tego pytania i jeszcze jak ktoś wie dlaczego wszystko raz działa a raz nie, powodem może być np. sieć albo jakieś zakłócenia ?
  • #13 7990291
    tmf
    VIP Zasłużony dla elektroda
    Pojawienie się napięcia na AVCC wynika wprost z technologii wykonania AVR - zaczynają przewodzić diody zabezpieczające porty IO i w ten sposób patologicznie jest zasilony moduł ADC. Tak być nie powinno, to poważny błąd. Co do problemów - jak już pisałem to, że najmłodszy bit się zmienia to norma, wynika to wprost z not aplikacyjnych tego procesora - zobacz sekcję poświęconą ADC i wykresy rozdzielczości, dokładności i błędy ADC. Oprócz błędów ADC wyobraź sobie następująca sytuację - mierzysz nap. 0-10mV z rozdzielczością 2mV. Co będzie jeśli mierzone napięcie wyniesie np. 5mV? ADC odczyta je jako 4, czy jako 6? Ano raz tak, a raz tak. Na tym bazuje właśnie oversamplig - bierzesz np. 16 pomiarow, w 8 odczytałeś 6mV, w 8 - 4mV, uśredniasz i wiesz, że napięcie wynosiło 5mV - dzięki temu efektywnie zwiększyłeś rozdzielczość ADC.
    To skakanie trzeba wyeliminować programowo - jak już tu pisano przez uśrednianie wielu pomiarów. Więc dalsze drążenie tego tematu bez zastosowania się do powyższych rad nie ma sensu.
  • #14 7990358
    qudi
    Poziom 15  
    no dobra ale dlaczego mówisz ze z tym AVCC to poważny błąd. W rejestrze ADMUX daje (1<<REFS0) więc na pinie AVCC ma być 0V ?
  • #15 7990362
    Konto nie istnieje
    Poziom 1  
  • #16 7990390
    qudi
    Poziom 15  
    to dlaczego jeśli dam REFS0...1 ==0 to napięcie na AVCC znika ?

    Dodano po 4 [minuty]:

    kiedy nie podłączam AVCC to wszystko ładnie działa, i mam na nim napięcie jak ustawie REFS0 na 1, natomiast jak podłącze AVCC przez dławik i kondensator (taki filtr) to już tak ładnie nie działa...
  • #17 7990413
    Konto nie istnieje
    Poziom 1  
  • #18 7990429
    qudi
    Poziom 15  
    ale AVCC muszę podłączać do zasilania ?
  • #19 7990436
    Konto nie istnieje
    Poziom 1  
  • #20 7990458
    qudi
    Poziom 15  
    dałem 1uF potem 10uF potem 100uF próbowałem tez 100, 200 500 nF i wynik pływa tu i tam a przy elektrolitach masakrycznie. Ale jeśli odłącze zasilanie z AVCC i ustawię REFS0 na 1 no i potencjometr dam do AVCC TO działa ładnie... czy odłączenie zasilania od AVCC może uszkodzić procesor ?
  • #21 7990474
    Konto nie istnieje
    Poziom 1  
  • #22 7990505
    qudi
    Poziom 15  
    kondensatory stosowałem jako dodatek 100nF ciągle tam był. Mam nadzieję, że nic nie uszkodziłem bo odłączyłem parę razy no i wtedy działa idealnie...

    Dodano po 59 [sekundy]:

    Ale jak mówisz, że nie wolno to już nie wiem dlaczego tak jest.

    Dodano po 15 [minuty]:

    podłączyłem AVCC pod zasilanie przez dławik itd. następnie ustawiłem REFS0 na 1 i podłączyłem potencjometr pod AREF które niczym nie zasilam i działa całkiem przyzwoicie tylko że nie wiem jakim cudem skoro AREF nie jest podłączone...

    Dodano po 1 [godziny] 6 [minuty]:

    on ma jakieś wewnętrzne zasilanie ? no bo z zewnątrz nie zasilam AREF niczym...
  • #24 7991448
    qudi
    Poziom 15  
    no więc może być z niego zasilany ten potencjometr prawda ?
REKLAMA