]> sigrok.org Git - libsigrok.git/commitdiff
openbench-logic-sniffer: fix acquisition restart with trigger enabled
authorGwenhael Goavec-Merou <redacted>
Sun, 30 Apr 2017 13:57:40 +0000 (15:57 +0200)
committerUwe Hermann <redacted>
Tue, 2 May 2017 20:06:58 +0000 (22:06 +0200)
With trigger enabled, and with PulseView, a second (or more) acquisition
starts immediately instead of blocking. It's mandatory to try several times
to have a correct behavior.

According to http://mygizmos.org/ols/Logic-Sniffer-FPGA-Spec.pdf section 2.3.1
p.8, the Openbench Logic Sniffer must be reset before each arm command.

This fixes bug #809.

Signed-off-by: Gwenhael Goavec-Merou <redacted>
src/hardware/openbench-logic-sniffer/api.c

index c04595350c6bcc562e978a65940c6eadb63c9176..5e74a5236e745b56de2bfde26e3baa8ebebf212f 100644 (file)
@@ -473,6 +473,14 @@ static int dev_acquisition_start(const struct sr_dev_inst *sdi)
                return SR_ERR;
        }
        if (devc->num_stages > 0) {
+               /*
+                * According to http://mygizmos.org/ols/Logic-Sniffer-FPGA-Spec.pdf
+                * reset command must be send prior each arm command
+                */
+               sr_dbg("Send reset command before trigger configure");
+               if (ols_send_reset(serial) != SR_OK)
+                       return SR_ERR;
+
                delaycount = readcount * (1 - devc->capture_ratio / 100.0);
                devc->trigger_at = (readcount - delaycount) * 4 - devc->num_stages;
                for (i = 0; i <= devc->num_stages; i++) {