Expander wyjść z interfejsem I2C

Expander wyjść z interfejsem I2C

Minimoduł jest ekspanderem ośmiu wyjść typu otwarty dren (OD), sterowanym poprzez magistralę I2C. Oferuje obciążalność wyjść wielokrotnie wyższą niż w przypadku wyjść cyfrowych oraz toleruje napięcie wartości do 40 V.

Podstawowe parametry:
  • bazuje na układzie typu TPIC2810 sterowanym poprzez magistralę I2C,
  • wyjścia z otwartym drenem są aktywne w stanie niskim,
  • wyjścia zapewniają obciążalność do 100 mA (sumarycznie 210 mA),
  • maksymalne napięcie pracy wyjść wynosi 40 V,
  • konstrukcja mechaniczna modułu umożliwia bezproblemową współpracę z płytkami stykowymi.

Konstrukcja modułu bazuje na układzie typu TPIC2810, którego schemat wewnętrzny został pokazany na rysunku 1. Wyjścia z otwartym drenem są aktywne w stanie niskim i zapewniają obciążalność do 100 mA (sumarycznie 210 mA), przy maksymalnym napięciu pracy 40 V. Umożliwiają bezpośrednie sterowanie statyczne zarówno szeregowych łańcuchów LED jak i pojedynczych LED o większej mocy.

Rysunek 1. Schemat wewnętrzny układu TPIC2810

Budowa i działanie

Schemat ideowy modułu został pokazany na rysunku 2. Moduł, oprócz układu U1 typu TPIC2810 ma trzy zworki A0...A2 umożliwiające ustalenie adresu oraz zworę PU umożliwiającą odłączenie rezystorów podciągających magistralę I2C – R5, R6. Pełna adresacja U1 umożliwia zastosowanie do 8 układów na jednej magistrali. Moduł może być zasilany napięciami z zakresu 3...5 V. Dioda LD sygnalizuje obecność zasilania. Wyjścia D0...D7 tolerują maksymalnie 40 V i są doprowadzone są do złącz J1 i J2. Dodatkowo wyprowadzono sygnał G wyłączający wszystkie wyjścia, aktywny w stanie wysokim. Sygnały magistrali I2C i zasilanie doprowadzone są do czteropinowego złącza typu EH – I2C zgodnego z Arduino oraz do złącza I2C1 typu JST o rozstawie 1 mm.

Rysunek 2. Schemat ideowy modułu
Uwaga: niektóre fabryczne kable EH4 maja przeplot 1–4, 2–3, aby je wykorzystać należy zamienić kolejność wyprowadzeń w jednym złączu EH.

Montaż i uruchomienie

Moduł został zmontowany na dwustronnej płytce drukowanej, której schemat został pokazany na rysunku 3.

Rysunek 3. Schemat płytki PCB

Sposób montażu jest klasyczny i nie wymaga dokładnego opisu. 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 modułu w płytkach stykowych oraz ułatwia wyprowadzenie sygnałów oraz rozszerzanie magistrali I2C. Zmontowany moduł pokazuje fotografia tytułowa.

Adres bazowy układu TPIC2810 przy zwartych zworach to 0x60. Układ ma pośredni rejestr buforowy oraz możliwość bezpośredniej zmiany stanu wyprowadzeń. Rejestry pod subadresami 0x11, 0x22, 0x44 służą do kontroli działania układu:

  • 0x11 – odczyt danych z rejestru wejściowego (bufora),
  • 0x11 – zapis danych do rejestru wejściowego (bufora), nie ustawia stanów wyjść,
  • 0x22 – zapis powoduje przepisanie rejestru wejściowego (bufora) do rejestru wyjściowego ustawiającego stan wyjść,
  • 0x44 – zapis bezpośredni do rejestru wyjściowego, z ustawieniem stanu wyjść.

Dla szybkiego sprawdzenia działania, moduł można go podłączyć do Raspberry Pi, a do wyprowadzeń D0...D7 podłączyć LED-y z rezystorami ograniczającymi prąd, pamiętając o aktywacji wyjść zwarciem wyprowadzenia G do masy modułu. Przy użyciu biblioteki i2ctools, po ustawieniu adresu bazowego zworami A2, A1, A0, moduł powinien być widoczny po odczycie magistrali poleceniem:

i2cdetect -y 1

co pokazano na rysunku 4 (ustawiony adres bazowy 7-bitowy 0x60).

Rysunek 4. Test modułu przy użyciu Raspberry Pi i biblioteki i2ctools

Stan rejestru bufora może być odczytany poleceniem:

i2cget -y 1 0x60 0x11

który po pierwszym odczycie zwróci wartość 0x00.

Zapis rejestru bufora (wartość 0xA5) wykonujemy poleceniem:

i2cset -y 1 0x60 0x11 0xA5

Ustawienie stanu 1, opowiada zwarciu klucza OD do masy. Przepisanie bufora do rejestru wyjściowego i ustawienie stanów wyjść:

i2cset -y 1 0x60 0x22

Bezpośredni zapis rejestru wyjściowego i ustawienie wyjść (wartość 0x5A):

i2cset -y 1 0x60 0x44 0x5A

Jeżeli wszystko działa poprawnie można moduł zastosować we własnej aplikacji.

Adam Tatuś, EP

Wykaz elementów:
Rezystory: (SMD0805)
  • R1…R3, R5, R6: 10 kΩ
  • R4: 2,2 kΩ
Kondensatory:
  • C1: 0,1 μF (SMD0805)
Półprzewodniki:
  • LD: dioda LED SMD0805
  • U1: TPIC2810D (SO16)
Pozostałe:
  • ADR: złącze szpilkowe 2×5 pin + zwory
  • I2C: złącze EH4 kątowe
  • I2C1: złącze JST 1 mm
  • J1: złącze szpilkowe 1×8
  • J2: złącze szpilkowe 1×9
Artykuł ukazał się w
Elektronika Praktyczna
styczeń 2022
DO POBRANIA
Materiały dodatkowe

Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik maj 2022

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio maj - czerwiec 2022

Świat Radio

Magazyn krótkofalowców i amatorów CB

Automatyka Podzespoły Aplikacje kwiecień 2022

Automatyka Podzespoły Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna maj 2022

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Elektronika dla Wszystkich maj 2022

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów