Could the sigrok i2c decoder have an issue, when ACK is saught
but STOP is seen instead on the wire? Does the (essence of the)
recent dslab commit c6bdd0e5ed65 apply to the sigrok code base?
Unfortunately the commit message is short on details, no data
how to reproduce. Just this message:

  Fix decoder issues (stop of i2c, break of dmx512)

and this change:

   elif self.state == 'FIND ACK':
  -    # Wait for a data/ack bit: SCL = rising.
  -    (scl, sda) = self.wait({0: 'r'})
  -    self.get_ack(scl, sda)
  +    # Wait for any of the following conditions (or combinations):
  +    #  a) a data/ack bit: SCL = rising.
  +    #  b) STOP condition (P): SCL = high, SDA = rising
  +    (scl, sda) = self.wait([{0: 'r'}, {0: 'h', 1: 'r'}])
  +    if (self.matched & (0b1 << 0)):
  +        self.get_ack(scl, sda)
  +    elif (self.matched & (0b1 << 1)):
  +        self.handle_stop()


virtually yours
Gerhard Sittig
--
     If you don't understand or are scared by any of the above
             ask your parents or an adult to help you.


_______________________________________________
sigrok-devel mailing list
sigrok-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sigrok-devel

Reply via email to