Actions

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
  • Zmontowany i uruchomiony moduł

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)