On Fri, Feb 16, 2018 at 4:28 PM, Sterling Hughes < [email protected]> wrote: >...
> There was some thought that this could be simplified to just be a set of > requests and responses that get enqueued and dequeued to the I2C bus which > would be sent in order. I’m not sure if I2C has the concept of events that > need to happen within a transaction to a single device, or tight timing > between them. I was interested in what others though as well. > It does have transactional stuff, in the form of "repeated start". A Master device gets to define what the bus will do across multiple operations. This is particularly useful in terms of "Set X as the Register I want to read. ... Now Read that register." ... without a transaction, another actor could alter the Register-to-read, so the latter operation would read the wrong thing. And yes, this actually happens in practice[1]. Cheers, -g [1] http://prng.blogspot.com/2014/10/raspberry-pi-and-lack-of-i2c-repeated.html
