Raspberry Pi UART serial funktioniert nicht

8

Ich versuche, Daten über eine serielle Verbindung (GPIO UART-Pins) zwischen einem Raspberry Pi (B-Modell, Raspian Wheezy) und einer STM32F4-Platine zu senden / empfangen.

Um den seriellen Port einzurichten, habe ich alle Schritte in mehreren Tutorials wie folgt verfolgt: Ссылка

Wenn ich keine Verbindung zur STM32F4-Platine bekomme, habe ich gelesen, dass Sie den seriellen Port lokal am Pi testen können, wenn Sie einfach die TX-, RX-Pins des Pi miteinander verbinden und nur die eingegebenen Daten wiederholen Minicom.

Leider funktioniert das auch nicht.

Die Einstellungen für ttyAMA0 in den Dateien 'cmdline' und 'inittab' sind in Ordnung. (wie in vielen Tutorials beschrieben)

und allso versuchte automatische Konfiguration Scripts von Ссылка

Das direkte Verbinden von RX mit dem TX-Pin von rpi gibt keine Ausgabe in Minicom. Ich habe es auch mit einem Python-Skript versucht, das gegebene Eingaben wiederholt. Nichts scheint zu funktionieren, ich bin hier irgendwie verloren.

Minicom Startbefehl sollte korrekt sein (versucht mit verschiedenen Baudraten):

%Vor%

Am unteren Rand von Minicom zeigt es immer den Status offline:

%Vor%

Beim Überprüfen verfügbarer serieller Ports mit Python wird nichts gesagt:

%Vor%

Der Benutzer befindet sich in der Dailout-Gruppe, so dass dies nicht das Problem sein sollte (versucht als root und nicht root):

%Vor%

Überprüfung, dass der serielle Port nicht mehr von getty benutzt wird:

%Vor%

Ich habe mit ttyAMA0 nach anderen Apps gesucht, aber nichts:

%Vor%

Benutzer haben die richtigen Rechte, um auf den seriellen Port zuzugreifen:

%Vor%

Gibt es etwas, das ich vermisst habe? Ich lese über 20 verschiedene Tutorials und Blogs darüber, wie man den seriellen Port einrichtet und ich kann nicht sagen, was das verursacht. Könnten Sie mir einen Rat geben, nach dem ich bitte suchen könnte?

    
Martin Law 25.12.2013, 11:10
quelle

4 Antworten

2

Ich habe ein Arduino über einen Level-Shifter (3.3v bis 5v) mit meinem Raspberry Pi Serial Port verbunden und hatte auch Probleme mit Minicom. Ich könnte die Ausgabe vom Arduino in Minicom erhalten, aber ich konnte nichts bekommen, um zu senden, egal welche Einstellungen ich versuchte. Ich hatte auch genau das gleiche Problem mit Minicom mit dem Arduino in den USB (/ dev / ttyUSB0) eingesteckt.

Am Ende habe ich die serielle Python-Konsole verwendet, pyserial mit pip (pip install pyserial) installiert und den folgenden Befehl ausgeführt:

%Vor%     
Robert Hunt 09.01.2014, 23:05
quelle
3

Ich habe heute gerade etwas ähnliches gemacht. Ich musste Minicom einstellen, um die Hardware-Kontrolle zu deaktivieren und das Looping funktionierte für mich, ebenso wie das Verbinden von 2 Raspis über UARTs.

Außerdem verwende ich 115200 buad rate für meine TTYAMA0-Verbindungszeichenfolge minicom -b 115200 -o -D / dev / ttyAMA0

Alt A

Z

O

Konfiguration des seriellen Ports [enter]

F schaltet die Hardware-Flusssteuerung aus

* Speichern Sie diese Einstellungen, und alles, was Sie eingeben, sollte auf dem Bildschirm angezeigt werden, wird aber tatsächlich über uarts übertragen.

Meine Minicom-Fußzeile sieht auch so aus (nur Diff-Baudrate, aber auch offline, funktioniert aber)

CTRL-A Z für Hilfe | 115200 8N1 | NOR | Minicom 2.5 | VT102 | Offline

Viel Glück!

    
GDubYa 02.01.2014 23:43
quelle
2

Sie können einen einfachen Test ausführen, indem Sie diese Skizze auf Ihrem Arduino platzieren:

%Vor%

Und verdrahten Sie es mit dem folgenden Diagramm:

Hinweis : stellen Sie sicher, nicht ein USB-Kabel mit dem Arduino verbinden. Es wird vom Raspberry Pi angetrieben.

Hinweis: Das Raspberry Pi läuft auf 3,3 V, so dass Sie sicher sein müssen, dass alles, was Sie mit ihm verbinden 3,3V läuft oder hat einen Level-Shifter. Sehen Sie weitere Informationen über Level-Shifter hier . (Nach unten gehen auf die Logik Spannungspegel Abschnitt) Sparkfun hat einige grundlegende Level-Shifter (mit Schaltplänen) hier wenn Sie mehr erfahren möchten.

Sie können dann screen installieren und ausführen. Der Bildschirm ist eine einfache Möglichkeit, eine Verbindung zu einer seriellen Schnittstelle herzustellen.

%Vor%

Führen Sie dann Folgendes aus:

%Vor%

Der Bildschirm wird leer angezeigt. Aber wenn Sie mit der Eingabe beginnen, werden Sie feststellen, dass die von Ihnen geschriebenen Zeichen zurück zu Ihrem Terminal geloopt werden.

Hinweis : Wenn der Bildschirm immer noch leer ist, sollten Sie die Verbindungen überprüfen (die Stromversorgung des Arduino sollte überprüft werden).

Im Zweifelsfall können Sie mein ganzes Beispiel hier sehen.

    
jaredwolff 10.03.2014 03:48
quelle
1

Danke für die Tipps Jungs. Ich habe sie ausprobiert, aber sie haben das Problem nicht gelöst. Es scheint, dass der Raspberry Pi UART Port abgekürzt ist. Ich verbinde es mit einem anderen Raspberry Pi (Modell A), das ich ausgeliehen habe und das B-Modell hat nur alle gesendeten Zeichen zurückgegeben, die ich mit dem A-Modell gesendet habe, ohne sie lokal anzuzeigen.

Ich habe ein neues Modell B gekauft und den AURT-Anschluss getestet und es funktioniert wie es sollte.

Obwohl das STM32F4-Board, das ich gekauft habe, auch 3,3 V sein sollte, scheint es, dass es meinen raspi UART irgendwann kaputt gemacht hat (oder nie funktioniert hat). Ich werde jetzt eine LLC sowieso verwenden, wenn ich noch einmal mit der STM32F4-Platine teste, nur um sicherzustellen, dass ich nichts kaputt mache.

Danke nochmal für die Tipps!

    
Martin Law 17.01.2014 17:16
quelle

Tags und Links