From: Alexandru Gagniuc Date: Sun, 8 May 2016 19:57:06 +0000 (-0700) Subject: scpi-pps: Add profile for HP 6633A supply X-Git-Tag: libsigrok-0.5.0~377 X-Git-Url: https://sigrok.org/gitaction?a=commitdiff_plain;h=e76a3575369e3864c122d68870ff2b52a317f1e7;p=libsigrok.git scpi-pps: Add profile for HP 6633A supply Oldie but goodie. Some of the HP 6632B options are renamed for clarity, as they are common among the A and B variants. --- diff --git a/src/hardware/scpi-pps/profiles.c b/src/hardware/scpi-pps/profiles.c index 686987f6..eb56f72d 100644 --- a/src/hardware/scpi-pps/profiles.c +++ b/src/hardware/scpi-pps/profiles.c @@ -298,6 +298,18 @@ static const struct scpi_command rigol_dp800_cmd[] = { }; /* HP 663xx series */ + +static const uint32_t hp_6630a_devopts[] = { + SR_CONF_CONTINUOUS, + SR_CONF_ENABLED | SR_CONF_SET, + SR_CONF_VOLTAGE | SR_CONF_GET, + SR_CONF_CURRENT | SR_CONF_GET, + SR_CONF_VOLTAGE_TARGET | SR_CONF_SET | SR_CONF_LIST, + SR_CONF_CURRENT_LIMIT | SR_CONF_SET | SR_CONF_LIST, + SR_CONF_OVER_VOLTAGE_PROTECTION_THRESHOLD | SR_CONF_SET, + SR_CONF_OVER_CURRENT_PROTECTION_ENABLED | SR_CONF_SET, +}; + static const uint32_t hp_6632b_devopts[] = { SR_CONF_CONTINUOUS, SR_CONF_ENABLED | SR_CONF_GET | SR_CONF_SET, @@ -307,14 +319,31 @@ static const uint32_t hp_6632b_devopts[] = { SR_CONF_CURRENT_LIMIT | SR_CONF_GET | SR_CONF_SET | SR_CONF_LIST, }; +static const struct channel_spec hp_6633a_ch[] = { + { "1", { 0, 51.188, 0.0125 }, { 0, 2.0475, 0.0005 }, FREQ_DC_ONLY }, +}; + static const struct channel_spec hp_6632b_ch[] = { { "1", { 0, 20.475, 0.005 }, { 0, 5.1188, 0.00132 }, FREQ_DC_ONLY }, }; -static const struct channel_group_spec hp_6632b_cg[] = { +static const struct channel_group_spec hp_663xx_cg[] = { { "1", CH_IDX(0), 0 }, }; +static const struct scpi_command hp_6630a_cmd[] = { + { SCPI_CMD_SET_OUTPUT_ENABLE, "OUT 1" }, + { SCPI_CMD_SET_OUTPUT_DISABLE, "OUT 0" }, + { SCPI_CMD_GET_MEAS_VOLTAGE, "VOUT?" }, + { SCPI_CMD_GET_MEAS_CURRENT, "IOUT?" }, + { SCPI_CMD_SET_VOLTAGE_TARGET, "VSET %.4f" }, + { SCPI_CMD_SET_CURRENT_LIMIT, "ISET %.4f" }, + { SCPI_CMD_SET_OVER_CURRENT_PROTECTION_ENABLE, "OCP 1" }, + { SCPI_CMD_SET_OVER_CURRENT_PROTECTION_DISABLE, "OCP 0" }, + { SCPI_CMD_SET_OVER_VOLTAGE_PROTECTION_THRESHOLD, "OVSET %.4f" }, + ALL_ZERO +}; + static const struct scpi_command hp_6632b_cmd[] = { { SCPI_CMD_GET_OUTPUT_ENABLED, "OUTP:STAT?" }, { SCPI_CMD_SET_OUTPUT_ENABLE, "OUTP:STAT ON" }, @@ -512,12 +541,22 @@ SR_PRIV const struct scpi_pps pps_profiles[] = { chroma_62000_cmd, .probe_channels = chroma_62000p_probe_channels, }, + /* HP 6633A */ + { "HP", "6633A", 0, + ARRAY_AND_SIZE(hp_6630a_devopts), + ARRAY_AND_SIZE(devopts_none), + ARRAY_AND_SIZE(hp_6633a_ch), + ARRAY_AND_SIZE(hp_663xx_cg), + hp_6630a_cmd, + .probe_channels = NULL, + }, + /* HP 6632B */ { "HP", "6632B", 0, ARRAY_AND_SIZE(hp_6632b_devopts), ARRAY_AND_SIZE(devopts_none), ARRAY_AND_SIZE(hp_6632b_ch), - ARRAY_AND_SIZE(hp_6632b_cg), + ARRAY_AND_SIZE(hp_663xx_cg), hp_6632b_cmd, .probe_channels = NULL, },