Arduino GIGA .Podaj porty UART i przyporządkowany Serial
Arduino GIGA R1 WiFi wykorzystuje mikrokontroler STM32H7, który oferuje kilka interfejsów UART/USART nazwanych w dokumentacji np. LPUART1, USART3, UART4 i UART7. Na płytce GIGA R1 WiFi zostały one wyprowadzone jako cztery główne porty UART dostępne z poziomu Arduino IDE (Serial1–Serial4). Mapa pinów jest następująca:
• Serial1
– RX1: pin 0 (LPUART1_RX)
– TX1: pin 1 (LPUART1_TX)
• Serial2
– RX2: pin 14 (UART4_RX)
– TX2: pin 15 (UART4_TX)
• Serial3
– RX3: pin 16 (USART3_RX)
– TX3: pin 17 (USART3_TX)
• Serial4
– RX4: pin 18 (UART7_RX)
– TX4: pin 19 (UART7_TX)
Natomiast “Serial” (bez numeru) odnosi się do interfejsu USB, który tworzy wirtualny port szeregowy CDC do komunikacji z komputerem, używany między innymi do programowania i debugowania.
Ważnym aspektem jest fakt, że wszystkie porty UART można niezależnie inicjować i wykorzystywać do komunikacji z zewnętrznymi modułami szeregowymi, takimi jak GPS, modemy GSM, urządzenia Bluetooth czy inne systemy mikroprocesorowe.
Zgodnie z najnowszymi danymi w dokumentacji Arduino GIGA R1 WiFi i forach wsparcia, przypisana powyżej numeracja (Serial1–Serial4) i piny RX/TX jest oficjalnie potwierdzoną, aktualną mapą sprzętową. Równocześnie pojawiają się prace nad traktowaniem rdzeni M7 i M4 (w trybie płytki “Arduino GIGA dual core”), ale podstawowe przyporządkowanie portów UART pozostaje takie samo w najnowszych wydaniach środowiska Arduino IDE.
• Aby korzystać z konkretnego portu, wystarczy użyć np. Serial1.begin(baudRate).
• Każdy port UART może pracować z różnymi prędkościami transmisji (baudRate), o ile peryferia podłączone do niego wspierają daną prędkość.
• W projektach, gdzie istotne jest unikanie konfliktów pinów (np. PWM, I2C, CAN, SPI), warto sprawdzić dokładnie mapę funkcji alternatywnych, dostępną w oficjalnym dokumencie pinout (Arduino GIGA R1 WiFi Pinout).
Przy standardowym wykorzystaniu UART nie ma istotnych aspektów etycznych lub prawnych. Jednak przy wdrażaniu rozwiązań komercyjnych z komunikacją szeregową warto zwrócić uwagę na:
• Ochronę danych przesyłanych przez interfejs szeregowy (szyfrowanie, jeśli wymagana jest poufność).
• Zgodność z regulacjami telekomunikacyjnymi, jeśli urządzenie podłączone do UART komunikuje się z sieciami GSM/4G/5G.
• W starszych materiałach lub przy korzystaniu z nieaktualnych wersji Arduino IDE mogą pojawić się błędne mapowania pinów. Zaleca się korzystanie z najnowszych repozytoriów i oficjalnej dokumentacji do GIGA R1 WiFi.
• W trybie “dual core” (M7 i M4) trzeba pamiętać, że domyślne definicje obiektów Serialx mogą być różnie widziane przez oba rdzenie. Trzeba to uwzględnić w kodzie wielordzeniowym.
• Zgłębić temat równoczesnej obsługi wielu portów UART z wykorzystaniem przerwań (Interrupts) lub DMA w STM32H7.
• Przetestować tryb “dual core”, w którym np. jeden rdzeń używa Serial2, a drugi Serial3, dzieląc zadania komunikacyjne.
• Poznać przykłady biblioteki USBHost, pozwalającej korzystać z gniazda USB-A do podłączania urządzeń USB i komunikowania się z nimi równolegle z UART-ami.
Arduino GIGA R1 WiFi oferuje 4 sprzętowe porty UART dostępne jako Serial1–Serial4, mapowane na piny (0,1), (14,15), (16,17) i (18,19). Port “Serial” (bez numeru) jest przypisany do wirtualnego portu szeregowego USB (CDC). Dzięki tak rozbudowanej liczbie interfejsów UART możliwa jest łatwa integracja wielu różnych modułów i urządzeń komunikacyjnych w zaawansowanych aplikacjach.