diff options
author | Gerhard Sittig <gerhard.sittig@gmx.net> | 2021-03-20 15:43:13 +0100 |
---|---|---|
committer | Gerhard Sittig <gerhard.sittig@gmx.net> | 2021-06-21 09:41:18 +0200 |
commit | c70c28c896ad0509a7fe1b2129c60259c202cb98 (patch) | |
tree | 185c758b5adabd0e749db28bb3173b3fba0fbd84 /error.c | |
parent | bcb8698eb151b51c17f9205e8752c3ee1413535a (diff) | |
download | libsigrokdecode-c70c28c896ad0509a7fe1b2129c60259c202cb98.tar.gz libsigrokdecode-c70c28c896ad0509a7fe1b2129c60259c202cb98.zip |
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.
Diffstat (limited to 'error.c')
0 files changed, 0 insertions, 0 deletions