GNU/Linux >> Znalost Linux >  >> Linux

Linux – sériový port Raspberrypi?

Mám displej, na který chci psát. To je možné přes sériový port. Když používám převodník USB na RS-232, funguje to jako kouzlo. Dokonce jsem zkoušel používat pouze vodiče RX, TX a GND sériového převodníku a stále to funguje. Nyní chci tento displej používat v malém pouzdře spárovaném s Raspberry Pi, takže mi nezbývá místo pro velký převodník USB-RS-232.
Zkusil jsem použít interní sériový port Malina. Je nastavena na 9600 baudů pomocí $ sudo stty -F /dev/ttyAMA0 9600 . Ale když jej připojím k displeji, zobrazí se pouze smetí a nefungují ani normální ovládací příkazy (které fungovaly pomocí převodníku RS-232).
Pomocí $ sudo minicom -b 9600 -o -D /dev/ttyAMA0 a smyčkování GPIO TX na RX, zobrazuje správné znaky v minicom konzole.
Nyní připojte sériový port GPIO ke kolíkům RX a TX převodníku USB-RS-232 a připojte uzemnění a otevřete oba porty v minicom s přenosovou rychlostí nastavenou na 9600 pouze někdy ukazuje výstup na druhém terminálu, ale když ukazuje jakýkoli výstup, je to také jen smetí.

Přijatá odpověď:

Jsem si docela jistý, že problém je v tom, že Pi nemá rozhraní RS232, zatímco displej ano.

Pi má rozhraní (LV-)UART, jeho TX-pin má výstup 0V pro logický a 3,3 V pro logickou 1 . To je docela snadné implementovat, protože 3,3 V je již k dispozici na Pi. Ale to funguje pouze pro komunikaci na jedné desce plošných spojů nebo v rámci jednoho zařízení.

Pro komunikaci mezi zařízeními na delší vzdálenosti se používá systém méně náchylný k rušivým signálům, jako je RS232. Zatímco logická struktura průběhu (bitová rychlost, časování, start-, stop-, parita- a datové bity) je stejná jako u UART, napěťové úrovně jsou -15V…-3V pro logickou 1 a +15V…+3V pro logický . To znamená, že existují nejen vyšší (a záporná) napětí, ale jejich význam je také obrácený.

Pokud tedy displej očekává úrovně RS232 a získá úrovně 3,3 V z Pi, většinou data nerozpozná, a pokud ano, je to často jen smetí.

A samozřejmě, pokud propojíte RX a TX stejného rozhraní, dostanete to, co očekáváte.

Ale:Pokud výstup RS232 TX není proudově omezený, mohlo by to dokonce poškodit váš Pi!

Existují desky převodníku UART na RS232, ale pokud chcete pájet, desky obsahují pouze MAX3232 (plus čtyři kondenzátory). Tento IC také generuje vyšší (a záporné) úrovně napětí z napájecího napětí 3,3 V z Pi.

Související:Linux – Proč přesměrovat výstup na 2>&1 a 1>&2?

Běžnější je MAX232 (hádejte, proč se tomu tak říká), ale je pro 5V, nikoli 3,3V provoz.

A konečně, protože UART a RS232 používají stejnou logickou strukturu, často se mezi nimi nerozlišuje, zejména softwarem (programátory). Často se jim také říká „sériové rozhraní“, ačkoli existují i ​​jiná rozhraní jako I²C a SPI, která jsou typem sériového rozhraní, ale nikdy se nepovažují za „sériové rozhraní“.


Linux
  1. Brána sériového portu Netbsd?

  2. Jak otevřít sériový port v linuxu bez změny pinu?

  3. Přesměrujte konzolu na sériový port

  1. Jak změnit port SSH v Linuxu

  2. Jak se připojit a odeslat data do sériového portu Bluetooth v systému Linux?

  3. Vyčerpání síťového portu Linuxu

  1. Linux – Jak najít procesy pomocí sériového portu?

  2. Zkontrolujte použití portu v Linuxu

  3. Virtuální sériový port pro Linux