Niezbędne elementy konstrukcyjne podczas pracy z 12-bitowymi przetwornikami ADC

11

Obecnie projektuję płytę, która dołącza 12-bitowy ADC (MCP3208) do Raspberry Pi (oprócz kilku innych rzeczy związanych z I / O o niskiej prędkości). Będzie on głównie podłączony do czujników analogowych (czujników temperatury, czujników odległości na podczerwień i podobnych rzeczy, chociaż nie zawsze wymagają rozdzielczości 12 bitów, są przypadki, w których naprawdę dobrze byłoby mieć tę dodatkową część informacji).

Nie mam dużego doświadczenia z obwodami analogowymi i nie rozumiem dobrze matematyki i fizyki.

Czytam kilka przewodników projektowych dotyczących ADC i często czytam o takich rzeczach, jak filtry antyaliasingowe, sterowniki ADC do sygnałów o wysokiej impedancji, analogowe płaszczyzny uziemienia, układanie śladów w określonych wzorach w celu zmniejszenia szumów, utrzymywanie wysokiej prędkości cyfrowej elektroniki tak daleko, jak możliwe z ADC, aby zredukować szum przełączania, precyzyjne referencje napięcia i wiele innych rzeczy, których jeszcze w pełni nie rozumiem.

Zacząłem się zastanawiać, czy użycie 12-bitowego przetwornika ADC ma sens, jeśli nie mam specjalistycznej wiedzy, aby poprawnie go zaimplementować, ponieważ i tak mogę stracić 2 LSB z powodu nieoptymalnej konstrukcji obwodu, a raczej powinienem idź z 10-bitowym ADC. Czy też optymalne projektowanie obwodów nie jest tak istotne w 12-bitowej dziedzinie, jak mi się wydaje.

Jakie są rzeczy, które zawsze należy wdrażać, aby zmniejszyć hałas (np. Oczywisty bypass)? Jakie są największe przyczyny szumów w aplikacjach z mieszanym sygnałem, takich jak mój (procesor GHz rozmawia z ADC)? Jakie rzeczy są potrzebne tylko w aplikacjach o wyższej dokładności (14-16 bitów +)?

Naprawdę chciałbym wiedzieć, jakie rozsądne i niezbędne rzeczy powinienem uważać.

PTS
źródło
2
Zacznij od tego, co próbujesz zmierzyć i jakiego rodzaju rozdzielczości potrzebujesz, a następnie zdecyduj, jakiego rodzaju ADC i przetwarzania analogowego potrzebujesz. Na marginesie, przeczytaj swój arkusz danych ADC. Tracisz bity, nawet jeśli używasz go doskonale. Wyszukaj „ENOB”
Scott Seidman,
Problem polega na tym, że rzeczy, które będę musiał zmierzyć, będą się ciągle zmieniać. Czasami muszę zobaczyć każdy możliwy skok napięcia, czasem nawet 8 bitów wystarczy. Chciałbym mieć rozwiązanie, które może zaspokoić jak najwięcej aplikacji.
PTS,
Jak szybko musisz widzieć zmiany? (tj. jakiej częstotliwości próbkowania szukasz?)
ThreePhaseEel
2
„Czasami muszę zobaczyć każdy możliwy skok napięcia, czasem nawet 8 bitów wystarczy”. Wtedy twoje wymagania będą w stanie „zobaczyć każdy możliwy skok napięcia”. Jeśli potrzebujesz rozdzielczości 12 bitów, nawet sporadycznie, musisz zaprojektować 12 bitów. Jeśli przejdziesz do 10 bitów, nie będziesz miał 12, gdy będziesz ich potrzebować.
WhatRoughBeast,
Preferowana byłaby częstotliwość próbkowania 1 kHz +. Chociaż myślę, że w większości aplikacji 120Hz byłoby wystarczające. Chociaż ta częstotliwość próbkowania byłaby możliwa dla 8 kanałów jednocześnie (nie przy tym samym zegarze, ale wszystkie muszą być próbkowane kolejno). @WhatRoughBeast Tak, to był mój powód, aby zdecydować się na 12 bitów. Chociaż potrzebuję porady przy wdrażaniu tutaj.
PTS,

