Serwisy partnerskie:
Close icon
Serwisy partnerskie

Przetworniki ADC i DAC w praktyce

Article Image
Przetworniki analogowo-cyfrowe (ADC) i cyfrowo-analogowe (DAC) pozwalają w bardzo łatwy sposób integrować mikrokontrolery i układy analogowe. O ile większość hobbystów korzysta z modułów ADC wbudowanych w niemal każdy mikrokontroler dostępny na rynku, o tyle zewnętrzne układy ADC oraz DAC są amatorom praktycznie nieznane. W tym artykule przybliżę praktyczne aspekty stosowania tych ciekawych komponentów.

Na rynku dostępnych jest bardzo wiele najróżniejszych układów przetworników analogowo-cyfrowych oraz cyfrowo-analogowych. Jeszcze więcej układów integruje te przetworniki celem realizowania swoich funkcji – znanym wielu amatorom przykładem może być termometr cyfrowy DS18B20. Biorąc pod uwagę, w jak wielu układach potrzebna jest konwersja między sygnałami analogowymi, a danymi cyfrowymi, aż dziw bierze, jak rzadko hobbyści korzystają z dedykowanych układów ADC i DAC, i jak jeszcze rzadziej robią to poprawnie. 

Moduł ADC w mikrokontrolerze, a dedykowany układ ADC

Jednym z pytań, które hobbysta może zadać, jest to dotyczące stosowania zewnętrznego układu ADC, gdy mikrokontroler ma już taki moduł w swojej strukturze. To prawda, i w większości zastosowań przetworniki te mogą być wystarczające.

Jednakże mają one szereg ograniczeń, z których większość hobbystów nie zdaje sobie sprawy. Wystarczy jednak spojrzeć na specyfikację typowego modułu ADC, i porównać ją ze specyfikacją dedykowanego układu, by zobaczyć pierwszy problem. Dla przykładu niech posłuży mikrokontroler AVR ATMega328P, znany każdemu użytkownikowi Arduino. Nota podaje szereg istotnych parametrów, ale nas interesują cztery:

  • nieliniowość całkowita INL: 0,6 LSB typowo;
  • nieliniowość różnicowa DNL: 0,3 LSB typowo;
  • błąd wzmocnienia: ±3,5 LSB;
  • błąd przesunięcia (offsetu): ±3,5 LSB.

W efekcie bez dokładnej kalibracji 10-bitowy przetwornik ADC w mikrokontrolerze ma w praktyce tylko 8 bitów, bo ostatnim dwóm najmniej znaczącym bitom nie można ufać. Porównajmy to z dedykowanym układem ADC, a dokładniej z ADC101S021 firmy Texas Instruments. Układ ten również oferuje 10-bitową rozdzielczość, ale istotne dla porównania parametry wyglądają tak:

  • nieliniowość całkowita INL: od –0,13 LSB do +0,14 LSB;
  • nieliniowość różnicowa DNL: od –0,09 LSB do +0,12 LSB;
  • błąd wzmocnienia: ±0,7 LSB maksymalnie;
  • błąd przesunięcia (offsetu): ±1,0 LSB maksymalnie.

Już na starcie zyskujemy większą pewność co do wartości przedostatniego bitu, czyli bez kalibracji mamy 9 bitów rozdzielczości. Po kalibracji błędu przesunięcia i wzmocnienia uzyskamy prawdziwie dziesięciobitową dokładność. Ale możemy pójść o krok dalej i zakupić dokładniejszy układ, na przykład 12-bitowy, na przykład MCP3221 firmy Microchip:

  • nieliniowość całkowita INL: 0,75 LSB typowo;
  • nieliniowość różnicowa DNL: 0,5 LSB typowo;
  • błąd wzmocnienia: ±2 LSB maksymalnie;
  • błąd przesunięcia (offsetu): ±3 LSB maksymalnie.

Wygląda to nieco gorzej, niż dla modułu wewnątrz mikrokontrolera, ale pamiętajmy o dwóch dodatkowych bitach – po eliminacji błędów wzmocnienia i offsetu efektywna rozdzielczość wyniesie przynajmniej 10 bitów. Czy można lepiej? Jasne! Układ ADC121S021 firmy Texas Instruments oferuje pod pewnymi względami lepsze parametry:

  • nieliniowość całkowita INL: od –0,4 LSB do +0,55 LSB;
  • nieliniowość różnicowa DNL: od –0,3 LSB do +0,6 LSB;
  • błąd wzmocnienia: –1,6 LSB maksymalnie;
  • błąd przesunięcia (offsetu): –0,25 LSB maksymalnie.

Mógłbym wymieniać kolejne, dostępne układy, ale myślę, że nie jest to konieczne, bo łatwo zauważyć, iż praktycznie każdy dedykowany przetwornik ADC sprawdzi się lepiej, niż wewnętrzny moduł ADC w mikrokontrolerze, zwłaszcza gdy zależy nam na ich precyzji.

Warto jednak wspomnieć o tym, iż niektóre mikrokontrolery posiadają dość zaawansowane moduły ADC, potrafiące wykonywać automatyczne pomiary i generować przerwanie tylko wtedy, gdy zostanie przekroczona określona wartość minimalna lub maksymalna. Moduły te potrafią też wykonywać automatycznie operację uśredniania wyników i oversamplingu dla większej rozdzielczości i mniejszych szumów kosztem częstotliwości próbkowania. Oczywiście są i układy potrafiące to samo, a nie będące częścią mikrokontrolera, jak na przykład dwukanałowy, 12-bitowy przetwornik ADC z rozbudowanym systemem kontrolnym, ADS7142 firmy Texas Instruments. Układ ten potrafi prowadzić automatyczną akwizycję danych i zasygnalizować przekroczenie progów minimalnych, maksymalnych oraz bycia między nimi dla obu kanałów niezależnie. Automatycznie koryguje błąd offsetu, choć błąd wzmocnienia jest dość spory i stanowi typowo ±0,03% pełnego zakresu mierzonych napięć.

Aby przeczytać ten artykuł kup e-wydanie
Kup teraz
Firma:
Tematyka materiału: Moduł ADC w mikrokontrolerze, a dedykowany układ ADC, Rzecz o filtrach i buforach, Kalibracja błędów wzmocnienia i przesunięcia, Przetworniki DAC, Vref+DAC+ADC= precyzyjne źródło napięcia odniesienia, „Cyfryzacja” zasilacza warsztatowego, Słowo o źródłach napięcia odniesienia do przetworników ADC i DAC, Komunikacja z układami ADC i DAC
AUTOR
Źródło
Elektronika dla Wszystkich wrzesień 2024
Udostępnij
Zobacz wszystkie quizy
Quiz weekendowy
Czujniki temperatury
1/10 Temperatura to
UK Logo
Elektronika dla Wszystkich
Zapisując się na nasz newsletter możesz otrzymać GRATIS
najnowsze e-wydanie magazynu "Elektronika dla Wszystkich"