Postby dldtechnology » Mon Dec 12, 2016 9:51 pm
I now have my version of the driver working with various I2C devices at 100K, but it took some doing. Still not working at 400K but that could be electrical as I had quite a lot of stuff on the bus.
I ended up writing some dedicated getByte / getWord functions to combine the write and receive parts into one bit - this seemed to help as I'm not convinced the existing read function is working 100%.
Also changed the timings to make the repeated start look a bit cleaner (don't think this is needed, but made the logic traces look nice).
No problem sharing my code if needed - but it will need changing to make it work with the Arduino environment, and I can't guarantee it will work with all devices.