Other Parts Discussed in Thread: BQ25790
Hi,
I am working on a battery charger circuit with the BQ25790. In my design, I only have a UART interface available. Therefore, I am using a SC18IM700 UART-to-I2C bridge IC to communicate with the BQ25790. I designed the following prototype circuit for testing purposes.
I can successfully communicate with the BQ25790 but I have come across this unexpected finding that I can't wrap my head around. I send an instruction to read 3 bytes of data starting from the address 0x00 (REG00_Minimal_System_Voltage) and receive the correct data back ( 1 byte from REG00_Minimal_System_Voltage and 2 bytes from REG01_Charge_Voltage_Limit). I send the same instruction again and then it returns the data of the next 3 bytes (2 bytes from REG03_Charge_Current_Limit and the lower byte of REG05_Input_Voltage_Limit). If I keep sending the same instruction, it returns the data of the next three bytes until it reaches the last register of the BQ25790 and then it loops back to REG_00. I don't understand why this is happening. In my instruction, I don't change the address of the first register. Just to test the other half of the circuit, I replaced the BQ25790 with some other IC with an I2C interface. After changing the slave address data, I sent the same instruction over and over and every time it returned the data of the first 3 bytes.
If you can help me to figure out what's happening with BQ25790, that would be great.
Thank you so much for your time.
Regards,
Paul