Użyj skrzynek dla zewnętrznego ADC


9

Większość mikrokontrolerów (uC) ma konwerter analogowo-cyfrowy (ADC) jako część zestawu urządzeń peryferyjnych, co jest fenomenalne, ponieważ integruje dwa elementy w jednym pakiecie. Te ADC są zwykle również mapowane w rejestrze, co pozwala szybko i łatwo wyodrębnić dane.

Pomimo tej ścisłej integracji nadal można kupować zewnętrzne ADC. Widzę dla nich kilka przypadków:

  • ADC należy odizolować od uC.
  • Głębia bitowa próbek ADC musi być większa niż ADC uC.
  • Napięcie do wyczuwania jest dalekie od mikrokontrolera, a długie linie analogowe są niedopuszczalne.
  • Napięcie do wyczuwania znajduje się w trudnym środowisku nieprzystosowanym do UC.
  • Zewnętrzny ADC pobiera próbki znacznie szybciej niż ADC uC.
  • Napięcie odniesienia dla niektórych próbek jest inne niż dla innych, co wymaga wielu styków Vref (a zatem wielu zewnętrznych ADC).
  • Obecny uC nie ma wystarczającej liczby kanałów ADC, a koszt wprowadzenia nowego uC jest wygórowany.
  • Zewnętrzny ADC zużywa mniej energii niż ADC uC (potrzebowałbym przykładu, żeby w to uwierzyć).
  • Kanały ADC muszą być próbkowane jednocześnie (rzadki scenariusz).
  • Koszt programowania oprogramowania w czasie produkcji przewyższa koszt droższej części ADC (mało prawdopodobne).
  • Płytka drukowana ma ograniczoną przestrzeń i żaden uC nie może się zmieścić (mało prawdopodobne).

Wszystko jest dobrze i dobrze, ale dziwne jest to, że zewnętrzne ADC są zwykle nieco droższe niż ich odpowiedniki z UC, ale zapewniają równoważną funkcjonalność. Na przykład można kupić część EFM32Z z 12-bitowym ADC 1Msps (z wewnętrznym odniesieniem) za około 1 USD lub można kupić równoważny ADC 12-bitowy 200 ksps za około 3,50 USD (te same prędkości (ish), względnie te same liczby mocy itp.) I wykonać to samo zadanie (wyodrębnianie danych ADC).

Powstaje zatem pytanie: czy istnieją ważne powody, dla których inżynier wolałby zewnętrzny ADC niż ADC uC, gdy ten ostatni może wykonywać tę samą funkcjonalność?


1
Jednoczesne próbkowanie jest w rzeczywistości dość powszechnym scenariuszem w niektórych obszarach aplikacji, takich jak przetwarzanie sygnałów.
Jason R

Odpowiedzi:


12

Jeśli wewnętrzny ADC twojego mikrokontrolera wykonuje zadanie, którego potrzebujesz, to nie, nie potrzebujesz zewnętrznych ADC. Ale nie do tego są przeznaczone.

Opisałeś większość przyczyn zewnętrznego ADC, ale jest kilka innych i, moim zdaniem, są to niektóre z najważniejszych powodów:

  1. Potrzebujesz innej technologii próbkowania - na przykład wewnętrzny ADC to SAR, ale musisz zrobić Delta Sigma.
  2. Wewnętrzny ADC, ponieważ jest wewnętrzny i ma tę samą matrycę co główny MCU, nigdy nie będzie w 100% wolny od hałasu pozostałej części MCU, więc zewnętrzny może być bardzo cichy
  3. Twój wybrany mikrokontroler / SoC / FPGA nie ma ADC. Te dwa ostatnie są najprawdopodobniej - najczęstsze SoC i FPGA w ogóle nie mają ADC. Tak, możesz dostać takie, ale wiele nie. Więc dodajesz zewnętrzny.

W przypadku punktu 3 weźmy na przykład Raspberry Pi. To wcale nie ma ADC, musisz dodać zewnętrzny, aby w ogóle wykonać jakąkolwiek pracę analogową.


To jest interesujące. Jeśli chodzi o hałas, zamiast płacić za zewnętrzny ADC, ten sam wynik można uzyskać, uzyskując ADC o wyższej głębi bitów i ignorując najmniej znaczące bity próbkowanego wyniku (to oczywiście zakłada, że ​​dodatkowy czas konwersji z dodatkowe bity nie są czynnikiem utrudniającym).
TRISAbits,

