Moduł komunikacji szeregowej RS232/RS485 do Raspberry Pi Pico

Moduł komunikacji szeregowej RS232/RS485 do Raspberry Pi Pico

Zaprezentowana płytka rozszerza funkcjonalność Raspberry Pi Pico o drivery portów szeregowych w standardach RS232 i RS485, przydatne w domowej automatyce i nie tylko.

Podstawowe parametry:
  • niezależne porty RS232 i RS485 podłączone do osobnych bloków UART procesora RP2040,
  • napięcie zasilania: 3,3 V
  • wbudowane diody LED sygnalizujące kierunek transmisji,
  • maksymalna prędkość transmisji RS485: 500 kbps.

Schemat modułu pokazano na rysunku 1. Płytka zawiera drivery portów komunikacyjnych w standardach RS232 i RS485. Układ U1 typu ADM3061 obsługuje komunikację RS485 w trybie half-duplex z prędkością maksymalną 500 kbps, zapewniając przy tym pełne zabezpieczenie przed zwarciem, rozwarciem magistrali i skutkami przepięć. Układ zasilany jest napięciem 3,3 V, generowanym przez Raspberry Pi Pico i korzysta z UART1 (GPIO4,5) oraz GPIO22 (DIR485) do sterowania kierunkiem transmisji, natomiast bramki U3 buforują diody LD1,4 sygnalizujące stany na liniach komunikacji TX485/RX485. Z kolei układ U2 typu MAX3232 obsługuje komunikację RS232 i używa UART0 (GPIO0,1), zaś pozostałe bramki układu U3 buforują diody LD2,3 sygnalizujące stany sygnałów komunikacji TX232/RX232.

Rysunek 1. Schemat modułu

Sygnały magistral wyprowadzone zostały na złącza śrubowe RS232, RS485. Zwora RT umożliwia terminowanie magistrali RS485 rezystorem R3.

Układ został zmontowany na niewielkiej dwustronnej płytce drukowanej, rozmieszczenie elementów pokazano na rysunkach 2a i 2b.

Rysunek 2. Rozmieszczenie elementów modułu: a) – strona TOP, b) – strona BOTTOM

Montaż nie wymaga dokładniejszego opisu – gotową płytkę zaprezentowano na fotografii tytułowej.

W celu sprawdzenia działania interfejsu RS232 można uruchomić prosty skrypt testowy Loop232.py, który po zwarciu wyprowadzeń TX z RX złącza RS232 sprawdzi poprawność działania U2. Zawartość pliku Loop232.py pokazano na listingu 1.

from machine import UART, Pin
import time

uart0 = UART(0, baudrate=9600, tx=Pin(0), rx=Pin(1))

txData = b’UART 232 Loopback Test\n\r’
uart0.write(txData)
time.sleep(0.1)
rxData = bytes()
while uart0.any() > 0:
rxData += uart0.read(1)

print(rxData.decode(‘utf-8’))

Listing 1. Skrypt testowy Loop232.py

Port RS485 można sprawdzić, podłączając do niego konwerter RS485/USB i pamiętając o konieczności zmiany kierunku transmisji sygnałem DIR485.

Adam Tatuś, EP

Wykaz elementów:
Rezystory:
  • R1, R2: 47 kΩ (SMD 0603, 5%)
  • R3: 120 Ω (SMD 1206, 1%)
  • R4...R7: 1 kΩ (SMD 0603, 5%)
Kondensatory: (SMD 0603, X7R)
  • C1...C6, C8: 100 nF
  • C9: 10 μF
Półprzewodniki:
  • LD1, LD2: dioda LED czerwona (SMD 0603)
  • LD3, LD4: dioda LED żółta (SMD 0603)
  • U1: ADM3061 (SO-8)
  • U2: MAX3232 (TSSOP-16, r=0,65 mm)
  • U3: LVC00 (TSSOP-14, r=0,65 mm)
Pozostałe:
  • IO1,IO2: gniazdo SIP20 żeńskie
  • RS232, RS485: złącze śrubowe DG 3,5 mm 3-pin (DG381-3.5-3)
  • RT: zwora SIP2 + listwa SIP2 2,54 mm
Artykuł ukazał się w
Elektronika Praktyczna
czerwiec 2024
DO POBRANIA
Materiały dodatkowe

Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik październik 2024

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio wrzesień - październik 2024

Świat Radio

Magazyn krótkofalowców i amatorów CB

Automatyka, Podzespoły, Aplikacje wrzesień 2024

Automatyka, Podzespoły, Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna październik 2024

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Elektronika dla Wszystkich październik 2024

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów