I'm trying to communicate with an LC709203F Lipo gauge from ON semi. It's an I2C device with hardcoded address 0x16 (Datasheet, p.8). At least, it should be...
I'm running a custom arduino zero on my own PCB, every other I2C devices are working fine. When I run the I2C scanner, I get all the good address response for each device, but not for the LC709203F. I get address 0xB (decimal 11) instead of 0x16...
When I try to communicate with the device, I only get 0xFFFF, even for register that should not contain any value beyond 0x0064...
The IC is powered with a 250mah Lipo that works fine. The schematic is exactly the one from the datasheet. The hardware seems to be OK.
A bit late response, but I'm using the LC709203F as well....
The documentation is in error. It states
IC address [Slave Address] : 0x16 (It becomes "0001011X" when you write a binary, because the slave address is 7 bits. [X]=Rd/Wr.)
But the address is 0xB which becomes 0x16 when shifted because of the 7 bit adressing.
I did not manage to get it working yet, I get 0xabfd on every request I perform (0x11, version for instance). As I do not get 0xffff, the chip is responding....
I know probably no one will see this since its been so long ago that this topic went up. But here it goes anyway. I'm also trying to talk to the LC709203F. I ran the scanner and i am also seeing the 0x0B. It makes sense that this is the address because the 7 bit address (its based on the last bit taken off). eg
Hi didn’t get any further with this project. But I did work on this gauge in another projet. I was able to communicate with it but never get it out of sleep mode...
Do you have a logic analyzer? If not you should try the cheap 24MHz ones available on eBay or AliExpress. They are very useful for debugging this kind of issue.
So I actually found code that seems to be working for getting the voltage readings so far anyway I havent set it up for the specific battery i m using so I havent seen the battery capacity values yet.
Here is the link for arduino based code. If you click on it, it should just directly download the .cpp file. I have no idea where the original project is coming from. I was looking through the hackaday website for the power bank project but couldnt find it.
One of the things thats missing is the CRC_TABLE for the CRC check. So i replaced this with a crc table that i found in the following link
So far the voltage being read from the battery monitor seems to be closely matching the voltage of the voltmeter that i have. However, I still need to investigate if this CRC table is right.
I do have an oscilloscope and it does appear to be showing returning bytes that i request.
Hi,
I am also facing issues with LC709203F.
In my setup, I am using the STM32L1 series controller. But unable to communicate with LC709203F over I2C. The setup has one more I2C slave IC and its working fine. Hence I2C lines of the controller are okay.