Układ ADM1191 ma konfigurowalny komparator wykrywający przekroczenie zadanej wartości prądu. Wyniki konwersji dostępne są przez interfejs I²C. Możliwość adresowania układu umożliwia rozbudowę do 16 układów pomiarowych dołączonych do pojedynczej magistrali. Schemat funkcjonalny układu przedstawia rysunek 1. Podstawowa aplikacja ADM1191 zawiera tylko jeden rezystor Rs konieczny dla pomiaru prądu. Schemat ideowy modułu pokazano na rysunku 2.
Napięcie zewnętrzne jest doprowadzone do wyprowadzenia 1 złącza PWR - jednocześnie zasila U1 (wyprowadzenie VCC) oraz jest mierzone poprzez wewnętrzny przetwornik A/D. Układ pobiera ok. 1,7 mA, napięcie zasilania musi zawierać się w zakresie 3,15...26 V.
Zakres wewnętrznego przetwornika jest podzielony na dwa podzakresy 3,15...6,65 V i 3,15...26,52 V i wybierany za pomocą bitu VRANGE w rejestrze konfiguracji ADM1191. Pomiar prądu jest wykonany metodą pośrednią przez spadek napięcia na rezystorze Rs (w modelu zbudowany z Rs1...Rs4 dla rozproszenia mocy i ułatwienia doboru rezystora o niewielkiej rezystancji).
W zależności od ustawień w rejestrze konfiguracji wyniki przetwarzania dostępne są w dwóch lub trzech rejestrach, możliwe jest także pomiar tylko napięcia lub tylko prądu w trybie ciągłym lub jednokrotnym (one shoot). Układ umożliwia sygnalizację przekroczenia ustawionego progu (wyprowadzenie ALERTB) prądu poprzez dobór rezystorów RV1 i RV2 oraz aktywację funkcji w rejestrze alarmowym. W przypadku współpracy kilku układów wyprowadzenie CNV umożliwia synchroniczny start konwersji wbudowanych przetworników.
Moduł zmontowano na niewielkiej płytce drukowanej o wymiarach i rozstawie złącz zgodnym z pozostałymi modułami I²C. Rozmieszczenie elementów pokazano na rysunku 3. Dokładną konfigurację ADM1191 i zaawansowane funkcje przedstawia nota katalogowa.
W dalszej części wykorzystam tylko najbardziej istotne informacje potrzebne do szybkiego uruchomienia i sprawdzenia układu. Moduł ma ograniczone adresowanie do trzech możliwości ustalanych zworą A0 (tabela 1).
Przed pierwszym odczytem należy skonfigurować ADM1191, ustawiając tryb konwersji (ciągły/jednorazowy), załączyć przetwarzanie napięcia i/lub prądu. W tym celu należy do rejestru konfiguracyjnego przesłać odpowiednią wartość. Znaczenie bitów przedstawia rysunek 4.
Zapis konfiguracji wymaga przesłania dwóch bajtów:
[ADM1191_ADRES][ADM1191_CFG]
[ADM1191_ADRES] = [Start][01100] [A0][R!W][ACK_ADM]
[ADM1191_CFG] = [NC][STATUS_RD] [NC][VRANGE][I_ONCE][I_CONT][V_ ONCE][V_CONT][ACK_ADM]
Testowo układ skonfigurowany do ciągłej konwersji napięcia i prądu, z zakresem napięciowym 26,52 V, odczyt ich wartości wymaga odebrania trzech bajtów:
[ADM1191_ADRES][V11..A4][ACK] [I11..I4][ACK][V3..V0,I3..I0]
oraz przeliczenia wyników konwersji napięcia:
- dla zakresu 26,52 V - U = 26,52/4096×(V11...V0) [V],
- dla zakresu 6,65 V - U = 6,65/4096×(V11..V0) [V].
i prądu:
I = (105.48/4096)×(I11..0)/Rs
Rs jest rezystorem pomiarowym prądu, należy zwrócić uwagę, aby dobrze dobrać kompromis pomiędzy mocą strat, a wymaganą dokładnością przetwarzania, zmniejszanie napięcia różnicowego zmniejsza dokładność pomiaru. Standardowo dla pełnego zakresu przyjmuje się spadek napięcia na Rs o wartości 50...75 mV. Ewentualny offset należy skorygować programowo.
O ile pomiar napięcia w najmniej korzystnych warunkach cechuje się dokładnością lepszą od 1,15%, to pomiar prądu obarczony w skrajnym przypadku jest błędem do 6,7%. W typowych wartościach temperatur oraz przy zakresie różnicowym 50 mV prąd mierzony jest z dokładnością lepszą od 2%. Znaczący wpływ na dokładność ma oczywiście rezystor pomiarowy.
Przykładowy prosty szkic dla Energii/Arduino (Dla środowiska Energia wymagany Launchpad z procesorem 452/553) umożliwiający sprawdzenie poprawnego działania płytki przedstawia listing 1. Program realizuje ciągłą konwersję wartości napięcia i prądu oraz na ich podstawie oblicza moc. Wyniki przesyłane są do terminala znakowego 9600,8,N,1. Wynik działania szkicu pokazano na rysunku 5.
Adam Tatuś, EP