BQ27441 - Incorrect data being returned
Posted: Mon Jul 12, 2021 4:41 pm
Hi,
I am currently trying to get a BQ27441 to work properly.
The datasheet, is in my opinion pretty poor at explaining how its registers work. It refers to them as commands instead.
In any case, i have spent quite a few hours today, just trying to get it to output its own DEVICE_TYPE.
The first problem i am seeing is that when sending the device address to either read or write, i get an ACK returned.
Following on from the address i send the 2 byte "control()" command eg, 0x00, 0x01.
Both of these bytes return NACK.
I try to read the data, 2 bytes and i get something returned that is not the DEVICE_TYPE, which should be 0x0421.
So code wise this is what im doing.
START
SEND WRITE ADDRESS - GET ACK
SEND 0x00 - GET NACK
SEND 0x01 - GET NACK
STOP
WAIT 66mS
START
SEND WRITE ADDRESS - GET ACK
SEND 0x00 - GET NACK
SEND 0x01 - GET NACK
STOP
WAIT 66mS
START
SEND WRITE ADDRESS - GET ACK
SEND 0x00 - GET NACK
RESTART
SEND READ ADDRESS - GET ACK
READ MSB
READ LSB
STOP
WAIT 66mS
In return i get 0x7F, 0x7F for my read data.
Can i ask someone to take a look at the datasheet and write out how they would interpret the commands be sent, please.
I am currently trying to get a BQ27441 to work properly.
The datasheet, is in my opinion pretty poor at explaining how its registers work. It refers to them as commands instead.
In any case, i have spent quite a few hours today, just trying to get it to output its own DEVICE_TYPE.
The first problem i am seeing is that when sending the device address to either read or write, i get an ACK returned.
Following on from the address i send the 2 byte "control()" command eg, 0x00, 0x01.
Both of these bytes return NACK.
I try to read the data, 2 bytes and i get something returned that is not the DEVICE_TYPE, which should be 0x0421.
So code wise this is what im doing.
START
SEND WRITE ADDRESS - GET ACK
SEND 0x00 - GET NACK
SEND 0x01 - GET NACK
STOP
WAIT 66mS
START
SEND WRITE ADDRESS - GET ACK
SEND 0x00 - GET NACK
SEND 0x01 - GET NACK
STOP
WAIT 66mS
START
SEND WRITE ADDRESS - GET ACK
SEND 0x00 - GET NACK
RESTART
SEND READ ADDRESS - GET ACK
READ MSB
READ LSB
STOP
WAIT 66mS
In return i get 0x7F, 0x7F for my read data.
Can i ask someone to take a look at the datasheet and write out how they would interpret the commands be sent, please.