Hi
I have started to implement a software i2c driver.
I have run the function on several devices on a custom PCB.
Below is the logic output directly from the bus.
Of the 4 devices tested so far, only one of them has returned an ACK. The others are not replying.
All of these slave devices are wired correctly and there is no reason why they should have failed. So at this point im focused on the software as the issue.
You can see that the analyser is correctly picking up whats been sent. 0x55 is the base address with a write bit. The device in particular is a BQ27441.
From the logic output shown, is there anything glaringly obvious as to why im not getting responses from most of the i2c devices?
Each device is on its own bus, so theres noting else that can interfere. not required i know, but i had a load of pins spare and it made routing much better.
PCB