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

XMEGA128A1U - przetwornik DAC i napięcie odniesienia VREF

daro2012 28 Gru 2013 14:19 1692 5
REKLAMA
  • #1 13107318
    daro2012
    Poziom 11  
    Witam.
    Testuję właśnie DAC w XMEGA128A1U z zewnętrznym napięciem odniesienia. Założenie do testu było takie: do rejestrów DAC DATA wpisać wartość max czyli 0xFFF(12bit), a do wejścia AREF podawać napięcie (regulowane) 0..3,3V, przez co na wyjściu DAC powinno być napięcie zbliżone do AREF. I wszystko działa, z małym wyjątkiem. Jeśli napięcie na AREF jest z zakresu 0...500mV (np 200mV) na wyjściu DAC jest zawsze 500mV (choć powinno być 200mV wg przykładu). Dopiero od poziomu większego niż 500mV AREF=DAC OUT. Chciałbym więc zapytać, czy jest to przypadłość przetwornika DAC w XMEGA, czy może ja czegoś nie wiem o jego działaniu? W notach nie znalazłem informacji o takim zjawisku. Korzystając ze scalonych przetworników DAC typu MCP 49xx nie miałem takiego problemu.
  • REKLAMA
  • #2 13107528
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • #3 13107754
    daro2012
    Poziom 11  
    Masz rację, słabo szukałem. Teraz już wiem, że przetwornik przetwornikowi nierówny. W XMEGA VREF = min 1V, a w dedykowanych scalakach DAC VREF od 0V. I już tłumaczę do czego zmierzałem, bo zarzuciłeś, że mój pomysł jest dziwaczny. Chciałem w prosty sposób ominąć cyfrowy potencjometr (jako układ scalony) i zaprzęgnąć do tego celu DAC oraz napięcie Vref. Na wejście Vref podaję sygnał z wyjścia PWM (0..3,3V) oczywiście przez filtr RC, a tym samym wyznaczam górną wartość amplitudy na wyjściu DAC. Programowe bawienie się wartościami DAC nie ma sensu, bo i obliczanie logarytmów zajmuje wiele czasu uC, a dodatkowo przy małych wartościach DAC powstają niemiłosierne szumy. Więc jedyna drogą zostało wykorzystanie PWM + DAC z regulowanym Vref. Rozwiązanie to stosuję z wykorzystaniem MCP 49xx i działa niezawodnie, ale właśnie chiałem się pozbyć tych scalaków na rzecz XMEGA i wewnętrznego DAC. Jak widać nie da rady, a szkoda. Dzięki za podpowiedź.
  • REKLAMA
  • #4 13107904
    tmf
    VIP Zasłużony dla elektroda
    Jeśli górną wartość napięcia wyznacza PWM, a wypełnienie dla PWM jakoś musisz obliczyć, to nie widzę tu przewagi nad bezpośrednim przerobieniem danych dla DAC. Jeśli gdzieś tam pojawia się logarytm to w ten sposób się go nie usunie, chyba, że się te funkcje realizuje analogowo na jakimś opampie.
    Swoją drogą, jeśli Vref dla dowolnego DAC powstaje w wyniku filtrowania PWM na filtrze pierwszego rzędu (RC) to kiepsko widzę stabilność tego - znowu, mając 12-bitowy DAC prościej przeliczyć wartość próbek i wynik końcowy będzie o niebo lepszy.
    Zwróć też uwagę, że nawet jeśli jakiś DAC ma napisane, że Vref jest od 0V to i tak nic to nie znaczy - pewne błędy nie maleją proporcjonalnie do Vref i poniżej pewnego Vref DAC po prostu jest praktycznie bezużyteczny.
  • REKLAMA
  • #5 13109077
    daro2012
    Poziom 11  
    Wypełnienie PWM pobieram z tablicy, więc niczego nie obliczam. Dane z tablicy to stałe wartości tłumienia sygnału o kilka dB, wcześniej wyliczone, a potem wrzucane do PWM. Stabilność rozwiązania RC, jak dla mojego projektu, jest zadowalająca, bo założyłem 16 poziomów głośności i tyle osiągam, bez zauważalnej straty na jakości sygnału. Z kolei przetwarzanie danych audio 44,1 kHz 16 bit stereo (konwertowane do 12bit na rzecz DAC) i to wg założeń logarytmicznych, to chyba nie na silnik XMEGI. Mam na to tylko kilka marnych mikrosekund i dlatego chciałem pójść na skróty i użyć sprzętowego PWM+DAC wbudowanego w XMEGA.
  • #6 13110920
    tmf
    VIP Zasłużony dla elektroda
    Ale współczynniki dla głośności ciągle możesz trzymać w tabeli, różnica jest tylko taka, że masz jedno mnożenie. Swoją drogą jeśli masz próbki 16 bitowe a DAC 12 bitowy to trudno jednak nie zauważyć różnicy w jakości. Może lepiej zastosować zewnętrzny, porządny DAC łączony przez interfejs I2S?
    Lub inne rozwiązanie - skoro to dźwięk, a wyjście DAC z XMEGA wymaga impedancji wejścia kolejnego układu >1 kOm, to i tak trzeba dać wzmacniacz - regulację głośności można bezpośrednio zrobić na nim.
REKLAMA