3
Przetwarzanie sygnału po fakcie może pomóc jedynie w przypadku szumu pochodzącego z procesów niezależnych od taktowania próbki (i w ten sposób przyczynić się do powstania szumu „losowego”). Duża część hałasu w systemie procesorowym będzie wynikać ze zmian w zasilaniu i obciążeniu gruntu, które są nieco zsynchronizowane z procesem próbkowania; jedynym sposobem na ich uniknięcie jest użycie przez ADC własnej odłączonej szyny zasilającej. Należy pamiętać, że pełna izolacja nie jest konieczna, ponieważ wiele ADC może z łatwością tolerować około 100 mV między analogowym i cyfrowym VDD / VSS.
supercat,

9

Kolejne kilka powodów, by faworyzować zewnętrzny ADC:

  1. Wiele zewnętrznych części ADC zawiera wejścia różnicowe, podczas gdy wbudowane konwertery mikrokontrolerów często tego nie robią. W przypadkach, gdy wejścia mają dużo szumu w trybie wspólnym, może to być bardzo ważne.

  2. Wiele zewnętrznych części ADC zawiera stopień wzmacniacza przed samym konwerterem, dzięki czemu konwerter może mierzyć bezpośrednio sygnał o wysokiej impedancji. Na wielu mikrokontrolerach próbkowanie sygnału wejściowego może go zakłócać. W zależności od charakteru sygnału wejściowego może to znacznie wydłużyć czas akwizycji niezbędny do wykonania dokładnych pomiarów.

  3. Nawet jeśli wewnętrzny ADC ma szerokość dwunastu bitów, to na ogół nie oznacza, że ​​wymaga odczytów z dokładnością do jednej części w 4096. Typowy zewnętrzny ADC często ma lepsze specyfikacje niż wewnętrzny, nawet jeśli oba mają tę samą reklamowaną głębokość bitów.

Zintegrowanie ADC z mikrokontrolerem jest łatwe. Integracja dobrego ADC jest znacznie trudniejsza. Zgadnij, co jest częstsze.


