Hello,
On Wed, 9 Oct 2013 14:05:04 +0100 "luke.leighton" luke.leighton@gmail.com wrote:
On Wed, Oct 9, 2013 at 1:22 PM, luke.leighton luke.leighton@gmail.com wrote:
ahh.... something really weird going on with the flying squirrel i2c addressing. i'm running i2cdetect and it's showing up 0x34 for the AXP209 I2C address instead of 0x68, and so on. i _thought_ i got the address for the I2C EEPROM right, from the datasheet (0xA2) - but it seems that it's been shifted by one bit (0x51) as well.
help! i have no idea what's going on here!
ahh... that's interesting... i2cdetect 0 shows 0x34 for the on-board AXP209 and that's literally the only device on the I2C bus. actually it shows UU instead of 34.
so the issue's not *specifically* related to the flying squirrel. hmmm...
I don't know why nobody replies, I guess because it's around the biggest FAQ for I2C bus, so everyone probably thinks that everyone else knows about it and then it must be something else. So, canonically, I2C address is 7 bit, followed by R/W bit (Wikipedia won't let me lie on that). Well, it's natural itch to cramp those entities together in a byte and treat *that* as an address (with such compound address thus being different for write (x) and read (x+1) operations). And there're two schools of vendors who cramp stuff together and who don't. It's like big-endian and little-endian!
Indeed, looking at AXP209 Chinese datasheet, in "Electrical Characteristics" (sic!) table it says that "typical" "electric characteristic" of address is 0x68. They fail to specify Min and Max though in that table, which is 0x68 and 0x69 respectively. They mention 0x69 elsewhere though.
Randomly choosing Western vendor, http://www.atmel.com/images/doc0336.pdf also does include R/W bit in the address (Fig 1, p.11), so it's hard to blame someone specifically...