X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Fasix-sigma%2Fapi.c;h=c8665aae9f106a7c6845eaae1bd988e7fa8334ce;hb=22f64ed88c2128ebadf09eafa3e12c8ed76cff7f;hp=3ea726d8a1f2118af2585a80c9c7d02ef39e5df7;hpb=de3f7acb4df5ff584b116b6c5f1a1eee0814ccf5;p=libsigrok.git diff --git a/src/hardware/asix-sigma/api.c b/src/hardware/asix-sigma/api.c index 3ea726d8..c8665aae 100644 --- a/src/hardware/asix-sigma/api.c +++ b/src/hardware/asix-sigma/api.c @@ -292,9 +292,10 @@ static int dev_acquisition_start(const struct sr_dev_inst *sdi) struct dev_context *devc; struct clockselect_50 clockselect; int frac, triggerpin, ret; - uint8_t triggerselect = 0; + uint8_t triggerselect; struct triggerinout triggerinout_conf; struct triggerlut lut; + uint8_t regval; if (sdi->status != SR_ST_ACTIVE) return SR_ERR_DEV_CLOSED; @@ -315,8 +316,9 @@ static int dev_acquisition_start(const struct sr_dev_inst *sdi) /* Enter trigger programming mode. */ sigma_set_register(WRITE_TRIGGER_SELECT1, 0x20, devc); - /* 100 and 200 MHz mode. */ + triggerselect = 0; if (devc->cur_samplerate >= SR_MHZ(100)) { + /* 100 and 200 MHz mode. */ sigma_set_register(WRITE_TRIGGER_SELECT1, 0x81, devc); /* Find which pin to trigger on from mask. */ @@ -332,8 +334,8 @@ static int dev_acquisition_start(const struct sr_dev_inst *sdi) if (devc->trigger.fallingmask) triggerselect |= 1 << 3; - /* All other modes. */ } else if (devc->cur_samplerate <= SR_MHZ(50)) { + /* All other modes. */ sigma_build_basic_trigger(&lut, devc); sigma_write_trigger_lut(&lut, devc); @@ -382,7 +384,11 @@ static int dev_acquisition_start(const struct sr_dev_inst *sdi) /* Start acqusition. */ gettimeofday(&devc->start_tv, 0); - sigma_set_register(WRITE_MODE, 0x0d, devc); + regval = WMR_TRGRES | WMR_SDRAMWRITEEN; +#if ASIX_SIGMA_WITH_TRIGGER + regval |= WMR_TRGEN; +#endif + sigma_set_register(WRITE_MODE, regval, devc); std_session_send_df_header(sdi);