Raspberry Pi UART nicht funktionieren
Ich versuche zum senden/empfangen von Daten über eine serielle Verbindung (GPIO UART-pins) zwischen einem Raspberry Pi (Modell B, raspian wheezy) und ein STM32F4 board.
Setup der seriellen Schnittstelle, ich habe alle die stepts in mehreren tutorials, wie:
http://elinux.org/RPi_Serial_Connection#Preventing_Linux_using_the_serial_port
Wenn andernfalls eine Verbindung zu dem STM32F4-board, ich habe gelesen, dass können Sie testen, die serielle Schnittstelle lokal auf dem pi, wenn Sie gerade die Verbindung der TX -, RX-pins aus dem pi zu verbinden und es sollte, wiederholen Sie einfach die eingegebenen Daten in minicom.
leider funktioniert das nicht, entweder.
Den Einstellungen für ttyAMA0 in Dateien 'cmdline' und 'inittab' sind ok. (wie in vielen tutorials)
und allso versucht die automatische Konfiguration Scripte aus
https://github.com/lurch/rpi-serial-console
Anschluss RX an den TX-pin des rpi direkt nicht geben, jede Ausgabe in minicom. Allso ich habe versucht, mit einem python-Skript, das wiederholt gegebene Eingabe. Nichts scheint zu funktionieren, bin ich irgendwie hier verloren.
Minicom starten Befehl sollte richtig sein(versucht, mit verschiedenen baud-raten):
root@raspberrypi:/home/jef# minicom -b 9600 -o -D /dev/ttyAMA0
OPTIONS: I18n
Compiled on Apr 28 2012, 19:24:31.
Port /dev/ttyAMA0
Auf der Unterseite von minicom es zeigt immer den status offline:
CTRL-A Z for help | 9600 8N1 | NOR | Minicom 2.6.1 | VT102 | Offline
Beim prüfen des verfügbaren seriellen Schnittstellen mit python nothinig ist swown:
python -m serial.tools.list_ports
no ports found
Benutzer ist in dailout-Gruppe, so dass sollte nicht das Problem sein(habe versucht, als root und nicht-root):
root@raspberrypi:/home/jef# id
uid=0(root) gid=0(root) groups=0(root),20(dialout),1001(indiecity)
Überprüfung, dass der serielle port nicht verwendet wird, die von getty mehr:
root@raspberrypi:/home/jef# ps aux | grep getty
root 2809 0.0 0.1 3740 804 tty1 Ss+ 10:36 0:00 /sbin/getty --noclear 38400 tty1
root 2810 0.0 0.1 3740 804 tty2 Ss+ 10:36 0:00 /sbin/getty 38400 tty2
root 2811 0.0 0.1 3740 804 tty3 Ss+ 10:36 0:00 /sbin/getty 38400 tty3
root 2812 0.0 0.1 3740 804 tty4 Ss+ 10:36 0:00 /sbin/getty 38400 tty4
root 2813 0.0 0.1 3740 804 tty5 Ss+ 10:36 0:00 /sbin/getty 38400 tty5
root 2814 0.0 0.1 3740 804 tty6 Ss+ 10:36 0:00 /sbin/getty 38400 tty6
root 3129 0.0 0.1 2012 624 pts/0 S+ 11:57 0:00 grep getty
habe ich überprüft, die für andere apps mit ttyAMA0, allso nichts:
root@raspberrypi:/home/jef# ps aux | grep ttyAMA0
root 3125 0.0 0.1 2012 628 pts/0 S+ 11:56 0:00 grep ttyAMA0
Benutzer hat die richtigen Rechte für den Zugriff auf die serielle Schnittstelle:
root@raspberrypi:/home/jef# ls -l /dev/ttyAMA0
crw-rw---T 1 root dialout 204, 64 Dec 25 11:53 /dev/ttyAMA0
Ist es etwas, das ich verpasst? Ich lese etwa 20 verschiedenen tutorials und blogs, wie setup die serielle Schnittstelle und ich kann mir nicht gerne was sind die Ursachen dieser. Könnten Sie mir einige Ratschläge, die ich schauen konnte bitte.
- Es ist erwähnenswert korrekte Verwendung der seriellen ports auf raspberry pis nun ist /dev/serial0 oder /dev/seriell1. Neuere pis verwenden UART für bluetooth und viele ältere pis nicht. Damit wird es so machen, dass Ihr pi-Programm wird immer in Verbindung mit den vorgesehenen port UART oder nicht.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe ein Arduino angeschlossen, um meine Raspberry Pi-serielle Schnittstelle über einen Pegelwandler (3,3 v bis 5v) und war auch Probleme mit minicom. Ich konnte empfangen, der Ausgang aus dem Arduino in minicom, aber ich konnte nicht alles zu senden, egal welche Einstellungen ich versucht habe. Ich hatte auch genau das gleiche problem mit minicom mit dem Arduino angeschlossen an die USB-Schnittstelle (/dev/ttyUSB0).
Am Ende behalf ich mir mit dem basic-python die serielle Konsole installieren, pyserial mit pip (pip pyserial installieren) und führen Sie den folgenden Befehl ein:
Ging ich einfach durch etwas ähnliches heute. Ich musste minicom deaktivieren Sie die hardware-Steuerung und looping für mich gearbeitet, sowie cross-Anschluss 2 Raspis zusammen über UARTs.
Außerdem benutze ich 115200 buad-rate auf meinem TTYAMA0 Verbindungszeichenfolge
minicom -b 115200 -o -D /dev/ttyAMA0
Alt Ein
Z
O
Serial Port Setup [enter]
F schaltet die hardware flow control off
*Speichern Sie die Einstellungen und Eingaben, die Sie sollten zeigen, bis auf dem Bildschirm, sondern tatsächlich übertragen wird, über uarts.
Meine minicom Fußzeile sieht wie folgt aus sowie (nur diff baud-rate, zeigt aber auch offline funktioniert aber)
CTRL-A Z für Hilfe |115200 8N1 | NOR | Minicom 2.5 | VT102 | Offline
Glück!
Führen Sie einen einfachen test, indem Sie diesen sketch auf den Arduino:
Und wire es mit dem folgenden Diagramm:
Hinweis: stellen Sie sicher, dass Sie nicht schließen Sie ein usb-Kabel an den Arduino. Angetrieben wird er von der Raspberry Pi.
Hinweis: der Raspberry Pi läuft auf 3,3 V, so müssen Sie sicher sein, dass alles, was Sie verbinden es läuft mit 3,3 V oder hat einen level-shifter. Weitere Informationen über level-shifter hier. (gehen Sie nach unten zu den Logik Spannungspegel Abschnitt) Sparkfun hat ein paar basic-level-shifter (mit Schaltplan) hier wenn Sie mehr erfahren möchten.
Anschließend können Sie installieren und ausführen
screen
. Bildschirm ist ein Toter einfache Weise eine Verbindung zu einem seriellen port.Führen Sie dann die folgenden:
Dem Bildschirm erscheint leer. Aber, wenn Sie mit der Eingabe beginnen, werden Sie bemerken, dass die Zeichen, die Sie schreiben, sind immer geloopt zurück zu Ihrem terminal.
Hinweis: Wenn der Bildschirm noch leer ist, sollten Sie doppelt überprüfen Sie die Anschlüsse (power led auf dem Arduino ist eine gute Sache, um zu überprüfen).
Wenn Sie Zweifel haben, können Sie sehen, meine ganze Beispiel hier.
Thankt für die Tipps Jungs. Ich habe versucht, Ihnen, aber Sie trifft das Problem nicht lösen, Es scheint, dass der raspberry pi UART-port ist shortcutted. Ich verbinden Sie es mit einem anderen raspberry pi (Modell A), die ich geliehen und die B-Modell gerade alle gesendeten Zeichen, die ich gesendet, mit der Ein Modell ohne Anzeige vor Ort.
Kaufte ich ein neues Modell B und getestet, die AURT-port und es funktioniert, wie es sollte.
Obwohl das STM32F4 board, die ich gekauft, sollte allso werden 3.3 V, es scheint gebrochen zu haben meine raspi-UART-irgendwann (oder nie gearbeitet). Ich werde jetzt eine LLC sowieso, wenn ich test nochmal mit dem STM32F4 board nur um sicherzugehen, dass ich nicht Schlag nichts nach.
Thx nochmal für die Tipps!