I have a device which uses I2C-like communication. All timing and behavior is the same, except for two things. Firstly, the device doesn't send and ACK after receiving the 7-bit address+R/W byte. Secondly, the device doesn't send ACK between each data word in a write command. Why the makers of the device would deviate from the I2C protocol is beyond me, but I would like to solve the issue.
Is there a way to edit the Wire library to support this device? As far as I understand the Wire library makes use of the I2C capabilities of the Atmega chip, but I can't really understand what's going on inside the library. Too bad I'm just a Arduino and c++ beginner..
I've looking for some alternative libraries also, and found one. http://dsscircuits.com/articles/arduino-i2c-master-library.html. While this library seems easier to understand, it doesn't support this device and I'm not sure what to edit to make it work.
If I can't edit either library, I guess I would be stuck just generating the necessary waveforms? Can I get the required speed with standart digitalOutput/digitalInput commands? Or would I have to write directly to the Atmega chip then?
Thanks for your help