Ich habe tagelang meinen Kopf auf den Tisch geschlagen, um das herauszufinden. Für mein Leben kann ich nicht scheinen Lassen Sie meine serielle Raspberry Pi 3-Schnittstelle mit der Xbee-Serie 2 kommunizieren.
Ich habe meine /boot/cmdline.txt
überprüft und die Datei enthält keine Verweise auf AMA0 Was ist dort aktuell?
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblkOp2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
BEARBEITEN: PI 3 AMA0 nicht. Es verwendet S0. Ich habe den Eintrag console=serial0,115200
Da dies das Jessie-Update ist, gibt es kein Inittab. In dem ich gelesen habe, dass ich Folgendes tun muss (was ich getan habe):
sudo systemctl stop [email protected] sudo systemctl disable [email protected] sudo systemctl mask [email protected]
Nachdem ich das alles getan habe, öffne ich cutecom Stellen Sie die Baudrate auf 9600, Lesen / Schreiben, 8-Bit-Daten, 1-Bit-Stopp und das Gerät auf / dev / ttyAMA0 ein.
Wenn ich auf Verbinden drücke und tippe:
+++
, um den Konfigurationsmodus aufzurufen, den ich erhalte:
write returned 0 errno: 11 write : Resource temporarily unavailable
Ich bin nicht sicher, was ich tue hier falsch … Ich weiß, dass der Xbee funktionsfähig ist, weil ich ihn mithilfe der XCTU-Software über eine Serial-zu-USB-Breakout-Karte konfigurieren kann. Auf dem über die seriellen GPIO-Pins angeschlossenen Pi erhalte ich jedoch keine Antwort.
Irgendwelche Ideen?
Der Xbee ist an einen Spark Fun Xbee Regulated Explorer angeschlossen.
Ich habe auch Probleme mit meinem Raspberry Pi 2 (Hier wird der Pi 3 kommunizieren). Auf dem Pi 2 habe ich die Datei cmdline.txt bearbeitet und Verweise auf AMA0 entfernt:
dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblkOp2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
Und ich habe die zuvor erwähnten systemctl-Befehle durchlaufen auf dem Pi2.
Wenn ich derzeit eine Sitzung mit cutecom (S0 für Rpi3 AMA0 für Rpi2) öffne, erhalte ich keine Ausgabe. Ich tippe +++
in die Eingabezeile ein. Ich sehe das TX-Licht in meinem regulierten Explorer blinken, aber ich erhalte keine Ausgabe innerhalb von cutecom oder eine Meldung im Terminalfenster.
Kommentare
- Entfernen Sie den Parameter
console=serial0,115200
auscmdline.txt
. Obwohl es sich nicht ' um einen Verweis aufAMA0
handelt, handelt es sich offensichtlich um einen Verweis auf eine serielle Konsole, die nur die auf der sein kann GPIOs. Stellen Sie sicher, dass Sie diese Datei als eine Zeile belassen! - Word. Ich ' werde das versuchen und mich bei Ihnen melden.
- Ihr Vorschlag ' hat das Problem nicht ganz behoben. aber ich glaube, es könnte ein Schritt in die richtige Richtung sein. Wie in Milliways Kommentar zu sehen: Er bemerkte, dass der Pi3 nicht mehr AMA0 verwendet, sondern S0, worauf sich die Konsole = serial0,115200 anscheinend bezieht.
- Richtig, also möchten Sie
ttyS0
mit dem Xbee stattdessen auch. - Es funktioniert immer noch nicht ' funktioniert nicht für mich … Wenn ich benutze
sudo minicom -b 9600 -D /dev/ttyS0
Ich bekomme ' nichts. Es zeigt die Minicom-Begrüßungsnachricht mit den Optionen und dergleichen, aber keinen Status am unteren Rand des Terminals, und ich kann ' nichts eingeben. Wenn ich cutecom mit denselben Einstellungen verwende, erhalte ich ' auch keine Ausgabe (nichts in der Konsole sagt, dass es nicht verfügbar ist oder irgendetwas).
Antwort
Der Pi3 hat die seriellen Schnittstellen ausgetauscht. /dev/ttyAMA0
wird jetzt für Bluetooth verwendet. serial0
bezieht sich auf die serielle Nicht-Bluetooth-Schnittstelle, die sich standardmäßig auf /dev/ttyS0
befindet.
Meine Erfahrung, wenn ich es versuche Verwenden Sie serial0
ist nicht gut. Es funktioniert, aber unzuverlässig, obwohl ich nur versucht habe, einen Seriell-zu-USB-Konverter für einen PC zu verwenden, und es nicht ausführlich getestet habe. Nach weiterem Lesen verwendet der miniUART die „Kerntakt“, die sich mit Änderungen der Prozessorgeschwindigkeit ändern kann, was das erklären kann Probleme. Ich habe Vorschläge zur Behebung der Uhr gesehen mit: –
core_freq=250
BEARBEITEN Ich habe dies seitdem versucht und es scheint die Probleme zu beheben. Bisher kann ich „Keine Nachteile.
Die miniUART
ist ebenfalls begrenzt – sie unterstützt nur 8 Datenbits und hat keine Parität sowie einen kleineren Puffer.
Wenn Sie kein Bluetooth verwenden, können Sie die Ports im Gerätebaum wieder austauschen. Es gibt eine pi3-miniuart-bt
und eine pi3-disable-bt
Modul.
BEARBEITEN Ich habe es jetzt geschafft, die serielle Arbeit auf Pi 3 zu meiner Zufriedenheit zu bringen, und dies in How-do-i-make- dokumentiert Serienarbeit an der Himbeere pi3
Kommentare
- Oh, ich verstehe … Das ist gut wissen. Ich kann mir vorstellen, dass dies der Grund ist, warum ich von AMA0 nie eine Antwort bekommen habe. Sollte ich dann nur serial0 deaktivieren?
- Und würde dies einfach durch Löschen der Referenz in cmdline.txt tun oder müsste ich auch ähnliche systemctl-Befehle ausführen?
- @ Myg0t auf dem Pi3 Anscheinend sollten Sie serial0 verwenden, bei dem es sich um den Nicht-BT-UART handelt. Ich habe es selbst nicht versucht.