applet.bridge.probe_rs: support included in probe-...
by whitequark 5 months 8 hours
applet.bridge.probe_rs: support included in probe-rs release!
96c2a7fb
applet.sensor.sen5x: add delay before I2C reads
by Mike Walters 5 months 19 hours
applet.sensor.sen5x: add delay before I2C reads

The datasheet lists a worst-case command execution time of 20 ms for all
read commands, but doesn't clearly explain what to do with that information.

However, the device NACKs an I2C read if it's issued too soon after the
command-address write. So, this delays all reads by that execution time
and seems to be stable now.
8dc447f5
applet.sensor.sen5x: set @miek as code owner.
by whitequark 5 months 22 hours
b014a4b2
applet.sensor.sen5x: migrate to V2 API and add tes...
by whitequark 5 months 2 days
applet.sensor.sen5x: migrate to V2 API and add test.
e353846f
applet.sensor.scd30: remove unreachable code.
by whitequark 5 months 2 days
b38b4fb5
gateware.fx2_crossbar: flush IN FIFO once per micr...
by whitequark 5 months 2 days
gateware.fx2_crossbar: flush IN FIFO once per microframe.

This eliminates a common pitfall for applet authors, where by default
the IN FIFO is flushed too often, and very small packets clog the FX2
buffers, causing buffer overflows and data loss. With this change, so
long as the host polls the device once per microframe (with XHCI hosts,
this can happen even more than once), there will never be a case where
an FX2 buffer isn't available, unless the bus is very heavily loaded
with other traffic.

There are two cases where more control over flushing is desired.

First, in request/response style protocols, it is useful to flush
the IN FIFO once the OUT FIFO is empty, since this reduces time spent
waiting for responses. This can significantly improve `probe-rs`
throughput, and is still used in that applet.

Second, an applet that produces a stream of data quickly enough that it
would be sent as a sequence of maximum-length packets may still need
this data to arrive at the host promptly. This can be an issue with
`uart` applet at high baud rates and duty cycles. It is not fixed in
this commit.

The throughput and latency when configured to flush implicitly, as
measured by the `benchmark` applet, are essentially unchanged;
the latency should be worse by ~125 µs (worst case), but this change
is comparable to noise.

All of the V2 applets that used to use explicit flush have been updated
to use autoflush where applicable; only `probe-rs` continues to use
explicit flush.

Fixes #263.
Fixes #794.
73a91184
applet.bridge.jtag_xvc: modernize. NFC
by whitequark 5 months 1 day
23834dad
applet.interface.uart: docstring style. NFC
by whitequark 5 months 2 days
fe3b4bbb
applet.memory.24x: migrate to V2 API, add test.
by whitequark 5 months 21 hours
f54b541b
CI: make test runner verbose.
by whitequark 5 months 20 hours
17797fde
Report a bug