- 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.
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.
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.
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
- R1, R2: 47 kΩ (SMD 0603, 5%)
- R3: 120 Ω (SMD 1206, 1%)
- R4...R7: 1 kΩ (SMD 0603, 5%)
- C1...C6, C8: 100 nF
- C9: 10 μF
- 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)
- 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