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

Pomiar ADC - błedy przy zmianie ADMUX w ATMEGA644P

Marek_Gorecki 18 Lut 2017 10:19 891 17
REKLAMA
  • #1 16287450
    Marek_Gorecki
    Poziom 16  
    Posty: 494
    Pomógł: 2
    Ocena: 30
    Witam,

    mam program, w którym chciałem robić kilka pomiarów napięcia następujących po sobie, ale wykorzystując różne napięcia referencyjne.
    Po wykonaniu pomiaru, zmieniam zawartość rejestru ADMUX i znów robię pomiar.

    Zauważyłem, że po zmianie rejestru ADMUX, pięrwszy pomiar jest uszkodzony.
    Wydaje mi się, że przyczyną tego jest kondensator od Uref, który musi się przeładować.

    Jeśli dam delay 2ms, to wszystko jest OK.

    Moje pytanie brzmi - czy da się to zrobić bez opóźnień?
  • REKLAMA
  • #2 16287461
    excray
    Poziom 41  
    Posty: 5500
    Pomógł: 739
    Ocena: 656
    Kolego Marku masz już 360 postów na tym forum i jeszcze nie nauczyłeś się, że załączanie kodu to podstawa?
  • REKLAMA
  • #3 16287475
    Konto nie istnieje
    Konto nie istnieje  
  • #4 16287479
    excray
    Poziom 41  
    Posty: 5500
    Pomógł: 739
    Ocena: 656
    Kolego @Piotrus_999 mając również wiele projektów z ADC w AVR wiem, że nie trzeba pomijać żadnego pomiaru z ADC. Wystarczy dobrze napisać kod.
  • REKLAMA
  • #5 16287626
    Konto nie istnieje
    Konto nie istnieje  
  • #6 16288194
    excray
    Poziom 41  
    Posty: 5500
    Pomógł: 739
    Ocena: 656
    Przecież producent wyraźnie pisze, że jest to profilaktyczne a nie obowiązkowe wiec jak to się ma do problemu kolegi @Marek_Gorecki który pisze, że zawsze ma uszkodzony pierwszy pomiar? Ja stosując się min. do zasad opisanych przez producenta nigdy nie miałem problemu z pierwszym odczytem po zmianie kanału i nawet najwyraźniej producent też nie widzi tutaj problemu skoro zaleca to tylko jako opcję. Więc ewidentnie problem leży w kodzie obsługi.

    Moderowany przez tmf:

    Cześć postu usunąłem, ze względu na łamanie regulaminu:
    3.1.9. Nie ironizuj i nie bądź złośliwy w stosunku do drugiej strony dyskusji. Uszanuj odmienne zdanie oraz inne opinie na forum.

  • REKLAMA
  • #7 16288258
    dasej
    Poziom 32  
    Posty: 1905
    Pomógł: 165
    Ocena: 265
    Witam.

    Szanowni koledzy. Tak się zapędziliście w dyskusję że nie zwróciliście uwagi
    że oprócz zmiany kanały Marek zmienia też napięcie odniesienia.

    Jestem ciekaw waszego zdania w tym temacie.
    Jak zmiana napięcia odniesienia ma się do dokładności pomiarów.
    A jak zachowa się ADC jak będzie też odwoływał się do zewnętrznego napięcia odniesienia a innym razem do wewnętrznego.

    Marek_Gorecki napisał:
    Witam,

    .... ale wykorzystując różne napięcia referencyjne.
    Po wykonaniu pomiaru, zmieniam zawartość rejestru ADMUX i znów robię pomiar.

  • #8 16288278
    Konto nie istnieje
    Konto nie istnieje  
  • #9 16288355
    Konto nie istnieje
    Poziom 1  
  • #10 16288433
    Konto nie istnieje
    Konto nie istnieje  
  • #11 16288600
    Konto nie istnieje
    Poziom 1  
  • #12 16288834
    Marek_Gorecki
    Poziom 16  
    Posty: 494
    Pomógł: 2
    Ocena: 30
    Panowie, ale jaki wpływ ma obwód wejściowy kanału ADC na bład od przełaczania nap ref?

    Problem (chyba) dotyczy kondensatora wyprowadzonego na zewnątrz, na którym jest właśnie napięcie referencyjne.
    Mój problem polega na tym, że używam kilku kanałów ADC, i każdy z nich jest mierzony w innym zakresie.
    Jeden w zakresie 0-1V ( używam wtedy napięcie referencyjne 1.1V.
    Drugi w zakresie 0-2.56V (wtedy przełączam napięcie referencyjne na 2.56).
    Trzeci (rzadko) mierzę od 0-5V i wtedy włączam napięcie zasilania jako referencyjne.
    Po zmianie ADMUX, zmienia się napięcie referencyjne i musi minąć chwila aby napięcie to ustabilizowało się.
    I właśnie tu leży problem, bo jeśli mam kilka kanałów, i na każdym mam dać Delay 2ms, to robi się za duże opóźnienie.
    Myślałem własnie aby jakoś sprytnie to obejść.
  • #13 16288838
    tadzik85
    Poziom 38  
    Posty: 3404
    Pomógł: 415
    Ocena: 16
    Marek_Gorecki napisał:
    Panowie, ale jaki wpływ ma obwód wejściowy kanału ADC na wynik?
    Według mnie żaden.
    o impedancji wyjściowej kolega słyszał?
  • #14 16288849
    Marek_Gorecki
    Poziom 16  
    Posty: 494
    Pomógł: 2
    Ocena: 30
    tadzik85 napisał:
    Marek_Gorecki napisał:
    Panowie, ale jaki wpływ ma obwód wejściowy kanału ADC na wynik?
    Według mnie żaden.
    o impedancji wyjściowej kolega słyszał?

    Słyszałem , ale ten problem akurat tu ma znaczenie drugorzędne.
    Zmieniając napięcie referencyjne przecież nie wpływam na wejście ADC, nie zmieniam napięcia wejściowego.
    Wynik pomiaru jest stabilny, ale pięrwszy pomiar jest zawsze uszkodzony.
    Dodano po 5 [minuty]:
    Marek_Skalski napisał:
    @Marek_Gorecki
    W przypadku napięcia referencyjnego efekt jest trochę inny. Do wyprowadzenia Vref przypięty jest kondensator i napięcie na nim musi zostać "zaktualizowane". Te 2ms, to może być właśnie czas potrzebny na (roz)ładowanie kondensatora po każdej zmianie napięcia odniesienia. Aby to zrobić bez opóźnień, możesz zmodyfikować obwód kondensatora przy Vref i sam zadbać o szybką zmianę napięcia. Czy nie możesz dopasować poziomu mierzonych sygnałów, aby używać jednego napięcia odniesienia? Zazwyczaj jest to łatwiejsze niż żonglowanie referencjami.


    Dokładnie o to chodzi.
    Ale, nie mogę zrobić wspólnego napięcia referencyjnego.
    Chciałbym maksymalnie zwiększyć dokładność pomiaru.
    Dlatego w zależności jakie napięcie przychodzi, to zmieniam napięcie referencyjne ( ATMEGA644P ma dwa napięcia ref 1.1 i 2.56V)
  • Pomocny post
    #15 16288871
    Konto nie istnieje
    Konto nie istnieje  
  • #16 16288875
    Marek_Gorecki
    Poziom 16  
    Posty: 494
    Pomógł: 2
    Ocena: 30
    Czyli jedyne rozsądne rozwiązanie to jest poczekanie na stabilizację napięcia na kondensatorze 100n.
  • Pomocny post
    #17 16288881
    Konto nie istnieje
    Konto nie istnieje  
  • Pomocny post
    #18 16289237
    dondu
    VIP Zasłużony dla elektroda
    Posty: 13906
    Pomógł: 1292
    Ocena: 809
    Wszystko co trzeba jest w dokumentacji:

    1. Zmiana kanału:

    Cytat:
    When changing channel selections, the user should observe the following guidelines to ensure that the
    correct channel is selected:

    In Single Conversion mode, always select the channel before starting the conversion. The channel
    selection may be changed one ADC clock cycle after writing one to ADSC. However, the simplest
    method is to wait for the conversion to complete before changing the channel selection.

    In Free Running mode, always select the channel before starting the first conversion. The channel
    selection may be changed one ADC clock cycle after writing one to ADSC. However, the simplest
    method is to wait for the first conversion to complete, and then change the channel selection. Since
    the next conversion has already started automatically, the next result will reflect the previous
    channel selection. Subsequent conversions will reflect the new channel selection. The user is
    advised not to write new channel or reference selection values during Free Running mode.



    2. Zmian napięcia odniesienia:

    Cytat:
    If no external voltage is applied to the AREF pin, the user may switch between AVCC and 2.56V as reference selection.
    The first ADC conversion result after switching reference voltage source may be inaccurate, and the user
    is advised to discard this result.


    ... a ile wyników odrzucić lub jaki czas odczekać, zależy tylko od ustawień ADC i tego jak dokładne mają być pomiary po zmianie kanał, czy napięcia referencyjnego. Tutaj niestety testy (jak pokazał to Piotrus_999) są niezbędne.

Podsumowanie tematu

✨ W dyskusji poruszono problem błędów pomiarowych w układzie ADC ATMEGA644P po zmianie rejestru ADMUX, szczególnie przy zmianie napięcia odniesienia. Użytkownik zauważył, że pierwszy pomiar po zmianie kanału jest uszkodzony, co przypisuje konieczności przeładowania kondensatora Uref. Wiele odpowiedzi sugeruje, że pomijanie pierwszego pomiaru jest standardową praktyką, a także zaleca się stosowanie odpowiednich torów analogowych oraz buforów. Uczestnicy dyskusji podkreślają, że czas stabilizacji napięcia odniesienia jest kluczowy, a odrzucenie pierwszych wyników pomiarów lub wprowadzenie opóźnienia może być konieczne dla uzyskania dokładnych odczytów. Wskazano również na znaczenie impedancji źródła sygnału oraz na dokumentację producenta jako źródło niezbędnych informacji.
Wygenerowane przez model językowy.
REKLAMA