Other Parts Discussed in Thread: BQ27510
I read SLUUA97, SLUSAT1A and SLUA467B and was able to find only the sequence for reading subcommands. It does work. However, if I want to, let's say, put BQ27510 into SLEEP or HIBERNATE state, I need to perform a subcommand write. How can I do that?
I tried to mimick the sequence for subcommand reading and do this - START, I2C_ADDR, CONTROL_CMD, SUBCOMMAND_LOW, SUBCOMMAND_HIGH, STOP and than do incremental write of the new value to the CONTROL_CMD - START, I2C_ADDR, CONTROL_CMD, VALUE_LOW, VALUE_HIGH, STOP.
I don't get any unexpected NACKs from BQ27510 but I'm not sure that I actually wrote something, since CONTROL_AND_STATUS is always read as 0x00.
It is also not clear what value should I write to the SET_SLEEP or SET_HIBERNATE to activate it. 1? Or any positive value?
Please, tell me, what is a correct sequence to write something to a subcommand and how do I check that it is actually written?