2016-06-10 11 views
0

Ich habe versucht, zwei XBees einzurichten, um seit den letzten drei Tagen zu kommunizieren. X-CTU scheint die perfekte Option dafür zu sein, es ist jedoch eine echte Bedrohung, wenn es darum geht, XBees auf seriellen Ports zu entdecken.Kann keine Antwort von XBee auf "+++" erhalten

Ich konnte einen XBee nur einmal durch Glück und den anderen nie auftauchen. Ich habe sogar meine beiden Xbees ersetzt. Ich versuche, die Alternative herauszufinden, d. H. Eine serielle Konsole zu verwenden, um die Operation auszuführen. Ich war nicht in der Lage, eine OK-Antwort von dem Gerät zu erhalten, nachdem ich +++ ausgegeben habe.

Da ich keine gute Erfahrung mit einem PC hatte, um früher mit ESP8266-Geräten zu kommunizieren, versuchte ich eine Problemumgehung herauszufinden, indem Sie den zweiten seriellen Anschluss eines Arduino verwenden, um solche Konfigurationsnachrichten zu senden und die Antwort durch Drucken zu lesen es auf der Standard-seriellen Konsole aus.

Es scheint auch, dass Konfigurationsmeldungen je nach Modus des Geräts abweichen können. Wenn es im API-Modus ist, muss der Frame in einem bestimmten Format generiert werden (ich verwende den X-CTU-Frame-Generator für diesen Zweck).

Warum kann ich keine Antwort vom XBee erhalten, wenn ich eine +++ ausstelle?

Die Geräte sind Serie 1 XBees und die genaue Teilenummer ist XB24-AWI-001. Jede Hilfe wird sehr geschätzt.

+0

Respektieren Sie die Schutzzeit vor und nach dem '+++'? IIRC es ist eine volle Sekunde; ein bisschen mehr kann nicht weh tun. Natürlich muss es auf der richtigen Baudrate sein. Sie können die Sequenz mit verschiedenen Baudraten ausführen. Ich baute ein System, das mit brandneuen Xbees bei 9600 oder konfigurierten Modulen bei 115200 umgehen konnte, indem ich beide Baudraten testete. (Die brandneuen Module wurden dann im System konfiguriert und dann in den API-Modus versetzt.) – sawdust

+0

* "Ich habe versucht, einen Workaround zu finden, indem ich den zweiten seriellen Anschluss eines Arduino verwendete" * - Welcher Arduino? Verwenden Sie ein 5-V- oder 3,3-V-Gerät? – sawdust

Antwort

1

Haben Sie überlegt, ob XBee im API-Modus ist? Vielleicht sollten Sie das Gerät im AT-Modus neu flashen, um damit zu spielen.

Um zu testen, ob es in API-Modus ist, können Sie auf die Führung beziehen, Kapitel 9 für die API-Modus Struktur:

Grundsätzlich beginnt ein Datagramm in API-Modus mit ~ und es gebaut ist wie folgt:

[0x7E|length(2B)|Command(1B)|Payload(length-1B)|Checksum(1B)] 

wie 0x7E ist ~ auf der A SCII Tabelle, sollten Sie versuchen, einen gefälschten Datagramm in einer seriellen Terminal-Sitzung eingeben wie:

~ <C-d> AAAA 

N. B .: Die <C-d> Zeichen bedeutet Control-d unter Unix, die das EOF-Zeichen ist..

Offensichtlich wird eine solche Nachricht wahrscheinlich nicht funktionieren, und Sie werden eine Antwort erhalten, in der Sie aufgefordert werden, das Datagramm erneut zu senden. Das ist, weil das Zeichen EOF ASCII-Code 4 ist, bedeutet dies, dass die Länge des Datagramms 4 Byte ist. Dann senden Sie vier falsche Bytes, die Prüfsumme wird A sein, was sehr wahrscheinlich richtig ist, und der Empfänger wird annehmen, dass die Übertragung beschädigt wurde. Daher wird das Datagramm erneut abgefragt, was bedeutet, dass Sie ein Datagramm für diese Abfrage erhalten.

Ich kann Ihnen nur raten, es nur im API-Modus laufen zu lassen (zuverlässiger und eine bessere API, aber Sie können nicht damit herumspielen und verstehen, was passiert, indem Sie mit einem Logikanalysator auf die Linie tippen ... aber geben genug Zeit, Sie werden anfangen, API-Datagramme zu lesen, wie es Englisch ist ☺).

Ich schrieb eine Seite mit ein paar Ressourcen auf zu prüfen, wie die XBees reflash:

und hier andere Ratschläge von anderen völlig unabhängig Projekt:

Und ich schrieb auch ein lib (bei beaglebones gerichtet, sondern Sie können es für Ihre Anwendung optimieren), die API-Modus 2 mit XBees Griffe:

aber ich wette mit eine kleine Google-Suche können Sie weit verbreiteten Bibliotheken als diese, und sogar einige, die auf Arduinos ausgeführt werden (NB: diese Bibliothek wurde ursprünglich für Arduinos geschrieben, und dann angepasst, um für Beaglebone laufen, so Umkehrung der Operation sollte nicht hart sein).

+1

Wenn es im API-Modus ist, wird '+++' es nicht in den AT-Befehlsmodus (Transparent) bringen? –

+0

Überprüfen Sie mit dem Dokument, um sicher zu sein, aber ich denke nicht. Sie müssen den XBee mit X-CTU (oder einer Alternative) neu flashen, um den Modus zu wechseln. – zmo

+0

Ich denke, ich werde XB-Comm verwenden müssen, wie auf der XBee Reflashing Guide Seite aufgeführt, da X-CTU Probleme verursacht. Eine letzte Frage, für welche Serie 1 Module, welche Firmware aus dieser Liste sollte man folgen? ftp://ftp1.digi.com/support/firmware/update/ –

Verwandte Themen