Izolowany interfejs RS232 dla Raspberry Pi

Izolowany interfejs RS232 dla Raspberry Pi

Dzięki zastosowaniu ekspandera możemy uzupełnić Raspberry Pi Zero o dodatkowy izolowany galwanicznie port szeregowy w standardzie RS232, przydatny w aplikacjach automatyki domowej.

Podstawowe parametry:
  • port szeregowy w standardzie RS232 z potwierdzaniem sprzętowym,
  • izolowany galwanicznie,
  • zawiera kontroler UART typu SC16IS740 sterowany poprzez I²C.

Moduł zawiera jednokanałowy kontroler UART sterowany poprzez magistralę I²C typu SC16IS740 firmy NXP, którego schemat wewnętrzny został pokazany na rysunku 1.

Rysunek 1. Schemat wewnętrzny układu SC16IS740 (za notą NXP)

Układ jest wspierany przez dystrybucje Linuxa dla Raspberry Pi i umożliwia realizację transmisji z typowymi prędkościami, także w trybie z potwierdzeniem sprzętowym i elastyczną konfiguracją ramki przy zachowaniu niewielkiego poboru mocy. Dzięki użyciu magistrali I²C, domyślny interfejs UART komputerka Raspberry można zastosować do innych zadań np. SSH.

Budowa i działanie

Schemat ideowy modułu został pokazany na rysunku 2. Magistrala I²C doprowadzona jest ze złącza GPIO, na które wyprowadzony jest też niezbędny do poprawnej pracy sygnał przerwania IRQ. U2 zapewnia poprawny restart U1 po włączeniu zasilania.

Rysunek 2. Schemat nakładki

Sygnały UART, TXD, RXD, CTS, RTS doprowadzone są do minimodułu izolatora RS232, układu U4 typu LTM2882. Integruje on obwody izolacji optycznej sygnałów UART, nadajniki i odbiorniki standardu RS232 oraz izolowaną przetwornicę zasilania, upraszczając aplikację do kondensatorów odsprzęgających C8, C9. Sygnały po izolacji wyprowadzone na zaciski śrubowe złącza RS232 i do złącza RS232 typu DB9F.

Układ U3 buforuje sygnały RXD/TXD sterujące diodą RTX sygnalizującą aktywną transmisję. Zwory A0, A1 umożliwiają ustawienie 4 adresów (zwora zwarta Ax=GND=0, zwarta Ax=V33=1) zgodnie z tabelą 1. Należy zwrócić uwagę, aby ustawiony adres nie pokrywał się np. z termometrami I²C.

 

Nakładka zasilana jest z napięcia 3,3 V Raspberry Pi. Układ LTM2882 występuje w dwóch wykonaniach -3, -5 wymagających zasilania odpowiednio 3,3 V i 5 V, które można wybrać zworą VCC.

Montaż i uruchomienie

Moduł zmontowany jest na dwustronnej płytce drukowanej zgodnej z Raspberry Pi Zero. Schemat płytki został pokazany na rysunku 3.

Rysunek 3. Schemat płytki PCB

Sposób montażu jest klasyczny i nie wymaga opisu. Dla szybkiego sprawdzenia działania, nakładkę podłączamy do Raspberry Pi. Domyślny adres modułu to 0×4D (obie zwory A0, A1 zwarte do GND). Używając biblioteki i2ctools, po ustawieniu adresu bazowego, moduł powinien być widoczny po odczycie magistrali poleceniem:

i2cdetect -y 1

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

Rysunek 4. Detekcja SC16IS740

Jeżeli układ jest widoczny na magistrali I²C można zainicjować jego driver, w tym celu edytujemy plik config.txt wpisując polecenie:

sudo nano /boot/config.txt

i dodając na końcu pliku linię:

dtoverlay=sc16is750-i2c,int_pin=24,addr=0×4D

W zależności od zastosowanych wyprowadzeń gpio i ustawionego adresu należy zmodyfikować parametr, addr. Układ SC16IS740 jest uproszczoną o GPIO wersją SC16IS750 i w zakresie obsługi UART jest w 100% zgodny. Po edycji należy zrestartować system poleceniem:

sudo reboot now

Po uruchomieniu systemu, poleceniem:

i2cdetect -y 1

sprawdzamy czy w miejscu adresu 0×4D, pojawi się tekst UU, świadczący o kontrolowaniu urządzenia przez driver.

Obecność dodatkowego portu szeregowego w systemie możemy sprawdzić poleceniem:

ls /dev/tty*

wśród urządzeń powinien znaleźć się wpis ttySC0, który odpowiada nowemu portowi transmisji szeregowej.

Dla sprawdzenia poprawności transmisji można użyć emulatora terminala minicom lub picocom instalując go poleceniem:

sudo apt-get install minicom

lub

sudo apt-get install picocom

a po uruchomieniu wpisujemy:

sudo minicom

ustalamy parametry transmisji (ttySC0, ANSI, 115200,8,N,1). Menu minicoma wywołujemy kombinacją CTRL A+Z, następnie opcje konfiguracji portu P, ustawień terminala T, konfiguracji minicom O, zgodnie z rysunkiem 5.

Rysunek 5. Konfiguracja minicom

Po konfiguracji zwieramy wyprowadzenie TXD/RXD modułu, wprowadzone w znaki powinny wracać do terminala, a transmisja powinna być sygnalizowana diodą RTX.

Po podłączeniu do terminala PC poprzez konwerter USB/RS232 dla sprawdzenia komunikacji możemy też wykorzystać polecenia systemowe:

while (true) do cat -A /dev/ttySC0 ; done

odbierające znaki z zewnętrznego terminala lub

echo „1234567890 test 16IS740„ > /dev/ttySC0

wysyłające znaki do zewnętrznego terminala przy domyślnych ustawieniach portu szeregowego. Zmieniając ustawienie terminala na transmisje z sprzętowym potwierdzeniem, zwieramy wyprowadzenie RTS z CTS i ponownie sprawdzamy poprawność komunikacji. Jeżeli wszystko działa możemy moduł zastosować we własnej aplikacji.

Adam Tatuś, EP

Wykaz elementów:
Rezystory: (SMD0603, 1%)
  • R1: 2,2 kΩ
  • R2: 1 kΩ
  • R3, R4: 10 kΩ
  • R5, R6: 4,7 kΩ
Kondensatory: (SMD0603)
  • C1, C5: 0,1 μF 16 V
  • C2: 10 μF 16 V
  • C3, C4: 22 pF 16 V NP0
Półprzewodniki:
  • LD: dioda LED (SMD0805)
  • U1: SC16IS740IPW (TSSOP16)
  • U2: MCP100T-315I/TT (SOT-23)
Pozostałe:
  • ADR, PU: listwa IDC8 + zwory
  • I²C1: złącze JST4 1 mm
  • I²C: złącze EH4 kątowe
  • J1: listwa SIP5 prosta męska
  • J2: listwa SIP8 prosta męska
  • XT: kwarc 14,7456 MHz (CFPX-180) 3,2×2,5
Artykuł ukazał się w
Elektronika Praktyczna
październik 2023
DO POBRANIA
Materiały dodatkowe

Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik maj 2024

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio maj - czerwiec 2024

Świat Radio

Magazyn krótkofalowców i amatorów CB

Automatyka, Podzespoły, Aplikacje maj 2024

Automatyka, Podzespoły, Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna maj 2024

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Elektronika dla Wszystkich czerwiec 2024

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów