H Eric,

Greatly appreciate your inputs.
However, I am using micaz and its my only choice. How difficult is it to port 
ur driver to atm128?

Best Regards

________________________________________
From: Eric Decker [[email protected]]
Sent: Wednesday, 13 February, 2013 1:11:21 PM
To: He Dajiang (I2R)
Cc: [email protected]
Subject: Re: [Tinyos-help] I2C read and write API

Without watching the bus itself it is very hard to tell what is going wrong.

The original TinyOS I2C drivers as far as I know were developed without looking 
at the bus traffic.

I've rewritten the I2C drivers for the x5 series of chips (msp430f5438a, 6xxx, 
etc) and have verified under various circumstances the proper functioning of 
the driver using a logic analyzer observing the bus with the driver talking to 
various i2c devices that I'm using.

The rewrite also includes the implementation of the I2CReg interface which 
provides a non-interrupt driven interface to accessing i2c devices that 
implement a register symantic.  Non-interrupt because for short transactions 
the overhead of interrupts isn't worth it.   Also because of the h/w structure 
of the i2c h/w, interrupts seriously complicates the proper functioning of the 
interface.   (The data path is double buffered, but the control path isn't, not 
sure what they were thinking when they designed that, but it is what we've got).

I sorted out the various issues with the data and control paths using the less 
complicated I2CReg code then applies what I learned to building a robust 
interrupt driven I2CPacket code.  However, there are probable race conditions 
in a heavily loaded system that presents systemic problems for the interrupt 
code because of the fundamental h/w issues with double buffered data and single 
buffered control paths.   So I've fixed I2CPacket (interrupt driven) as far as 
I could and added a robust I2CReg interface that should always work.


This driver is in the tos/chips/msp430/x5xxx/usci-v2 directory of the tp-master 
branch (default) of 
gh:tp-freeforall/prod(tp-master)<https://github.com/tp-freeforall/prod>.


Porting the usci-v2 driver to the x2 chips should be reasonably easy.   Porting 
to x1 (1611) will be more difficult.   See 
tos/chip/msp430/{00_Chip_Notes,01_Dependencies,02_Serial} for details about 
differences.

Institute for Infocomm Research disclaimer:  "This email is confidential and 
may be privileged. If you are not the intended recipient, please delete it and 
notify us immediately. Please do not copy or use it for any purpose, or 
disclose its contents to any other person. Thank you."

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

Reply via email to