1
Przetworniki SAR ADC nieco ucierpiały w wyniku wstrzyknięcia ładunku, ponieważ chwilowe podłączenie matrycy kondensatorów próbkujących do wejścia zakłóca pomiar. Jeśli źródło wejściowe nie odzyskuje się wystarczająco szybko, powoduje to błąd pomiaru. Większa rozdzielczość zwykle wymaga większej wewnętrznej pojemności próbkowania. Rozdzielczość sigma Delta zależy tylko od rozszerzenia licznika cyfrowego. (Chociaż dobre specyfikacje INL / DNL o wysokiej rozdzielczości nie są
łatwe

@ supercat: Nigdy nie rozważałem stopnia wzmacniacza jako części konwersji. Otwiera to interesujące ścieżki próbkowania obwodów.
TRISAbits,

2
@ MarkU: Zauważyłem problem wtrysku ładunku w niektórych obwodach. Co ciekawe, niektóre konwertery wydają się próbować ładować sygnał wejściowy w kierunku poprzedniej próbkowanej wartości (z dowolnego wejścia próbkowanego jako ostatni), niektórzy próbują ładować go w kierunku zera, a przynajmniej jeden zdawał się dowolnie („losowo”) ładować go w kierunku wyższej lub niższe napięcie, które uznałem za dość irytujące. Nie rozumiem, dlaczego część miałaby robić to drugie; nawet gdyby musiał się do czegoś ładować, konsekwentne ładowanie do zera byłoby lepsze niż ładowanie w kierunku jakiejś „losowej” wartości.
supercat

4

Kolejny powód istnienia niektórych zewnętrznych przetworników ADC: były one znacznie dłuższe niż mikroskopy z wewnętrznymi przetwornikami ADC i zostały zaprojektowane w wielu produktach. Ewentualnie 20 lub 30 lat dłużej. (Prawdopodobnie nie dotyczy to połączonej części SOIC, choć może to być zmodernizowana, zmniejszona wersja klasycznej części)

Tam, gdzie ADC nie ma gwiezdnej rozdzielczości, dokładności ani szybkości, a mimo to ma wyższą cenę, może to być powód.

Nawet w przypadku nowych projektów może być bardziej pożądane ponowne użycie bloków, które działają dobrze, niż ponowne zaprojektowanie nowej części (nawet jeśli wynikowa integracja obniży koszt BOM). Ta reinżynieria może być droga; proces zatwierdzania testów i przepisów, tym bardziej.

Teraz, jeśli zaczynasz od zera, a wybrany mikrokontroler ma wystarczającą liczbę kanałów ADC, które spełniają Twoje wymagania, żadne z powyższych nie ma zastosowania.


2

Zdaję sobie sprawę, że jest to bardzo stare pytanie, ale jest to pytanie, które dość często debatujemy wewnętrznie.

Masz rację, wybranie zewnętrznego ADC byłoby niezwykłe, gdyby zewnętrzna wersja była dokładnie funkcjonalnie równoważna. Jednak z mojego doświadczenia wynika, że ​​tanie mikroskopy zwykle mają dość kiepskie przetworniki ADC z przesunięciem temperatury, niską liczbą bitów (10-12 bitów) i szumem z VCC (+/- 20mV w niektórych przypadkach) ... chociaż odwrotność może być prawdziwa. .. możesz poprawić S / N, jeśli przesadzasz i masz szum. W naszych działaniach związanych z rozwojem produktu bardzo rzadko opieramy nasz wybór MCU na jakości obecnych w nim ADC. Zwykle chodzi bardziej o łańcuch narzędzi, koszt, istniejące oprogramowanie układowe itp. Wewnętrzne ADC są zwykle ograniczone do niekrytycznych zadań, takich jak odczyt napięcia akumulatora.

Z różnymi mikrami mogą również występować problemy ze wspólnymi licznikami czasu, które wymagają monopolizacji w celu uzyskania krótkich czasów próbkowania, ale zakłócają inne rzeczy w MCU (porty szeregowe oprogramowania, ISR itp.), Gdy są zmonopolizowane dla ADC.

Co to jest VREF? Jeśli używasz VCC jako odniesienia w oprogramowaniu układowym, nawet jeśli skalibrujesz do „prawdziwego” VCC, wartość ta może się bardzo wahać podczas operacji. Jeśli masz na pokładzie urządzenie wysokoprądowe (radio, Wi-Fi, MCU itp.) Z dużym zużyciem prądu przejściowego, VCC może spaść do 4,8 woltów podczas transmisji i jeśli twoja próbka wystąpi w tym oknie, a naiwnie przekształcisz 0-1023 ADC odczytał wartość napięcia z ADC_VAL / 1023 * 5.0 - straciłeś ogromną precyzję 200mV. Lub, jeśli masz różne tryby zasilania (USB, Wall wart, bateria) - VCC na MCU może się zmienić (szczególnie z USB). Zewnętrzne ADC (nawet przy tej samej liczbie bitów) mogą zapewnić solidny wewnętrzny vref w zmiennych warunkach VCC.

Rozdzielczość jest bardzo ważna. Wyobrażam sobie, że istnieje jakieś zastosowanie (w prawdziwym świecie) dla 10-12 bitów rozdzielczości, ale dla każdego rodzaju zastosowań w świecie rzeczywistym (wykrywanie gazu, pomiar akustyczny, pomiar akcelerometru, precyzyjny pomiar temperatury itp.) 16-bitowy jest zwykle minimalna rozdzielczość w celu uzyskania odpowiedniego sygnału do szumu i charakterystyki rozdzielczości. Nawet naprawdę ładne 32-bitowe MCU, takie jak SAMD firmy Atmel, są ograniczone do 12-bitowych wewnętrznych ADC.

Jitter zegara jest również problemem, a także istnieje pewna nieodłączna niedokładność, gdy inne 8-bitowe mikra są wymagane do zapewnienia odczytu 12-bitowego i potrzeba co najmniej 2 cykli zegara do manipulowania wartością 12-bitową, co może nie być prawdą z zewnętrznym ADC (ponieważ mogą mieć wewnętrzne oscylatory).

Są też chwile, kiedy ważna jest fizyczna bliskość przetwornika i izolacja od MCU. Niektóre bardzo czułe przetworniki wymagają własnej kondycjonowanej mocy, izolowanych płaszczyzn uziemienia i niezwykle czułych wzmacniaczy przerywających transimpedancji z 0,01% pasywnymi.

Czasami istnieją jednak ważne powody, aby używać wewnętrznych ADC. DMA jest jednym z powodów ... częstotliwość próbkowania jest innym. Łatwość nadpróbkowania to kolejna sprawa. Połączenie zewnętrznych ADC przy dużych szybkościach transmisji danych może pochłonąć wiele cennych zmultipleksowanych pinów I / O i stworzyć bardziej skomplikowaną konstrukcję. Ponadto wiele używanych przez nas ADC jest opartych na I2C, więc częstotliwość próbkowania jest bardzo ograniczona przez prędkość magistrali I2C. Nawet przy prędkości 1 Mb / s odczyt 16-bitowy zajmuje boleśnie dużo czasu.


To doskonały wgląd! W miarę upływu lat (i moje doświadczenie rosło) musiałbym się zgodzić: wewnętrzne ADC MCU mogą być kiepskie.
TRISAbits
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.