Hi all.

I am having an odd problem with basic serial communication in TinyOS 2
using my MSP430-based motes. It seems that somewhere there exists a limit
on the number of bytes in a serial packet (headers and all), and if a
packet breaches this limit, the data at the end is cut off. It also seems
like this limit corresponds to only 4 bytes of payload! For example,
here's the DEBUG-enabled seriallisten output when I repeatedly send a
serial packet with a 4-byte payload ASCII "1234":


/opt/tinyos-2.x/support/sdk/c/sf$ ./seriallisten /dev/ttyS0 9600
raw 7e 45 00 ff ff 00 00 04 00 0a 30 31 32 33 c2 f2
Note: sync
raw 7e 45 00 ff ff 00 00 04 00 0a 30 31 32 33 c2 f2
received 45 00 ff ff 00 00 04 00 0a 30 31 32 33 c2 f2
  crc f2c2 comp f2c2
00 ff ff 00 00 04 00 0a 30 31 32 33 
raw 7e 45 00 ff ff 00 00 04 00 0a 30 31 32 33 c2 f2
received 45 00 ff ff 00 00 04 00 0a 30 31 32 33 c2 f2
  crc f2c2 comp f2c2
...


This works as it's supposed to. The payload "30 31 32 33" is received
along with the crc value "c2 f2". But here's the output when I increase
the payload to a 5-byte value ASCII "12345":

raw 7e 45 00 ff ff 00 00 05 00 0a 30 31 32 33 34 59
received 45 00 ff ff 00 00 05 00 0a 30 31 32 33 34 59
  crc 5934 comp 4aa3
Note: bad_crc
raw 7e 45 00 ff ff 00 00 05 00 0a 30 31 32 33 34 59
received 45 00 ff ff 00 00 05 00 0a 30 31 32 33 34 59
  crc 5934 comp 4aa3
Note: bad_crc
...

All of the data is received: "30 31 32 33 34", but only one of the crc
bytes come through: 59. Naturally, the crc is incorrect. Similar results
for larger payloads. Here's what happens with the 10-byte "0123456789":

raw 7e 45 00 ff ff 00 00 0a 00 0a 30 31 32 33 34 35
received 45 00 ff ff 00 00 0a 00 0a 30 31 32 33 34 35
  crc 3534 comp c04a
Note: bad_crc
raw 7e 45 00 ff ff 00 00 0a 00 0a 30 31 32 33 34 35
received 45 00 ff ff 00 00 0a 00 0a 30 31 32 33 34 35
  crc 3534 comp c04a
Note: bad_crc
raw 7e 45 00 ff ff 00 00 0a 00 0a 30 31 32 33 34 35
received 45 00 ff ff 00 00 0a 00 0a 30 31 32 33 34 35
  crc 3534 comp c04a
Note: bad_crc
...


My TinyOS code is very simple, essentially calling SerialAMSender.send in
a loop. I'm observing this behavior with both the 2.0.2 release of TinyOS and 
with
the newest code from the CVS repo. Has anybody else seen this? Ideas?
Thanks in advance

Dima
_______________________________________________
Tinyos-help mailing list
[email protected]
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to