KAmodRPi Pico RS485/RS232 (PL)
From Kamamilabs.com - Wiki

Opis
KAmodRPi Pico RS485/RS232 - moduł RS485/RS232 do Raspberry Pi Pico Moduł jest przeznaczony do szeregowej transmisji danych pomiędzy płytkami z serii Raspberry Pi Pico a urządzeniami zewnętrznymi, które dysponują interfejsem RS-485 lub klasycznym portem RS-232C (urządzenia z portem UART TTL 5/3,3 V lub podobnym nie są obsługiwane). Interfejsy są sterowane, jak klasyczne interfejsy UART, wyłącznie sygnałami TX i RX, bez dodatkowych linii sterujących. Moduł znajdzie zastosowanie w instalacjach przemysłowych, automatyce budynkowej, systemach wbudowanych, serwisie urządzeń elektronicznych, a także podczas prototypowania i testowania urządzeń wyposażonych w łącze szeregowe typu RS-485 lub RS-232.
Podstawowe cechy i parametry
- 1× 3-torowe rozłączalne złącze typu Phoenix MC 3,81 mm (RS-232: RX, TX, GND)
- 1× 3-torowe rozłączalne złącze typu Phoenix MC 3,81 mm(RS-485: A, B, GND)
- Diody LED sygnalizujące obecność napięcia zasilania modułu oraz kierunki transmisji na obydwu portach szeregowych
- Wbudowane zabezpieczenia ESD na wszystkich liniach portów RS-232 oraz RS-485
- Interfejs RS485 half-duplex z automatycznym wykrywaniem kierunku transmisji
- Interfejs RS232 full-duplex, sterujący liniami RXD i TXD
- Zasilanie: 3,3 V DC + 5 V DC (pobierane bezpośrednio z modułu Raspberry Pi Pico)
- Wymiary PCB: 52 x 23 mm
Wyposażenie standardowe
| Kod | Opis |
|---|---|
| KAmodRPi Pico RS485/RS232 |
|

Schemat elektryczny

Elementy obsługowe
Diody LED
Wskaźnik napięcia zasilającego

Wskaźnik nadawania (RS-232) przez RPi Pico

Wskaźnik odbioru (RS-232) przez RPi Pico

Wskaźnik nadawania (RS-485) przez RPi Pico

Wskaźnik odbioru (RS-485) przez RPi Pico

Przycisk reset

Złącza
Złącze interfejsu RS-232 (full-duplex)

Złącze interfejsu różnicowego RS-485 (half-duplex)

Podłączenie
Moduł jest kompatybilny ze wszystkimi modułami z serii Raspberry Pi Pico, z wlutowanymi złączami szpilkowymi, czyli:
- Raspberry Pi Pico
- Raspberry Pi Pico W
- Raspberry Pi Pico 2
- Raspberry Pi Pico 2 W
Przed podłączeniem modułu KAmod RPi Pico RS-485/RS-232 należy odłączyć zasilanie od płytki Raspberry Pi Pico.
W przypadku płytek z samodzielnie wlutowanymi złączami szpilkowymi należy upewnić się, że sygnały opisane na połączonych płytkach są ze sobą zgodne.
| Uwaga! Płytkę KAmod RPi Pico RS-485/RS-232 należy podłączyć w sposób pokazany na poniższej fotografii, tj. stroną z gniazdem RS-232 w kierunku złącza Micro USB modułu Raspberry Pi Pico. |

Urządzenie zewnętrzne należy podłączyć do modułu KAmod RPi Pico RS-485/RS-232 wybierając odpowiedni port (RS-232 lub RS-485), w zależności od obsługiwanego przez nie standardu komunikacji szeregowej. W każdym przypadku masa urządzenia musi być podłączona do środkowego zacisku listwy rozłączalnej danego portu.
Obydwa interfejsy są kontrolowane przez niezależne bloki peryferyjne procesora znajdującego się na płytce RPi Pico.
- Interfejs RS-232: UART0, tx=Pin 0, rx=Pin 1
- Interfejs RS-485: UART1, tx=Pin 4, rx=Pin 5
Z tego względu możliwe jest jednoczesne komunikowanie się płytki RPi Pico z dwoma różnymi urządzeniami zewnętrznymi. Należy jednak upewnić się, że potencjał masy obydwu urządzeń zewnętrznych oraz urządzenia, z którego RPi Pico pobiera zasilanie (np. komputera) jest jednakowy. W przeciwnym wypadku może dojść do uszkodzenia modułu lub któregoś z pozostałych urządzeń!
Testowanie modułu
Aby przetestować moduł można zastosować poniższy skrypt w języku MicroPython. Po wgraniu kodu do pamięci modułu Raspberry Pi Pico (zawierającego uprzednio wgrany firmware z interpreterem MicroPythona) i uruchomieniu, moduł będzie odsyłał wszystkie dane odebrane na wybranym porcie poprzez ten sam interfejs (RS-232 lub RS-485).
from machine import UART, Pin
import time
# --- Konfiguracja UART0 ---
uart0 = UART(0, baudrate=115200, tx=Pin(0), rx=Pin(1))
# --- Konfiguracja UART1 ---
uart1 = UART(1, baudrate=115200, tx=Pin(4), rx=Pin(5))
print("UART echo running...")
while True:
# UART0
if uart0.any():
data = uart0.read()
uart0.write(data) # echo
# UART1
if uart1.any():
data = uart1.read()
uart1.write(data) # echo
time.sleep(0.001)