GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Serielle RaspberryPi-Schnittstelle

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.


Linux
  1. Virtueller serieller Port für Linux

  2. Wie kann ich Daten an einer seriellen Schnittstelle in Linux überwachen?

  3. Wie kann ich von der seriellen Schnittstelle in C öffnen, lesen und schreiben?

  4. Lesen und Schreiben auf die serielle Schnittstelle in C unter Linux

  5. Woher weiß ich, welches /dev/ttyS* meine serielle Schnittstelle ist?

Wie verbinde und sende ich Daten an einen seriellen Bluetooth-Port unter Linux?

Wie finde ich heraus, welcher serielle Port verwendet wird?

Linux – So finden Sie Prozesse über die serielle Schnittstelle?

Einrichten einer seriellen Schnittstelle mit Virtualbox auf Ubuntu (Gastbetriebssystem:Windows Xp)?

Lesen/Schreiben an einer seriellen Schnittstelle ohne Root?

Leiten Sie die Konsole auf einen seriellen Anschluss um