openbench-logic-sniffer: fix acquisition restart with trigger enabled
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 <gwenhael.goavec-merou@trabucayre.com>
This commit is contained in:
parent
244995a2e3
commit
b853eb76fb
|
@ -473,6 +473,14 @@ static int dev_acquisition_start(const struct sr_dev_inst *sdi)
|
||||||
return SR_ERR;
|
return SR_ERR;
|
||||||
}
|
}
|
||||||
if (devc->num_stages > 0) {
|
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);
|
delaycount = readcount * (1 - devc->capture_ratio / 100.0);
|
||||||
devc->trigger_at = (readcount - delaycount) * 4 - devc->num_stages;
|
devc->trigger_at = (readcount - delaycount) * 4 - devc->num_stages;
|
||||||
for (i = 0; i <= devc->num_stages; i++) {
|
for (i = 0; i <= devc->num_stages; i++) {
|
||||||
|
|
Loading…
Reference in New Issue