Moduł do pomiaru napięcia i prądu z interfejsem I2C

Moduł do pomiaru napięcia i prądu z interfejsem I2C

Prezentowany moduł umożliwia pomiar napięcia stałego w szerokim zakresie, oraz prądu o wartości zależnej od zastosowanego rezystora pomiarowego. Odczyt wyników jest możliwy poprzez interfejs I2C, co pozwala na zastosowanie go np. w połączeniu z Raspberry Pi, Arduino, STM32 itd.

Podstawowe parametry:
  • zakres pomiaru napięcia: 7…80 V z rozdzielczością 25 mV,
  • zakres pomiaru prądu: 2,048 A z rozdzielczością 0,5 mA,
  • zakres pomiaru prądu zależy od zewnętrznego bocznika i może zostać zmieniony,
  • trzeci uniwersalny kanał do pomiaru napięcia z zakresu 0…2,048 V,
  • komunikacja poprzez interfejs I2C.

Moduł bazuje na układzie LTC4151, którego schemat wewnętrzny został pokazany na rysunku 1. Jest to specjalizowany, trzykanałowy, 12-bitowy przetwornik ADC z wbudowanymi obwodami pomiaru napięcia oraz prądu.

Rysunek 1. Schemat wewnętrzny układu LTC4151 (za notą Analog Devices)

Przeznaczeniem układu jest kontrola parametrów zasilania lub obciążenia w dodatniej szynie zasilania. Zakres pomiaru napięcia wynosi 7...80 V, a prądu zależy od zewnętrznego bocznika Rs (pełen zakres mierzonego napięcia wynosi 81,92 mV). Trzeci uniwersalny kanał ADIN służy do pomiaru zewnętrznego napięcia, które musi zawierać się w zakresie 0...2,048 V.

Budowa i działanie

Schemat modułu został pokazany na rysunku 2. Zewnętrzne źródło zasilania podłączone jest do zacisków 1 i 2 złącza PWR. Dzięki wbudowanemu w U1 dzielnikowi napięcia zakres pomiarowy wynosi 7...80 V, a rozdzielczość wynosi 25 mV.

Rysunek 2. Schemat elektryczny modułu

Obciążenie podłączone jest do zacisków 2 i 3 złącza pomiaru prądu PWR. Prąd obciążenia mierzony jest metodą pośrednią poprzez pomiar spadku napięcia na rezystorach RS1 i RS2. Maksymalny spadek na rezystorach pomiarowych może wynosić 81,92 mV, co odpowiada rozdzielczości 20 µV. W modelu zastosowano rezystor o oporności 40 mΩ, co ustala zakres pomiaru prądu na 2,048 A z rozdzielczością 0,5 mA.

Dla zachowania największej dokładności pomiaru należy zastosować rezystory bezindukcyjne o odpowiedniej mocy i tolerancji nie większej niż 1%, przeznaczone do pracy w układach pomiaru prądu np. WW12DR040FTL WALSIN. Zmieniając wartości RS1 i RS2 można dopasować zakres pomiaru prądu do wymagań aplikacji, miejsce na dwa rezystory ułatwia ich ewentualny dobór. W przypadku pomiaru większych prądów, a co za tym idzie większej traconej mocy, bocznik należy umieścić poza obwodem drukowanym.

Dodatkowy kanał VIN przetwornika dostępny jest na złączu J1. Wyprowadzenie SHDN dostępne na złączu J2, aktywne w stanie niskim, umożliwia wprowadzenie układu w tryb obniżonego poboru mocy.

Magistrala I2C wyprowadzona jest na złącza I2C/I2CA typu EH i JST 1 mm, oraz na złącza J1 i J2 zgodne rozstawem z płytkami stykowymi. Układ współpracuje z magistralą I2C o napięciach z zakresu 3,3...5 V. Do aktywowania części pomiarowej układu U1, konieczna jest stała obecność napięcia źródła Vs1. Zwory A0 i A1 wykonane w formie pól na płytce drukowanej umożliwiają wybór jednego z adresów, zgodnie z tabelą 1.

Rezystor RP polaryzuje sygnały sterujące, dioda LED LD sygnalizuje obecność zasilania.

Układ LTC4151 posiada jeden niezmienny adres wywołania globalnego, ułatwiający konfigurację i jednoczesną konwersję, gdy w aplikacji współpracuje kilka układów (podobnie jak w przypadku niektórych driverów LED I2C). Konfiguracja i odczyt pomiarów odbywa się poprzez obsługę rejestrów na określonych adresach pośrednich zgodnie z tabelą 2.

Układ LTC4151 umożliwia prace w dwóch trybach, jednokrotnym (snapshot), gdzie wybieramy konwersję jednorazową w określonym kanale (SENSE/VIN/ADIN) lub ciągłą (free running) gdzie kanały pomiarowe są aktualizowane sekwencyjnie z częstotliwością 6...9 Hz. Stan konwersji wybranego kanału sygnalizowany jest stanem bitu B3 w rejestrach odpowiednio B, D, F.

