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

Przetwornik ADC w ATXmega128A3

Fajfer2 05 Lip 2011 15:59 1209 3
REKLAMA
  • #1 9685004
    Fajfer2
    Poziom 20  
    Mam pewien kłopot z uzyskaniem wartości zerowej z przetwornika ADC (Xmega).
    Inicjuję przetwornik:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    nie mogę jednak zejść poniżej około 200 (z 4096) - w jednym z DS jest narysowane że tryb single ended unsigned zaczyna się od 200, ale czy to tak ma być? czy rzeczywiście nie ma pełnej rozdzielczości 12 bitów deklarowanej w reklamowych DS ?
  • REKLAMA
  • Pomocny post
    #2 9685708
    drzasiek
    Specjalista CNC
    Mi zaczyna od ok 170 z trybie bez znaku, ze znakiem od ok -9 więc przy takiej rozdzielczości jest w miarę znośnie. A w którym DS to wyczytałeś? Skoro tak piszą, tak pewnie ma być.
    A po co odczytujesz obydwa rejestry skoro można całość naraz?
    
    Pomiar=ADCA.CH0RES
    
  • REKLAMA
  • Pomocny post
    #3 9688062
    tomhandyman
    Poziom 13  
    To jest stały offset, dobrze jest jedno wyprowadzenie adc połączyć z masą i zmierzyć offset przed innymi pomiarami (najlepiej kilka razy i wyciągnąć średnią), następnie od innych pomiarów odejmujesz offset i masz w miarę stabilny wynik poczynając od wartości zerowej. Polecam zajrzeć do przykładów aplikacji AVR1300 i AVR1505, gdzie wszystko odnośnie z ADC i offsetu jest opisane.
  • #4 9689013
    Fajfer2
    Poziom 20  
    Faktycznie, u mnie też wartość najniższa po zwarciu do masy u mnie wynosi 110,
    czyli rozdzielczość przetwornika ADC w trybie single ended unsigned wynosi około 11.96 bita :)
    Poprzednio nie całkowicie zwierałem do masy, tylko p-r-kiem do minimum.
    Pozostaje zrobić próbę z zewnętrznym źródłem odniesienia 2.5V. Powinien pomiar być bardziej stabilny (Ucc = 3.3V).
REKLAMA