This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Trouble accessing the data flash in BQ27501

Other Parts Discussed in Thread: BQ27501

I'm working on a BQ27501 driver for a board and am having some success, but not enough.

My driver has no problems doing I2C reads and writes for commands and subcommands.

For example, I can read the status, flags, voltage, hardware or firmware version; and set or clear the hibernate bit, etc.

However, I can't figure out how to use the extended data commands to access the data flash.

Here's the [latest (I've tried MANY variations)] I2C sequence I tried to read 8 bytes from the device name at subclass 48 offset 12.

<I2C START> 0x55(write) 0x00 0x3E 0x30 <I2C STOP> (data flash subclass = 48)

<I2C START> 0x55(write) 0x00 0x3F 0x00 <I2C STOP> (data flash block = 0)

<I2C START> 0x55(write) 0x00 0x61 0x00 <I2C STOP> (block data control = 0)

<I2C START> 0x55(write) 0x00 0x4C  (block data block offset = 12)

<I2C REPEATED START> 0x55(read) 0x00  ...8 bytes of read data... <I2C STOP>  

The 8 bytes of read data that are clocked out don't appear to be anything like ASCII chars (encoded as HEX values).

I've been unable to locate any timing diagrams (or anything else, really) that shows how to use the I2C bus to access the data flash.

Can anyone tell me what's wrong with the above sequence?

Thanks!

Dave