]> sigrok.org Git - libsigrokdecode.git/commit
ieee488: add support for parallel poll (PP)
authorGerhard Sittig <redacted>
Sat, 20 Mar 2021 14:43:13 +0000 (15:43 +0100)
committerGerhard Sittig <redacted>
Mon, 21 Jun 2021 07:41:18 +0000 (09:41 +0200)
commitc70c28c896ad0509a7fe1b2129c60259c202cb98
tree185c758b5adabd0e749db28bb3173b3fba0fbd84
parentbcb8698eb151b51c17f9205e8752c3ee1413535a
ieee488: add support for parallel poll (PP)

The concurrent assertion of ATN and EOI is a PP (parallel poll) query.
The host asserts the control signals, and configured devices may assert
the DIO lines in response.

Because DAV is not involved, and because the input capture may not have
DIO at the start of the PP phase, and may neither have DIO any more at
its end, the check for parallel poll is more complex. Unconditionally
inspecting each sample of the capture is inefficient. Keep manipulating
the main loop's wait conditions instead, to stick with edge navigation
as long as possible, and only switch to inspection of individual samples
when strictly needed.

It's also important to gracefully handle low oversampling. Existing test
cases suffered from PP glitches when ATN asserted in the same location
where EOI deasserted. Be extra conservative about the presence of the
PP phase, expect at least two samples (a difference between its start
and end position) before emitting the annotation.
decoders/ieee488/pd.py