Amol,

In I2C the device address is a 7-bit number.  Whenever an I2C
transaction occurs the master sends the 7-bit slave address and then a
Read/Write bit.  That is, the total transfer for the address ends up
being 8 bits when you count read/write.  Because of that, there is some
general confusion as to how to represent the address, i.e. whether to
show it left-justified so you can simply OR the Read/Write bit or
whether to show it right-justified which would be the actual 7-bit
address.

Whenever you do I2C you should always keep that in mind as you're
reading datasheets.  Take a look to see if they're putting a read/write
bit in the lsb.  Also, when dealing with APIs you need to be careful
whether the API wants the address to be left- or right-aligned.

So in your case the slave address is 0x6F.  To do a write you would send
0xDE and to do a read you would send 0xDF.

Brad

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On
Behalf Of Amol Lad
Sent: Sunday, January 21, 2007 12:18 AM
To: davinci-linux-open-source@linux.davincidsp.com
Subject: External I2C device (Solved)

I'm connecting external RTC (ISl1208) to Davinci on I2C. It's slave
address as per device spec is 0xDE. BUT in davinci the device is
responding at address 0x6F

In my all other platforms the device responds at 0xDE.

I use davinci_i2c_read/davinci_i2c_write APIs ? One more point. 0x6F <<
1 == 0xDE



_______________________________________________
Davinci-linux-open-source mailing list
Davinci-linux-open-source@linux.davincidsp.com
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to