Konfiguracja układu odbywa się poprzez zapis rejestru CONTROL (0x06), znaczenie bitów jest następujące:

  • B7: wybór trybu konwersji, 1 = snapshot, 0 = free running,
  • B6, B5: wybór kanału w trybie snapshot, 00 = Sense, 01 = Vin, 10 = ADIN,
  • B4: 1 = test mode, możliwy zapis rejestrów AD, 0 = praca,
  • B3: 1 = załączenie, 0 = wyłączenie trybu stronicowania (zapis/odczyt),
  • B2: 1 = załączony, 0 = wyłączony timer resetu zablokowanej magistrali I2C,
  • B1, B0: 00, zarezerwowane.

Montaż i uruchomienie

Moduł zmontowany jest na dwustronnej płytce drukowanej, której schemat wraz z rozmieszczeniem elementów pokazano na rysunku 3. Montaż nie jest skomplikowany, wymaga przestrzegania ogólnych zasad. Rezystory RS1 i RS2 powinny być dobrane pod kątem aplikacji, zgodnie z wcześniejszymi wskazówkami.

Rysunek 3. Schemat płytki PCB, a) strona TOP, b) strona BOTTOM

Konstrukcja mechaniczna modułu umożliwia bezproblemową współpracę z płytkami stykowymi lub prototypowymi, zalecam stosowanie długich (30...40 mm) złącz SIP, wlutowanych tak, aby wyprowadzenia wystawały po obu stronach płytki drukowanej. Taki sposób montażu umożliwia wygodne stosowanie w płytkach stykowych oraz ułatwia wyprowadzenie sygnałów i rozszerzanie magistrali I2C.

Dla szybkiego sprawdzenia działania, moduł można podłączyć do magistrali I2C komputerka Raspberry Pi, do złącza PWR podłączyć źródło zasilania i obciążenie. Przy użyciu biblioteki i2ctools, po ustawieniu adresu bazowego zworami A1 i A0, (domyślnie A1, A0 = LL, adres = 0x6F) moduł powinien być widoczny po odczycie magistrali poleceniem i2cdetect -y 1.

Rysunek 4. Wykrycie układu LTC4151 na magistrali I2C przy pomocy narzędzia i2ctools

Efekt działania polecenia został pokazany na na rysunku 4, ustawiony 7-bitowy adres bazowy to 0x6F i widoczny stały adres globalny 0x66.

Układ skonfigurujemy do pracy w trybie ciagłym poleceniem:

i2cset -y 1 0x6f 0x06 0x04

Odczyt rejestrów z przetworzonymi wartościami możemy wykonać poleceniem:

i2cdump -y -r 0x00-0x06 1 0x6f

przykładowy wynik:

pi@raspberrypi:~ $ i2cdump -y -r 0x00-0x06 1 0x6f
No size specified (using byte-data access)
0 1 2 3 4 5 6 7 8 9 a  b c d e f 0123456789abcdef
00: 00 00 13 d0 7f c0 04 ..?????

Wartości przetwornika przeliczamy ze wzoru:

ADC = ([reg] << 4) + ([reg + 1] >> 4)

dla par rejestrów 0/1, 2/3, 4/5 i uwzględnieniu współczynników przetwarzania otrzymujemy wartość prądu i napięcia zasilania oraz wartość pomocniczego kanału ADIN.

W przypadku użycia Arduino można zastosować bibliotekę LTC4151-master udostępnioną przez Kerry D. Wonga: http://bit.ly/2M8mPDv, https://bit.ly/2WOjlYE

Adam Tatuś
adam.tatus@ep.com.pl

Wykaz elementów:
Rezystory:
  • RP: 4,7 kΩ drabinka CRA06S08
  • RS1,RS2: 1 Ω rezystor pomiarowy SMD1206
Kondensatory:
  • C1; 0,1 µF SMD0603 16 V
Półprzewodniki:
  • LD, PWR: dioda LED SMD0805
  • U1: LTC4151IMS (MSOP10)
Inne:
  • I2C: złącze EH4 kątowe
  • I2CA: złącze JST4 1 mm
  • J1: listwa SIP6 prosta męska
  • J2: listwa SIP5 prosta męska
  • PWR: złącze śrubowe 5 mm 3 pin DG126-5,0-3
Artykuł ukazał się w
Elektronika Praktyczna
luty 2021
DO POBRANIA
Materiały dodatkowe
Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik grudzień 2024

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio listopad - grudzień 2024

Świat Radio

Magazyn krótkofalowców i amatorów CB

Automatyka, Podzespoły, Aplikacje listopad - grudzień 2024

Automatyka, Podzespoły, Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna grudzień 2024

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Elektronika dla Wszystkich grudzień 2024

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów