Schemat blokowy układu MCP3428 pokazano na rysunku 1. Ma on 4-kanałowy multiplekser analogowy, wzmacniacz o cyfrowo programowanym wzmocnieniu (G=1, 2, 4, 8 V/V) i 16-bitowy przetwornik delta-sigma o prędkości próbkowania 15 SPS. Możliwie jest przetwarzanie sygnałów różnicowych lub niesymetrycznych (rozdzielczość ograniczona o jeden bit ze wzglądu na brak bitu znaku). Rozdzielczość pomiaru jest określana programowo i może być ograniczona do 14 lub 12 bitów przy jednoczesnym wzroście szybkości próbkowania, odpowiednio, do 60 lub 240 SPS. Układ ma wbudowane, precyzyjne źródło napięcia odniesienia 2.048 V.
Komunikacja odbywa się z użyciem interfejsu I²C. Układ charakteryzuje się niewielkim poborem mocy i zasilaniem z zakresu 2,7...5,5 V.
Schemat ideowy modułu zamieszczono na rysunku 2. Sygnały wejściowe doprowadzone są do gniazd CHx. Dalej, przez filtr dolnoprzepustowy, do wejść różnicowych przetwornika U1. Przy pracy z niesymetrycznym sygnałem wejściowym należy zewrzeć piny 2-3 odpowiedniego złącza CHx, niesymetryczny sygnał doprowadzić do wyprowadzenia 1, a masę do 2. Przy pomiarze sygnału asymetrycznego można nie wlutowywać kondensatora C2, a w miejsce pojemności C4 i rezystancji R7 wlutować zwory.
Dławik L1 oraz kondensatory CE1 i C1 pełnią funkcję filtru zasilania. Układ uzupełnia przełącznik SW. Pozycje 3, 4 umożliwiają "podwieszenie" magistrali I²C. Zwora 1, 2 umożliwia wybór adresu magistrali - został on ograniczony do 4 adresów (tabela 1). Sygnały magistrali I²C i zasilania doprowadzone są do złącza I²C o standardzie zgodnym z Arduino. Złącze I2C1 powiela sygnał i ułatwia kaskadowanie modułów. Dioda LD sygnalizuje załączenie zasilania.
Moduł zmontowano na niewielkiej, dwustronnej płytce drukowanej. Rozmieszczenie elementów pokazano na rysunku 3. Montaż jest typowy i nie wymaga opisu.
Obsługa przetwornika jest prosta, po konfiguracji adresów magistrali układ jest gotowy do pracy. Konfigurację wewnętrzną, wybór kanału i wzmocnienia ustalany jest bajtem zapisywanym do rejestru kontrolnego. Znaczenie bitów rejestru przedstawia rysunek 4. Bity rejestru kontrolnego możliwe są do odczytu stanu jak i do zapisu konfiguracji, w zależności od wybranego typu konwersji. Zapis konfiguracji wymaga przesłania 2 bajtów (rysunek 5), natomiast odczyt - trzech (rysunek 6).
Przykładowy szkic dla Arduino/Energii umożliwiający sprawdzenie poprawnego działania płytki zamieszczono na listingu 1. Realizuje on ciągłą konwersję 15 bit (niesymetryczna, bez sprawdzania flag), wybrany kanał CH3, wzmocnienie 1 V/V, wyniki przesyłane są do terminala znakowego (9600, 8, N, 1).
Adam Tatuś, EP