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ý 0
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é PCB 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 logický 1
a +15V...+3V pro logický 0
. 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.
Běžnější je MAX232 (hádejte, proč se tomu tak říká), ale je pro 5V, ne pro 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í další rozhraní jako I²C a SPI, která jsou typem sériového rozhraní, ale nikdy se nepovažují za „sériové rozhraní“.
Vestavěný sériový port Raspberry Pi používá úrovně napětí 0 až 3,3 V, jak je popsáno zde. Převodník USB na sériový port a váš displej budou používat úrovně napětí RS232 nominálně -15V až +15V, s minimem -3V/+3V. Mezi těmito dvěma úrovněmi musíte převádět.
Port bude fungovat, když je smyčka zpět, protože výstupní a vstupní napětí jsou kompatibilní.