Here is the I2C write capture:
Here is the I2C read from the above terminal log (note I'm using the PRU Uart looped back into userspace as a debug output):
But note that on the terminal log above the 2nd byte that was pumped out the PRU Uart was 0x71 yet the scope shows 0x6F was read across the bus.
A 2nd call of the read_wiper function causes the correct value to be output:
We are a small team of experienced embedded devs with many years MCU experience across many architectures, we have a lot of I2C experience, and this one has us stumped.... Help...