Odpowiedzi:

19

W przypadku aplikacji o mieszanym sygnale o średniej precyzji i niskiej częstotliwości próbkowania, takich jak Twoja, głównymi problemami, z którymi się stykasz, są wystarczająco dokładne dane referencyjne i utrzymywanie cyfrowego szumu przełączającego poza ADC. Jest na to kilka kroków, poczynając od fazy projektowania, a kończąc na układzie planszy.

Podczas projektowania obwodu

Po pierwsze, na etapie projektowania, ADC musi dostarczyć odpowiednie odniesienie, prawidłowe odsprzęgnięcie i napęd sygnału o niskiej impedancji, aby nastąpiła poprawna konwersja. Ponadto sygnał musi zostać przefiltrowany (filtr dolnoprzepustowy w aplikacji oprzyrządowania, takiej jak Twoja), aby uniemożliwić ADC skuteczne przekształcanie w dół wyższych częstotliwości na pasmo podstawowe (aplikacje RF mogą używać powolnego filtra nakładki pasmowej ADC + do Nyquist konwertować sygnał, oszczędzając na dedykowanym mikserze i LO).

Stabilizacja twojego odniesienia

Odniesienia sięgają od trywialnych i żałosnych (dyskretny żelowy Zener, dobry do och, 4 bity) po szaleńca (piekarnicze Zenery zakopane w układzie scalonym, używane w wysokowydajnych aplikacjach) - a specyfikacje często nie są jasne, mieszanie jednostek sposoby, które wprawiają w zakłopotanie nowicjuszy. Tabela w LTC AN82 jest przydatnym antidotum na to - biorąc pod uwagę twoją aplikację, w której twój ADC jest 12-bitową jednostką zdolną do 11+ ENOB, biorąc pod uwagę stabilne napięcie odniesienia i zasilanie 5 V, podałbym, że odniesienie ma być dokładne z dokładnością do 0,02% lub lepiej w całym zakresie temperatur, a szumy RMS nie stanowią problemu, ponieważ są o rząd wielkości mniejsze niż specyfikacja dokładności.

Niestety początkowa dokładność 0,02% bez przycinania dotyczy tego, gdzie zaczyna się robić ... trudny. Użycie wartości odniesienia 4.096V, biorąc pod uwagę, że pożądana wydajność ENOB oznacza, że ​​chcę uruchomić ADC przy cichym zasilaniu 5V z translatorem poziomu logicznego do 3.3VI / O w Pi, a 4.096V daje przyjemne, poręczne Relacja 1mV / zliczanie, jesteśmy ograniczeni do ADR4540 , X60003 , MAX6126AASA , a może LTC6655Bchociaż ostatnia część odcina go blisko, ponieważ ma początkową dokładność 0,025%. Chociaż tempco i histereza nie są niepokojące, ponieważ zakładam, że jest to aplikacja stołowa, a regulacja linii i obciążenia nie są poważnymi problemami, ponieważ jest zasilana z tego samego regulowanego zasilania 5 V co ADC i napędza tylko pin Vref ADC, długoterminowy dryf jest tu również problemem ze względu na brak wykończenia - w tym przypadku ADR4540 i MAX6126AASA są wyraźnymi zwycięzcami, odpowiednio przy 25 ppm / root-khr i 20 ppm / root-khr typowo - około w stosunku do potrzebnego stosunku 10-1 uznać, że dryf długoterminowy jest nieistotny. (Pozostałe dwie części charakteryzują się długotrwałym dryftem około 50-60 ppm / root-khr typowo.)

Oddzielenie wszystkiego

Arkusz danych MCP3208 zaleca przynajmniej 1µF kondensator do odsprzęgnięcia, podłączony od Vdd do systemu uziemiającego - AGND i DGND powinny być również podłączone z powrotem do tego samego systemu uziemiającego. Na szynie 5V należy również zastosować luzem odsprzęgacz ceramiczny lub polimerowy tantalu o wartości co najmniej 10µF / 10V.

