Hallo zusammen,
meine XBees ZNet 2.5 (API) wollen nicht zuverlässig miteinander reden.
Umgebung: 1x XBee am µC; 2x XBee am PC mit X-CTU alle mit Baudrate
115k2. Elektrisch verbunden habe ich nur RxD und TxD (via Pegelwandler)
mit dem µC (d.h. CTS/RTS/DTR hängen in der Luft). Firmwareversionen:
1341 (1x PC-XBee) und 1141 (1xPC-XBee; 1x µC-XBee)
Ich sende vom µC aus konstant jede volle Sekunde genau ein Datenpaket
als Broadcast raus. Die PC-XBees zeigen diese auch korrekt an,
allerdings nur bis einschliesslich dem 8.Datenpaket, ab dann wirds
durcheinander.
µC-Zigbee sendet per API einen ZigbeeTransmitRequest:
1 | 7E 00 16 10 01 00 00 00 00 00 00 FF FF FF FE 00 00 30 30 30 30 30 30 33 31 6F
|
2 | SD Länge ZTR FID (64Bit_dest._Broadcast) Netw. Hops Opt. (MyData(ASCII)________) Checksum
|
In X-CTU sehe ich nun folgende Pakete eintreffen (anhand meines
Ascii-Zählers):
1, 2, 3, 4, 5, 6, 7, 8, (Pause von 4..8s), 11, 10, 9, 12, 13, 14,
(Pause), 15, 16, 17, 18, (hier fehlen ein paar Botschaften; Pause), 22,
23, 24, 25, 29, 30, 31, 32, 33, 34, 35...
Hintenraus ist es nicht immer gleich, aber der Anfang ist immer
identisch.
Das Raustakten der Bytes aus dem µC-XBee habe ich mit dem Oszilloskop
kontrolliert - die Daten kommen pünktlich aus der µC-RS232 raus.
Beide PC-XBees zeigen zeitgleich und übereinstimmend die eingehenden
Daten an. D.h. auch die verlorenen Frames fehlen in beiden PC-XBees.
Hängt das evtl. irgendwie mit den Broadcasts zusammen? Verbrauchen die
irgendwie mehr XBee-internen Speicher oder sausen da noch viele
zusätzliche Frames durch die Luft, die ich (über RS232) nicht mitbekomme
und die mir hier alles zerstören?
Oder hängt das mit irgendwie falschem Flowcontrol zusammen? (Ich mache
hier aktiv nämlich nichts).
Übrigens, wenn ich den µC per Breakpoint z.B. für mehrere Sekunden
anhalte und dann weiterlaufen lasse, dann funktionierts wieder 8x... Ich
habe irgendwie den Eindruck, dass das nicht (nur) mit meiner µC-Software
zusammenhängt, sondern irgendwie auch mit der XBee-Firmware
zusammenhängt?!?
Kann sich jemand das Verhalten erklären?
Danke.