Hi Andrew, This problem is mostly due to faulty arbitration between resources (as you've uncovered in your analysis). When we were working on the Tmote Invent drivers, there was a ton of instability using 1.1.15 and BusArbitration. Because of this, we ported the 2.x Resource interfaces and implementation to Boomerang, and use the much more sophisticated and stable resource arbitration to explicitly prevent unauthorized users from changing the hardware functionality mid-stream. Since 2.x is using resources as a base primitive, I believe that both Boomerang and 2.x are using an acceptable fix to the problem you see in 1.1.15.
-Joe On 7/19/06, Andrew Jamieson <[EMAIL PROTECTED]> wrote:
Hi, I have experienced some strange behavior using the I2C interface on a Tmote sky - at present I am using TinyOS version 1.1.15 (not MoteIV Boomerang). During heavy traffic, simultaneously on the I2C bus and on the radio, it is possible that an interrupt is missed (or is never generated?) after an I2C read/writePacket operation has returned SUCCESS from MSP430I2CM. I am wiring my application to I2CPacketC in tos/platform/telosb, therefore BusArbitration is taken care of. I am loosing some incoming radio traffic during the I2C transactions, however this is to be expected. The missing IRQ causes more of a problem, as the I2C component will not release the bus until the transaction completes (async event void HPLI2CInterrupt.fired() fires in MSP430I2CM). The only possible cause I can see is that the offending I2C transaction occurs after a radio transaction has been partially started - the radio seems to request/release the USART 3 times for every send. I have not fully investigated how the CC2420 works with BusArbitration though, so this may be irrelevant. I have implemented a workaround by starting a timer for every successful request in the I2C driver, and subsequently stopping it when the read/writePacketDone events are signalled. This works, but is obviously not ideal. If anyone has had similar experiences I'd like to hear from you. Thanks, Andrew -- Andrew Jamieson Research Engineer Institute for System Level Integration Alba Centre, Alba Campus, Livingston, EH54 7EG Tel: +44 1506 469 300 Fax: +44 1506 469 301 http://www.sli-institute.ac.uk/ _______________________________________________ Tinyos-help mailing list [email protected] https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
_______________________________________________ Tinyos-help mailing list [email protected] https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
