Moduł multiIO dla RPI Zero

Moduł multiIO dla RPI Zero

Moduł rozszerza możliwości komputerka Raspberry Pi Zero o osiem dowolnie konfigurowalnych wyprowadzeń. Mogą działać jako standardowe GPIO lub jako wejścia ADC albo wyjścia DAC. Będzie szczególnie przydatny przy realizacji domowej automatyki oraz aplikacji sterujących zawierających również inne SBC niż RPi.

Podstawowe parametry:
  • osiem dowolnie konfigurowalnych wyprowadzeń,
  • wyprowadzenia mogą działać jako standardowe GPIO lub jako wejścia ADC albo wyjścia DAC,
  • ADC oraz DAC o rozdzielczości 12 bitów,
  • wbudowanie źródło napięcia odniesienia,
  • wyprowadzenia cyfrowe mogą pracować w konfiguracji otwarty dren (OD), przeciwsobnej push-pull (PP) oraz trójstanowej (tristate).

Moduł bazuje na układzie Analog Devices typu AD5593R, którego struktura wewnętrzna została pokazana na rysunku 1. Układ umożliwia tworzenie ośmiokanałowych ekspanderów GPIO realizujących zarówno funkcje cyfrowe, jak i analogowe. Wyprowadzenia cyfrowe mogą pracować w konfiguracji otwarty dren (OD), przeciwsobnej push-pull (PP) oraz trójstanowej (tristate). Wyprowadzenia analogowe mogą pełnić funkcję przetwornika ADC/DAC o rozdzielczości 12 bitów. Aplikację układu ułatwia wbudowanie źródło napięcia odniesienia, konfigurowane rezystory pull-down oraz programowany zakres napięć ADC/DAC 0...Vref/0...2×Vref. W strukturze dostępny jest też czujnik temperatury.

Rysunek 1. Struktura wewnętrzna układu AD5593R

Budowa i działanie

Schemat ideowy układu został pokazany na rysunku 2. Moduł jest zgodny z Raspberry Pi Zero (HAT 40 PIN), zawiera układ U3 typu AD5593R, układ resetu MCP100T (U2) oraz niskoszumowy stabilizator U1 typu ADM7160. Całość zasilana jest napięciem 5 V z RPI. Sygnały GPIO wraz z zasilaniem doprowadzone są do złączy IO01...IO67 zgodnych ze standardem Grove. Złącze I2C umożliwia wyprowadzenie magistrali I2C do innych współpracujących modułów (standard 3,3 V).

Rysunek 2. Schemat ideowy układu

Montaż i uruchomienie

Moduł został zmontowany na dwustronnej płytce drukowanej, której schemat pokazuje rysunek 3. Sposób montażu jest klasyczny i nie wymaga opisu. Prawidłowo zmontowany nie wymaga uruchomienia.

Rysunek 3. Schemat płytki PCB

Dla wstępnego sprawdzenia działania konieczna jest instalacja narzędzi magistrali I2C. Należy wpisać w konsoli następujące polecenia:

sudo apt-get install python-smbus
sudo apt-get install i2c-tools

Po instalacji i restarcie RPI należy sprawdzić obecność AD5593R poleceniem:

i2cdetect -y 1

Efekt powinien być podobny do tego pokazanego na rysunku 4. Układ powinien pojawić się pod adresem 0x11.

Rysunek 4. Układ AD5593R wykryty przy użyciu i2ctools

Wszystkie funkcje AD5593R definiowane są programowo poprzez odpowiedni zapis rejestrów konfiguracyjnych/danych. Zapis do układu wymaga zgodnie z rysunkiem 5 przesłania 4 bajtów informacji. W zależności od wartości wskaźnika (Pointer Byte, drugi wysyłany bajt) możliwe jest zapisywanie do rejestrów danych lub konfiguracji – tabele 1 i 2.

Sposób odczytu rejestrów AD5593R został pokazany na rysunku 6.

Rysunek 5. Sekwencja zapisu do AD5593R
Rysunek 6. Sekwencja odczytu rejestrów AD5593R

Dla sprawdzenia działania modułu skonfigurujemy GPIO0 jako cyfrowe wyjście:

i2cset -y 1 0×11 0×0F 0×00 0×00 i
i2cset -y 1 0×11 0×08 0×00 0×01 i

Następnie ustawimy wyjście 0 w stan wysoki:

i2cset -y 1 0×11 0×09 0×00 0×01 i

oraz niski:

i2cset -y 1 0×11 0×09 0×00 0×00 i

Pozostałe wyprowadzenia GPIO 7...1 skonfigurujemy jako wejścia:

i2cset -y 1 0×11 0×0A 0×00 0xxFE i

i odczytamy ich stan:

i2cget -y 1 0×11 0×60

Jeżeli wszystko działa prawidłowo, można przejść do tworzenia własnej aplikacji.

Adam Tatuś, EP

Wykaz elementów:
Rezystory:
  • R1, R2: 4,7 kΩ (SMD0603) 1%
Kondensatory:
  • C1, C2: 10 μF (SMD0603)  
  • CE1: 10 μF tantalowy (SMD3216)
  • C3, C4, C5, C6, C7, C8, C9: 0,1 μF (SMD0603)  
Półprzewodniki:
  • U1: ADP7160AUJZ (SOT-23-5)
  • U2: MCP100T (SOT-23)
  • U3: AD5593RBRUZ (SSOP16)
Pozostałe:
  • FB: koralik ferrytowy BLM18AG102 (SMD0603)
  • GPIO: złącze żeńskie IDC 2×20 pinów
  • I2C, IO01, IO23, IO45, IO67: złącze Grove kątowe 110990037
Artykuł ukazał się w
Elektronika Praktyczna
marzec 2022
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