#define MAX_RENUM_DELAY_MS 3000
#define DEFAULT_VOLTAGE 2
+#define DEFAULT_COUPLING COUPLING_DC
#define DEFAULT_SAMPLERATE SR_MHZ(8)
#define NUM_CHANNELS 2
SR_KHZ(100),
#define SAMPLERATE_REGS \
- 48, 30, 24, 16, 8, 4, 1, 50, 20, 10,
+ 48, 30, 24, 16, 8, 4, 1, 50, 20, 10,
#define VDIV_VALUES \
- { 100, 1000 }, \
- { 250, 1000 }, \
+ { 1, 1 }, \
{ 500, 1000 }, \
- { 1, 1 },
+ { 250, 1000 }, \
+ { 100, 1000 },
+
+#define VDIV_VALUES_INSTRUSTAR \
+ { 128, 100 }, \
+ { 705, 1000 }, \
+ { 288, 1000 }, \
+ { 140, 1000 }, \
+ { 576, 10000 }, \
+ { 176, 10000 },
#define VDIV_REG \
- 10, 5, 2, 1,
+ 1, 2, 5, 10, 11, 12, 13,
#define VDIV_MULTIPLIER 10
/* Weird flushing needed for filtering glitch away. */
-#define FLUSH_PACKET_SIZE 2600
+#define FLUSH_PACKET_SIZE 1024
-#define MIN_PACKET_SIZE 600
+#define MIN_PACKET_SIZE 512
+#ifdef _WIN32
+#define MAX_PACKET_SIZE (2 * 1024 * 1024)
+#else
#define MAX_PACKET_SIZE (12 * 1024 * 1024)
+#endif
#define HANTEK_EP_IN 0x86
#define USB_INTERFACE 0
SAMPLERATE_REG = 0xe2,
TRIGGER_REG = 0xe3,
CHANNELS_REG = 0xe4,
+ COUPLING_REG = 0xe5,
};
enum states {
STOPPING,
};
+enum couplings {
+ COUPLING_AC = 0,
+ COUPLING_DC,
+};
+
struct hantek_6xxx_profile {
/* VID/PID after cold boot */
uint16_t orig_vid;
/* VID/PID after firmware upload */
uint16_t fw_vid;
uint16_t fw_pid;
+ uint16_t fw_prod_ver;
const char *vendor;
const char *model;
const char *firmware;
+ const char **coupling_vals;
+ uint8_t coupling_tab_size;
+ gboolean has_coupling;
+ const uint64_t (*vdivs)[2];
+ const uint32_t vdivs_size;
};
struct dev_context {
const struct hantek_6xxx_profile *profile;
- void *cb_data;
GSList *enabled_channels;
/*
* We can't keep track of an FX2-based device after upgrading
uint64_t aq_started;
uint64_t read_start_ts;
- uint32_t read_data_amount;
-
- struct libusb_transfer **sample_buf;
- uint32_t sample_buf_write;
- uint32_t sample_buf_size;
gboolean ch_enabled[NUM_CHANNELS];
int voltage[NUM_CHANNELS];
+ int coupling[NUM_CHANNELS];
+ const char **coupling_vals;
+ uint8_t coupling_tab_size;
+ gboolean has_coupling;
uint64_t samplerate;
+ const uint64_t (*vdivs)[2];
+ uint8_t vdivs_size;
uint64_t limit_msec;
uint64_t limit_samples;
SR_PRIV int hantek_6xxx_start_data_collecting(const struct sr_dev_inst *sdi);
SR_PRIV int hantek_6xxx_stop_data_collecting(const struct sr_dev_inst *sdi);
+SR_PRIV int hantek_6xxx_update_coupling(const struct sr_dev_inst *sdi);
SR_PRIV int hantek_6xxx_update_samplerate(const struct sr_dev_inst *sdi);
SR_PRIV int hantek_6xxx_update_vdiv(const struct sr_dev_inst *sdi);
SR_PRIV int hantek_6xxx_update_channels(const struct sr_dev_inst *sdi);