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

Reply via email to