X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Fhantek-6xxx%2Fprotocol.h;h=73d8f868da27430072a30b674ea96440ab27da22;hb=8dacbcf68fd324ea443c32ec1433295a94c8cac6;hp=7c8de938db05fcf4fad8e901313625ae708f59c3;hpb=f2a66a8ee669df5afa1b7bdade6e25ac0857fe4b;p=libsigrok.git diff --git a/src/hardware/hantek-6xxx/protocol.h b/src/hardware/hantek-6xxx/protocol.h index 7c8de938..73d8f868 100644 --- a/src/hardware/hantek-6xxx/protocol.h +++ b/src/hardware/hantek-6xxx/protocol.h @@ -31,6 +31,7 @@ #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 @@ -42,7 +43,7 @@ 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 }, \ @@ -56,9 +57,9 @@ #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 #define MAX_PACKET_SIZE (12 * 1024 * 1024) #define HANTEK_EP_IN 0x86 @@ -71,6 +72,7 @@ enum control_requests { SAMPLERATE_REG = 0xe2, TRIGGER_REG = 0xe3, CHANNELS_REG = 0xe4, + COUPLING_REG = 0xe5, }; enum states { @@ -80,6 +82,11 @@ enum states { STOPPING, }; +enum couplings { + COUPLING_AC = 0, + COUPLING_DC, +}; + struct hantek_6xxx_profile { /* VID/PID after cold boot */ uint16_t orig_vid; @@ -87,14 +94,17 @@ 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; }; 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 @@ -116,6 +126,10 @@ struct dev_context { 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; uint64_t limit_msec; @@ -130,6 +144,7 @@ SR_PRIV int hantek_6xxx_get_channeldata(const struct sr_dev_inst *sdi, 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);