Ich bin mir ziemlich sicher, dass das Problem darin besteht, dass der Pi keine RS232-Schnittstelle hat, während das Display eine hat.
Der Pi hat eine (LV-)UART-Schnittstelle, sein TX-Pin gibt 0 V für einen logischen 0
aus und 3,3 V für eine logische 1
. Das ist recht einfach umzusetzen, da auf dem Pi bereits 3,3V zur Verfügung stehen. Dies funktioniert jedoch nur für die Kommunikation auf einer einzelnen Leiterplatte oder innerhalb eines einzelnen Geräts.
Für die Kommunikation zwischen Geräten über größere Entfernungen wird ein weniger störanfälliges System wie RS232 verwendet. Während die logische Struktur der Wellenform (Bitrate, Timing, Start-, Stopp-, Paritäts- und Datenbits) die gleiche wie bei UART ist, betragen die Spannungspegel -15 V ... -3 V für einen logischen 1
und +15V...+3V für eine logische 0
. Das heißt, es gibt nicht nur höhere (und negative) Spannungen, ihre Bedeutung ist auch invertiert.
Wenn also das Display RS232-Pegel erwartet und diese 3,3-V-Pegel vom Pi erhält, erkennt es die Daten meistens nicht, und wenn doch, ist es oft nur Müll.
Und wenn Sie RX und TX derselben Schnittstelle anschließen, bekommen Sie natürlich, was Sie erwarten.
Aber:Wenn der RS232-TX-Ausgang nicht strombegrenzt ist, kann er sogar Ihren Pi beschädigen!
Es gibt UART-zu-RS232-Konverterplatinen, aber wenn Sie gerne löten, enthalten die Platinen nur einen MAX3232 (plus vier Kondensatoren). Dieser IC erzeugt auch die höheren (und negativen) Spannungspegel aus der 3,3-V-Versorgungsspannung des Pi.
Der gebräuchlichere ist der MAX232 (raten Sie mal, warum er so heißt), aber er ist für 5-V-, nicht für 3,3-V-Betrieb.
Da der UART und der RS232 die gleiche logische Struktur verwenden, wird schließlich oft nicht zwischen beiden unterschieden, insbesondere durch Software (Programmierer). Sie werden oft auch nur als "serielle Schnittstelle" bezeichnet, obwohl es andere Schnittstellen wie I²C und SPI gibt, die eine Art serielle Schnittstelle sind, aber nie als "die" serielle Schnittstelle angesehen werden.
Der eingebaute serielle Anschluss des Raspberry Pi verwendet Spannungspegel von 0 bis 3,3 Volt, wie hier beschrieben. Der USB-Seriell-Konverter und Ihr Display verwenden RS232-Spannungspegel von nominell -15 V bis +15 V, mit einem Minimum von -3 V/+3 V. Sie müssen zwischen diesen beiden Ebenen umwandeln.
Der Port funktioniert, wenn er zurückgeschleift wird, da die Ausgangs- und Eingangsspannungen kompatibel sind.