Rather than continue on the CP7 thread, I though I would start a new one.
I am seeing a lot of execute failures on the G400 and I hooked up my logic analyser to the I2C bus and I spotted why it fails. At least this seems to be the reason.
In the attached image you will see that the G400 sent a start bit and then the address and read/write bit. This should have been ack’ed by the device but instead it was nack’ed meaning that no device responded to the address.
Looking at the SCL line you can see why. The clock is not correct. The timing goes out at bit 4.
The second image shows a partially completed bus cycle. It’s as if the I2C driver just stops. On both of these, the execute function returns 0.
To show that it does work, the 3rd image is a complete ADC read of 5 bytes.