Hi MS.

Thanks for answer...

The T2 impl is not like the T1 version, more explicitly... I want to use the
Msp430I2CC.nc configuration that provide  the I2CPacket.nc, this interface
use the header file I2C.h where there are defined this flags:

#ifndef _I2C_H
#define _I2C_H

typedef struct { } TI2CExtdAddr;
typedef struct { } TI2CBasicAddr;

typedef uint8_t i2c_flags_t;

enum {
  I2C_START   = 0x01,
  I2C_STOP    = 0x02,
  I2C_ACK_END = 0x04,
};


#endif /* _I2C_H */

Now I have doubts about how to put address slave and how to use this flags
for write/read operations, and the slave address is 8 bits (included the lsb
w/r).
Also I need impl "multiple repeated STARTs and multiple reads/writes within
the same START transaction".

I hope do you understand my problem, thaks...


2010/5/18 Michael Schippling <sc...@santafe.edu>

> If the T2 impl is like the T1 version there are four bits
> you can send to I2C read/write, which are conveniently
> not defined or described anywhere:
>
> /*
> ** I2CPacket read/write command flags,
> **  defined in I2CPacketM.nc but not in a header file...
> */
> #define STOP_FLAG       0x01 //send stop/end command at the
>                             //  end of the packet
> #define ACK_FLAG        0x02 //ack every byte except for the
>                             // last received
> #define ACK_END_FLAG    0x04 //acks after the last byte read
> #define ADDR_8BITS_FLAG 0x80 //slave address is a full eight
>                             // bits as sent. w/this bit user
>                             // must set read flag explicitly
>
> Through exhaustive testing and spec reading I found that these
> two needed to be set for my external device. I believe they
> are both the default expected I2C behavior so why they are
> non-default options is left as an exercise for the reader:
>
> // works...no END ACK...dunno?
> #define I2CP_I2CFLAGS   (STOP_FLAG | ACK_FLAG)
>
> Also watch out for "wait-state" handshakes between bytes on
> the I2C bus. The T1 code doesn't detect them and can over run.
> If you read one byte correctly then part of another and
> nothing more you may need to extend the timeout between
> bytes in I2CM.nc
>
> MS
>
>
>
>
> Ronald Eliseo Reyes López wrote:
>
>>
>> ---------- Forwarded message ----------
>> From: *Philip Levis* <p...@cs.stanford.edu <mailto:p...@cs.stanford.edu>>
>> Date: 2010/5/17
>> Subject: Re: Help with I2CPacket.nc
>> To: Ronald Eliseo Reyes López <reyesronal...@gmail.com <mailto:
>> reyesronal...@gmail.com>>
>> Cc: pbuonado...@archrock.com <mailto:pbuonado...@archrock.com>,
>> j...@archrock.com <mailto:j...@archrock.com>
>>
>>
>> Please send questions to tinyos-help. Thanks!
>>
>> Phil
>>
>> On May 16, 2010, at 5:21 PM, Ronald Eliseo Reyes López wrote:
>>
>>  > Hi.
>>  >
>>  > I'm a student and I need to control an pressure sensor, exactly BMP085
>> from Bosch Sensortec, for my tesis degree.
>>  > This sensor use I2C protocol to communicate with master, which will be
>> a Telosb mote.
>>  >
>>  > The problem is I don't understand how to use the i2c_flags with the
>> I2CPAcket's command read. The explanation is not enouhg seem me, please
>> anybody can help me?
>>  >
>>  > I have the new version of tinyos-2.x from cvs repository.
>>  >
>>  > thanks in advance, and i hope your answer.
>>  >
>>  > Ronald Reyes
>>
>>
>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> Tinyos-help mailing list
>> Tinyos-help@millennium.berkeley.edu
>> https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
>>
>
_______________________________________________
Tinyos-help mailing list
Tinyos-help@millennium.berkeley.edu
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to