Raspberry PI a sériový port

Raspberry PI má na jednom ze svých GPIO konektorů rozhraní UART, na kterém je u většiny operačních systémů vyveden standardní výstup během bootování a poté funkční terminál. V tomto článku (který obsahuje i video) si ukážeme jak tuto sériovou linku využít.

Videonávod

Co budeme potřebovat

Kromě samotného Rasberry PI je nutné  mít ještě USB-UART převodník, 3-žilový vodič s konektory a SD kartu na kterou nahrajeme OS Raspbian.

Věci, které budeme potřebovat.
Věci, které budeme potřebovat.

Postup

Vyrobte si 3 žilový vodič s konektory na obou stranách. Konektory zapojte tak, aby bylo možné spojit signály GND, TX a RX na převodníku a Raspberry PI.

Raspberry PI připojeno k USB-UART převodníku.
Raspberry PI připojeno k USB-UART převodníku.

Pro názornost ještě popis jednotlivých pinů na konektoru P1 (vlevo nahoře).

Kompletní popis pinů Raspberry PI na konektoru P1.
Kompletní popis pinů Raspberry PI na konektoru P1.

Teď si nachystáme SD kartu s operačním systémem Raspbian. Tento  krok můžete přeskočit, pokud již na kartě máte funkční OS.

Z oficiálních stránek Raspberry stáhněte ZIP soubor s Raspbianem. Pokud umíte používat torrent, doporučuji obraz stáhnout z něj, bude to rychlejší. ZIP archiv rozbalte, obsahuje obraz s operačním systémem (přípona .img). Ten do SD karty můžeme nahrát přes aplikaci dd (pouze na unixových systémech).

$ sudo dd bs=1m if=image.img of=/dev/DISK

Podrobnější informace pro Windows, Linux i Mac OS naleznete v dokumentaci na oficiálním webu.

Jakmile máte vše propojeno a nachystáno, zapojte převodník do USB ve vašem počítači, spusťte terminál a v něm příkaz:

$ screen /dev/tty.XXX 115200

kde /dev/tty.XXX je připojený převodník a 115200 je baud rychlost s jakou Raspberry komunikuje.

Pokud používáte Windows, připojte se k převodníku pomocí Hyperterminalu nebo PuTTY. Baud rychlost je stejná (115200), převodník bude označen COMx.

Teď Raspberry s připojenou SD kartou zapněte. Pokud je vše v pořádku, měli byste v terminálu vidět logování kernelu a poté přihlašovací prompt. V případě Raspbianu je uživatel pi a heslo raspberry.

Problémy

Pokud se vám nedaří sériový výstup zprovoznit, zkuste následující:

  • Zkontrolujte zapojené signály, mají být GND, RX a TX.
  • Přehoďte na jedné straně kabelu vodiče RX a TX.
  • Vyzkoušejte jiné baud rychlosti, např. 19200, 57600, 115200, 230400.
  • Je SD karta správně naformátovaná? Bliká po zapnutí dioda ACT?

Závěr

Sériový výstup můžete na Raspberry PI využít buď pro práci s terminálem anebo pro ovládání jiných periferií (např. Arduina, rádiových modulů a jiné elektroniky komunikující přes UART). V tom druhém případě budete muset udělat pár úprav v nastavení operačního systému — vypnou logování kernelu a aplikaci getty na rozhraní UART.

Nejdřív upravte soubor /boot/cmdline.txt vymazáním těchto příkazů:

console=ttyAMA0,115200 kgdboc=ttyAMA0,115200

Poté otevřete soubor /etc/inittab a vymažte celý řádek na kterém je ttyAMA0:

T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

Teď zkuste Raspberry PI restartovat. Na sériovém výstupu by již neměl být log kernelu ani přihlašovací terminál. K Raspberry se teď připojte přes SSH a sériový výstup můžete použít dle libosti.