Ponadto odniesienie należy odłączyć zgodnie z arkuszem danych - często jest to 100nF na wyjściu z 100nF na wejściu oprócz wszelkich obecnych pojemności odsprzęgających, ale LTC6655 wymaga znacznie większego kondensatora wyjściowego (używając tego samego P / N, gdy działa rozdzielacz luzem), a X60003 jest wybredny w przeciwnym kierunku ze względu na swoją niską moc.

Napęd wejściowy / buforowanie / filtrowanie

Na szczęście nie jest to trudne - dokładność 0,02% przekłada się na maksymalne przesunięcie wejściowe na poziomie 800µV, a ja mogę uzyskać kilka rzędów wielkości lepiej niż w przypadku GBW w zakresie MHz, pracując na pojedynczym zasilaniu 5V dostępnym z dzisiejszym zerem -suszące i wewnętrznie przycięte wzmacniacze. W AD8630 dostarcza opcja niskoszumowy auto-zero, podczas gdy szybko wewnętrznie przybraniem wzmacniacze low-offset obejmują OPA4350 i OPA4192 . Tak czy inaczej, można zastosować dwubiegunowy dolnoprzepustowy filtr antyaliasingu Sallen i Key z arkusza danych MCP3208, z częstotliwością narożną ustawioną na około 5 kHz lub mniej więcej - mogą również działać inne konstrukcje filtrów.

Zasilacz i interfejs cyfrowy

Specyfikacja ENOB (efektywna liczba bitów) MCP3208 zależy od zasilania - działa lepiej przy zasilaniu 5 V niż przy zasilaniu 2,7-3,3 V; musi również działać bez napięcia 5 V, aby użyć napięcia odniesienia 4,096 V. Rodzi to problem polegający na tym, że Pi używa logiki 3,3 V i nie toleruje 5 V, wymagając układu scalonego translacji poziomu logicznego, takiego jak TXB0104 - strona A idzie do Pi, a strona B do ADC.

Ponadto zasilanie 5 V powinno być względnie czyste - do wytworzenia go na pokładzie z wyższego napięcia zasilania należy zastosować liniowy regulator. Jeśli w aplikacji nie jest dostępne wyższe napięcie zasilania, można zastosować istniejącą szynę 5V, pod warunkiem że sieć odsprzęgająca LC jest używana do utrzymywania dużych ilości szumu cyfrowego poza ADC i szyną zasilającą wzmacniacza operacyjnego.

Czas na układ

Istnieją dwa klucze do skutecznego układu mieszanego sygnału: podział i układ zasilania / powrotu . Dotknę tych z kolei.

Najpierw starannie podzieliłem układ płytki na dwie strony - stronę cyfrową i stronę analogową. Wszystkie cyfrowe ślady (interfejs SPI, w przypadku MCP3208, którego używasz) przechodzą na cyfrową stronę płytki - ta strona płytki zawiera także układ translacji poziomu logicznego i złącze I / O do Pi. Strona analogowa płytki zawiera wszystkie analogowe ślady i obwody - tutaj pojawia się napięcie odniesienia, podobnie jak filtry wejściowe, zabezpieczenie wejściowe i analogowe złącza wejściowe. ADC (i cewka filtra, jeśli używasz 5 V z Pi) jest jedynym elementem, który wypełnia tę lukę - w rzeczywistości

Zauważ również, że wszystkie części, które połączyłem, są dostępne w pakietach SMT z grubym skokiem - wysoce jednostronny układ z tyłem jako ciągłą płaszczyzną GND jest wysoce zalecany, jeśli ma być tutaj użyta dwustronna tablica. Jeśli koszt nie jest zastrzeżeniem, czterowarstwowa płyta zapewni oprócz analogicznej płaszczyzny uziemienia ciągłą analogową płaszczyznę Vdd, a także miejsce na „kałużę mocy” dla strony logicznej 3,3 V układu scalonego translatora poziomu logiki. Jednak w tej aplikacji nie ma potrzeby podziału płaszczyzny uziemienia - właściwe trasowanie śladów sygnału utrzyma prądy powrotne tam, gdzie należą .

ThreePhaseEel
źródło