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 aus cmdline.txt. Obwohl es sich nicht ' um einen Verweis auf AMA0 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.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.