X-Git-Url: https://sigrok.org/gitweb/?p=libsigrok.git;a=blobdiff_plain;f=src%2Fhardware%2Fhantek-6xxx%2Fprotocol.h;h=35d2a97f2ef242911d2e4ce461e131592dada1af;hp=6e87079c82efcdcccd598f58dd5fa035ed8dca28;hb=389acdd9913edeb05be7d931a13097aeadd98f0a;hpb=cc5ebc8a3d66e15ade82475ae890e0dafe9b4586 diff --git a/src/hardware/hantek-6xxx/protocol.h b/src/hardware/hantek-6xxx/protocol.h index 6e87079c..35d2a97f 100644 --- a/src/hardware/hantek-6xxx/protocol.h +++ b/src/hardware/hantek-6xxx/protocol.h @@ -31,7 +31,7 @@ #define MAX_RENUM_DELAY_MS 3000 #define DEFAULT_VOLTAGE 2 -#define DEFAULT_COUPLING COUPLING_DC +#define DEFAULT_COUPLING COUPLING_DC #define DEFAULT_SAMPLERATE SR_MHZ(8) #define NUM_CHANNELS 2 @@ -43,24 +43,36 @@ 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 @@ -94,14 +106,19 @@ struct hantek_6xxx_profile { /* 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 @@ -115,16 +132,16 @@ struct dev_context { 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;