5.6. HCOPy

The Hardcopy commands are used to print the entire display to a specified file rather than “printing” to an external device.

 

SCPI command

Description

HCOPy

 

[:IMMediate]

Initiates hardcopy output

:DESTination {<destination>}

Sets the hardcopy destination

:SDUMp[:IMMediate]

Initiates hardcopy output

5.6.1. HCOPy:DESTination

Syntax

HCOPy:DESTination {<destination>}

Description

Not implemented yet

 

This command sets the hardcopy destination. The destination is always set to MMEMory (i.e. SD Card). This command is included only for compatibility with the SCPI standard. The destination file on the mass memory device is specified by the MMEMory:NAME command.

Usage example

HCOPY:DEST MMEM

Related Commands

MMEMory:CLOSe

MMEMory:NAME

MMEMory:OPEN

5.6.2. HCOPy[:IMMediate]

Syntax

HCOPy[:IMMediate]

Description

Not implemented yet

 

This command immediately initiates hardcopy output according to the current HCOPy setup parameters. This command is the same as HCOPy:SDUMp[:IMMediate].

Usage example

MMEM:NAME "sample1.png"

MMEM:OPEN

HCOP:DEST "MMEM"

HCOP

MMEM:CLOS

Related Commands

HCOPy:DESTination

HCOPy:SDUMp[:IMMediate]

5.6.3. HCOPy:SDUMp[:IMMediate]

Syntax

HCOPy:SDUMp[:IMMediate]

Description

Not implemented yet

 

This command initiates a screen dump of the entire TFT display's screen, and is the same as the HCOPy[:IMMediate] command.

Usage example

MMEM:NAME "sample2.png"

MMEM:OPEN

HCOP:DEST "MMEM"

HCOP:SDUM

MMEM:CLOS

Related Commands

HCOPy:DESTination

HCOPy[:IMMediate]

 

Add a comment

Current version

r1B2

Status

Work in progress

PCB manufactured

Yes (r1B1)

PCB assembled

Yes (r1B1)

BOM

Yes (TME, Mouser, Digikey, Farnell, RS)

File repository

https://github.com/eez-open/modular-psu/tree/master/dcm220
(include Eagle, Gerber and BOM files)

License

TAPR v1.0

Contributions

C4.1 (Collective Code Construction Contract)

 

Output power terminals
coupling capability (require BP3C backplane)

Series

Parallel

Split rails

Common ground

No

No

No

Yes

Feature list

  • Power input: 48 Vdc (e.g. Mean Well LRS-150F-48)
  • Max. output power: 70 W per channel
  • Voltage regulation (CV), 0 – 20 V. Voltage set resolution (U_SET): 12-bit, read resolution (U_MON): 15-bit
  • Current regulation (CC), max. 4 A. Current set resolution (I_SET): 12-bit, Current read resolution (I_MON): 15-bit
  • Output enable (OE) circuit with LED indicator
  • CC mode LED indicator
  • On-board power output terminals (Ø4 mm, 19 mm/0.75” pitch)
  • 10-pin connector for Vout- coupling with other Power boards
  • Galvanically isolated SPI bus for communication with the MCU board
  • I2C EEPROM for storing board specific configuration and calibration parameters
  • On-board STM32F373C8T6 32-bit ARM Cortex®-M4 MCU, 64 KiB Flash, 32 KiB SRAM, LQFP-48 package
  • Upgradable firmware via DIB v1.0 UART lines
  • SWG/JTAG connector (optional)
  • Two temperature sensors
  • Dimensions: 145 x 95 mm, 2-layer PCB
Add a comment

 

Please note that the following list is preliminary.

 

SCPI command

Description

DCL

Requires the client (controller) to send a "DCL\n" string

*SRE

Sets the value of the Service Request Enable register

*WAI

Waits until all pending commands are completed

CALibration

 

:TEMPerature

 

[:DATA] {<new value>}

Enters the calibration value

INSTrument

 

:COUPle

 

:TRIGger {<mode>}

Selects a coupling between channels trigger systems

OUTPut

 

:DELay

 

:ON {<time>}

Sets the delay time for turning the output on

:OFF {<time>}

Sets the delay time for turning the output off

:DPRog {<bool>}

Controls down-programmer circuit

[SOURce[<n>]]

 

:CURRent

 

:SLEW

 

:FALLing

Sets the falling current slew rate

:RISing

Sets the rising current slew rate

:VOLTage

 

:SLEW

 

:FALLing

Sets the falling voltage slew rate

:RISing

Sets the rising voltage slew rate

SYSTem

 

:COMMunicate

 

:ETHernet

Ethernet communication parameters

:CONTrol?

Queries communication port for SRQ handling

:HOSTname {<name>}

Sets the Ethernet communication host name

:DIGital

 

:TOUTput

 

:BUS[:ENABle] {<Bool>}

Enables/disables BUS-generated triggers on digital pins

:ERRor

 

:ALL?

Queries the error/event queue for all the unread items

:CODE[:NEXT]?

Queries the error/event queue for the next item code

:TIME

 

:TIMer

 

[:STATe]

Sets the internal timer state

:COUNt

Queries the current value of the internal timer

 

 

Add a comment

 

Common command

Description

*CLS

Clears all status data structures

*ESE {<value>}

Programs the Standard Event Status Enable register bits

*ESR?

Reads the Standard Event Status Register

*IDN?

Returns the UNIQUE identification of the BB3

*OPC

Operation Complete Command used for program synchronization

*RCL {<profile>}

Recalls the BB3 state stored in the specified storage location

*RST

Reset BB3 to the initial state

*SAV {<profile>}

Stores the current BB3 state in the specified storage location

*STB?

Reads the Status Byte register

*TRG

Generates a software trigger

*TST?

Returns Self-Test results

*WAI

Waits until all pending commands are completed

 

SCPI Command

Description

ABORt

Resets the trigger system to the Idle state

:DLOG

Stops the internal data logging session

CALibrate[:MODE] {<bool>, <password>}

Enables/disables calibration mode

:CLEar {<password>}

Clears all calibration parameters

:CURRent

 

[:DATA] {<new value>}

Enters the calibration value

:LEVel {<level>}

Calibrates the output current programming

:RANGe {<range>}

Sets current range for multiple current range model

:PASSword

 

:NEW {<old>, <new>}

Changes calibration password

:REMark {<string>}

Saves calibration information

:SAVE

Saves the new cal constants in non-volatile memory

:STATe {<bool>, <password>}

Enables calibration parameters

:VOLTage

 

[:DATA] {<new value>}

Enters the calibration value

:LEVel {<level>}

Calibrates the output voltage programming

DIAGnostic

 

[:INFOrmation]

 

:ADC?

Returns the latest values acquired by ADC

:CALibration?

Returns a list of the calibration parameters

:FAN?

Returns status of the cooling fan.

:PROTection?

Returns the information about all protections.

:TEST?

Returns results of the most recent self-test

DISPlay

 

:BRIGhtness {<value>}

Sets the intensity of the front panel TFT display

:CMAP {<palette>}

Sets color palette (theme)

:CMAP:COLor:CATalog?

Returns names and RGB values of all available colors

:CMAP:COLor[:RGB] {<name>, <red>, <green>, <blue>}

Sets RGB value for the selected color

:DATA?

Reads screen image data

:MODE {<mode>}

Sets the main page appearance

[:WINdow]

 

[:STATe] {<bool>}

Sets the front panel TFT display state

:TEXT {<message>}

Displays a message on the front panel TFT display

:CLEar

Clear a message on the front panel TFT display

INITiate

 

[:IMMediate]

Completes one full trigger cycle

:DLOG {<filename>}

Enables internal data log session

:CONTinuous {<bool>}

Enables/disables continuous transient triggers

INSTrument

 

[:SELect] {<channel>}

Selects the output to be programmed

:CATalog?

Returns a quoted string of the list of valid choices for the instrument channels

:FULL?

Returns a list of string – number pairs

:COUPle

 

:TRACking {<type>}

Selects independent, parallel-tracking, or series-tracking mode

:DISPlay

 

:TRACe[<n>] {<value>}

Selects output value on the specified display trace

:SWAP

Swaps positions of selected output values

:YT

 

:RATE {<duration>}

Selects YT view sample duration

:NSELect {<channel>}

Selects the output to be programmed

MEASure

 

[:SCALar]

 

:CURRent

 

[:DC]? [<channel>]

Takes a measurement; returns the average current

:POWer

 

[:DC]? [<channel>]

Takes a measurement; returns the average power

:TEMPerature

 

[:DC]? {<sensor>}

Takes a measurement; returns the average temperature

[:VOLTage]

 

[:DC]? [<channel>]

Takes a measurement; returns the average voltage

MEMory

 

:NSTates?

Returns total number of state storage memory locations

:STATe

 

:CATalog?

Lists the names associated with all ten state storage locations

:DELete {<profile>}

Deletes the contents of a state storage location

:ALL

Deletes the contents of all state storage locations

:NAME {<profile>, <name>}

Assigns a custom name to a state storage locations

:RECall

 

:AUTO {<bool>}

Specifies whether the power-down state is recalled from location 0 on power-on

:SELect {<profile>}

Specifies which BB3 state will be used at power on

:VALid? {<profile>}

Determines whether a storage location contains a valid state

MMEMory

 

:CATalog [<directory>]

Returns a list of items in the specified directory (folder)

:LENgth [<directory>]

Returns the number of items in the specified directory

:CDIRectory {<directory>}

Changes the current directory

:COPY {<source>}, {<destination>}

Copies <source> to <destination>

:DATE? {<filename>}

Returns date that the specified file was last saved

:DELete {<filename>}

Deletes an existing file

:DOWNload

 

:ABORt

Aborts current download session

:DATA :DATA {#<length>,<encoding>,<block>}

Downloads data from the host computer

:FNAMe {<filename>}

Creates or opens the specified filename for download data

:SIZE {<filesize>}

Sets information about file size used for progress bar

:LOAD

 

:LIST[<n>] {<filename>}

Loads stored LIST to the specified channel

:PROFile {<filename>}

Loads stored user profile

:STATe {<filename>}

Loads the instrument setup

:LOCK {<password>}

Sets write protection

:MDIRectory {<directory>}

Makes a new directory

:MOVE {<source>}, {<destination>}

Moves or renames <source> to <destination>

:RDIRectory {<directory>}

Removes the specified directory

:STORe

 

:LIST[<n>] {<filename>}

Saves specified channel LIST

:PROFile {<filename>}

Saves specified user profile

:STATe {<filename>}

Saves the instrument setup

:TIME? {<filename>}

Returns time that the specified file was last saved

:UNLock {<password>}

Clears write protection

:UPLoad? {<filename>}

Uploads data to the host computer

OUTPut

 

[:STATe] {<bool>}

Enables the specified output channel(s)

TRIGgered {<bool>} [, <channel>]

Controls channel output state with trigger

:MODE?

Returns the channel mode of operation

:PROTection

 

:CLEar

Resets latched protection

:COUPle {<bool>}

Enables channel coupling for protection faults

:TRACk[:STATe] {<bool>}

Enables channels to operate in the track mode

SIMUlator

 

:EXIT

Closes simulator

:GUI

Starts simulator’s GUI

:LOAD {<value>}

Sets value of the virtual load

:STATe {<bool>}

“Connects” virtual load to the channel output

:PIN1 {<bool>}

Sets value of the PIN1 input

:PWRGood {<bool>}

Sets the PWRGOOD signal state

:RPOL {<bool>}

Sets the RPOL signal state

:TEMP {<value>}

Sets the temperature sensor value

:VOLT:PROG:EXT {<voltage>}

Sets the output voltage when channel is in external programming mode

SENSe

 

:CURRent

 

[:DC]

 

RANGe[:UPPer] {<range>}

Selects a DC current measurement range

AUTO {<bool>}

Enables/disables seamless measurement auto ranging

:DLOG

 

:FUNCtion

 

:CURRent {<bool>}, {<channel>}

Enables/disables output current internal data logging

:POWer {<bool>}, {<channel>}

Enables/disables output power internal data logging

:VOLTage {<bool>}, {<channel>}

Enables/disables output voltage internal data logging

:PERiod {<time>}

Sets the sample period for internal data logging

:TIME {<time>}

Sets the sample duration for internal data logging

[SOURce[<n>]]

 

:CURRent

 

[:LEVel]

 

[:IMMediate][:AMPLitude] {<current>}

Sets the output current

:STEP[:INCRement] {<step>}

Sets the step of the current change

:TRIGgered [:AMPLitude] {<current>}

Sets the triggered output current

:LIMit

 

[:POSitive][:IMMediate][:AMPLitude] {<current>}

Sets the output current limit

:PROTection

 

:DELay

 

[:TIME] {<time>}

Sets the over-current protection (OCP) programming delay

:STATe {<bool>}

Enables/disables over-current protection on the selected channel

:TRIPped?

Returns status of over-current protection activation

:LIST

 

:COUNt

Sets the number of times that the list is executed

:CURRent[:LEVel]

Specifies the current setting for each list step

:DWELl

Specifies the dwell time for each list step

:VOLTage[:LEVel]

Specifies the voltage setting for each list step

:POWer

 

:LIMit {<power>}

Sets the output power limit

:PROTection[:LEVel]

Sets the over-power protection (OPP) level

:DELay

 

[:TIME] {<time>}

Sets the over-power protection programming delay

:STATe {<bool>}

Enables/disables over-power protection on the selected channel

:TRIPped?

Returns status of over-power protection activation

:VOLTage

 

[:LEVel]

 

[:IMMediate][:AMPLitude] {<voltage>}

Sets the output voltage

:STEP[:INCRement] {<step>}

Sets the step of the voltage change

:TRIGgered [:AMPLitude] {<voltage>}

Sets the triggered output voltage

:LIMit

 

[:POSitive][:IMMediate][:AMPLitude] {<voltage>}

Sets the output voltage limit

:PROGram[:SOURce] {<source>}

Sets voltage programming source

:PROTection[:LEVel]

Sets the over-voltage protection (OVP) level

:DELay

 

[:TIME] {<time>}

Sets the over-voltage protection (OVP) programming delay

:STATe {<bool>}

Enables/disables over-voltage protection on the selected channel

:TRIPped?

Returns status of over-voltage protection activation

:SENSe[:SOURce] {<source>}

Sets voltage sense inputs source

STATus

 

:OPERation

 

[:EVENt]?

Returns the value of the Operation Event register

:CONDition?

Returns the value of the Operation Instrument Condition register

:ENABle {<value>}

Enables specific bits in the Operation Event register

:INSTrument[<n>]

 

[:EVENt]?

Returns the value of the Operation Instrument Event register

:CONDition?

Returns the value of the Operation Instrument Condition register

:ENABle {<value>}

Enables specific bits in the Operation Instrument Event register

:ISUMmary<n>

 

[:EVENt]?

Returns the value of the Operation Instrument Isummary Event register

:CONDition?

Returns the value of the Operation Instrument Isummary Condition register

:ENABle {<value>}

Enables specific bits in the Operation Instrument Isummary Event register

:PREset

Presets all enable registers to power-on state

:QUEStionable

 

[:EVENt]?

Returns the value of the Questionable Event register

:CONDition?

Returns the value of the Questionable Condition register

:ENABle {<value>}

Enables specific bits in the Questionable Event register

:INSTrument[<n>]

 

[:EVENt]?

Returns the value of the Questionable Instrument Event register

:CONDition?

Returns the value of the Questionable Instrument Condition register

:ENABle {<value>}

Enables specific bits in the Questionable Instrument Event register

:ISUMmary<n>

 

[:EVENt]?

Returns the value of the Questionable Instrument Isummary Event register

:CONDition?

Returns the value of the Questionable Instrument Isummary Condition register

:ENABle {<value>}

Enables specific bits in the Questionable Instrument Isummary Event register

SYSTem

 

:BEEPer[:IMMediate]

Issues a single beep immediately

:STATe {<bool>}

Enables beeper function

:KEY

 

:STATe {<bool>}

Enables click tone for local control

:CAPability?

Returns an <instrument_specifier>

:CHANnel

 

[:COUNt]?

Returns the number of output channels

:INFOrmation

 

:AHOur

 

TOTal?

Returns channel’s total delivered energy in Ah

:CURRent?

Returns output current capability

:ONtime

 

LAST?

Returns time passed after last output enable

TOTal?

Returns channel’s total active time

:POWer?

Returns output power capability

:PROGram?

Returns programmable features of the channel

:VOLTage?

Returns output voltage capability

:WHOur

 

TOTal?

Returns channel’s total delivered energy in Wh

:MODel?

Returns the channel model identification

:COMMunicate

 

:ENABle {<bool>, <interface>}

Enables the remote interface

:ETHernet

 

:ADDRess {<ip_address>}

Sets the static LAN (IP) address

:DHCP {<bool>}

Enables the use of the Dynamic Host Configuration Protocol (DHCP)

:DNS <ip_address>

Sets the IP address of the DNS server.

:GATEway {<ip_address>}

Sets the IP address of the default gateway

:MAC?

Returns the MAC address

:PORT {<number>}

Sets the port number

:SMASk {<mask>}

Sets the static subnet mask

:NTP {<server>}

Set s NTP service server address

:RLSTate {<state>}

Places the instrument in remote or local mode

:SERial

 

:BAUD {<speed>}

Sets the baud rate (speed)

:PARity {<parity>}

Sets the parity mode

CPU

 

:INFOrmation

 

:ETHernet

 

:TYPE?

Returns the type of Ethernet controller

:ONtime

 

LAST?

Returns time passed after last power on

TOTal?

Returns BB3’s total active time

:TYPE?

Returns the type of CPU

:MODel?

Returns the control board model identification

:OPTion?

Returns information about installed options on the control board

:DATE {<yyyy>,<mm>,<dd>}

Sets the date of the system clock

:DIGital

 

:INPut:DATA? [<pin>]

Reads the state of the digital port pins

:OUTPut:DATA [<pin>] {<state>}

Sets the state of the digital port pins

:PIN<n>

 

:FUNCtion {<function>}

Sets the selected pin’s function

:POLarity {<polarity>}

Sets the selected pin’s polarity

:TOUTput

 

:BUS[:ENABle] {<Bool>}

Enables/disables BUS-generated triggers on digital pins

:ERRor

 

[:NEXT]?

Queries and clears errors from the error queue

:COUNt?

Queries the error/event queue for the number of unread items

:INHibit?

Queries system inhibit state

:KEY

 

:DEFine {<key>, <block>}

Sets the definition of the key

:DELete {<key>}

Removes the definition of the key

:KLOCk

Disables front panel [lock/unlock] icon

:LOCal

Places the BB3 in the local mode

:PASSword

 

:CALibration

 

:RESet

Resets the calibration password to initial value

:FPANel

 

:RESet

Resets the front panel lock password to initial value

:NEW {<old>, <new>}

Changes system password

:POWer {<bool>}

Enters the BB3 into the standby mode

:PROTection:TRIP {<bool>}

Enters the BB3 into the standby mode in case of protection trip

:REMote

Places the BB3 in the remote mode

:RWLock

Places the BB3 in the remote mode and disables front panel [lock/unlock] icon

:TEMPerature

 

:PROTection

 

[:HIGH]

 

[:LEVel] {<temperature>[, <sensor>]}

Sets the OTP value

:CLEar [, {<sensor>}]

Clears the latched protection status of the over-temperature protection (OTP)

:DELay

Sets time-out period

[:TIME] {<delay>[, <sensor>]}

Sets the OTP programming delay

:STATe {<bool>[, <sensor>]}

Enables/disables OTP on the selected temperature sensor

:TRIPped? [<sensor>]

Returns status of OTP activation

:TIME {<hh>,<mm>,<ss>}

Sets the time of the system clock

:DTS {rules}

Defines daylight saving time (DST) rules

:ZONE {zone}

Defines time zone

:VERSion?

Returns the SCPI version number

TRIGger

 

[:SEQuence]

 

[:IMMediate]

 

:DELay {<delay>}

Sets the time delay between the detection of a trigger event and the start of any corresponding trigger action

:EXIT

 

:CONDition {<condition}

Sets channel’s condition when LIST execution stopped

:SOURce {<source>}

Sets the trigger source

:DLOG

 

[:IMMediate]

 

:SOURce {<source>}

Sets the internal data logger trigger source

 

 

Add a comment

10.1. Set channel output values and working with the OCP

This is a SCPI commands sequence that sets a voltage, current, and the over-current protection (OCP) on the channel two:

 

INST?

Check currently selected output

1

 

INST CH2

Select channel two as current channel

VOLT 10

Set output voltage

CURR

Set output current

CURR:PROT:STAT?

Check OCP status

0

 

CURR:PROT:STAT 1

Enable OCP

CURR:PROT:DEL 100ms

Set OCP delay

OUTP 1

Enable output

MEAS?

Measure output voltage

10.00

 

MEAS:CURR?

Measure output current

0.00

Current is zero since no load is connected

 

If software simulator is used, connection of the load can be also simulated:

 

SIMU:LOAD 20

Define connected load impedance

MEAS?

Measure voltage once again

10.00

 

MEAS:CURR?

Measure current once again

0.50

Measured current

 

The following command sequence could be used to test channel mode with load previously defined and after the load impedance is lowered enough that output current reach programmed value. The OCP has to be disabled because previously defined 100 ms delay does not give us enough time to execute the whole sequence for testing channel mode and output voltage and current values:

 

OUTP:MODE?

Check mode of operation

"CV"

The channel is in constant-voltage mode since output current is below previously programmed level

SIMU:LOAD?

Check load value

10

 

CURR:PROT:STAT?

Check OCP status

1

 

CURR:PROT:STAT OFF

Disable OCP

SIMU:LOAD 4

Decrease load impedance

OUTP:MODE?

Check once again mode of operation

"CC"

Channel enters constant-current mode since Imax = U / R = 10 / 4 = 2.5 A and current is limited to the 1 A

MEAS:CURR?

Measure output current

1.00

 

MEAS?

Measure output voltage

4.00

Output voltage is decreased since U = I * R = 1 * 4 = 4 V

 

The OCP will “trip” when output current reach programmed value and channel stay in the CC mode for more then programmed OCP delay time. To test that with e.g. the software simulator we’ll disable channel output first, enable OCP and when change channel output back to enabled state:

 

OUTP OFF

Disable channel output

CURR:PROT:TRIP?

Check OCP status

0

OCP is not activated

CURR:PROT:STAT ON

Enable OCP

VOLT?

Check programmed output voltage

10.00

 

CURR?

Check programmed output current

1.00

 

SIMU:LOAD?

Check simulated load value

4

 

OUTP ON

Enable channel output

CURR:PROT:TRIP?

Check OCP status once again

1

OCP has been tripped

OUTP?

Check channel output state

0

Channel output is changed to OFF stated by the OCP

 

The channel output state cannot be changed to enabled until any of protection is active. We have to clear protection first. If the same load that caused the first protection trip is still connected the channel output will be disabled immediately after the protection programmed delay time expired. Therefore we also have to disconnect load or disable protection. The later method will be used in the command sequence that follows:

 

OUTP ON

First attempt to enable channel output

OUTP?

 

0

This attempt failed, the channel output remain disabled

OUTP:PROT:CLE

Channel protections reset

OUTP ON

Second to enable channel output

0

Channel output was enabled for a short time (100ms) and returns back to OFF state

CURR:PROT:TRIP?

Check OCP status

1

OCP has been tripped

OUTP:PROT:CLE

Reset channel protections once again

CURR:PROT:STAT OFF

Disable OCP

OUTP ON

Third attempt to enable channel output

OUTP?

 

1

Output is finally enabled

OUTP:MODE?

 

"CC"

Channel enters CC mode of operation

10.2. Voltage and current calibration

For optimum calibration results the following condition are recommended:

  • the calibration ambient temperature is stable and between 20 °C and 30 °C.
  • ambient relative humidity is less than 80 %.
  • Allow a one hour warm-up period before verification or calibration (use e.g. SYST:CHAN:INFO:ONT:LAST? or SYST:CPU:INFO:ONT:LAST? to get that info).
  • Use short and thick cables to connect test setups.

Step

Commands

Description

1

*RST

 

2

SYST:RWL

Make sure that BB3 is in remote mode and cannot be unlock from local console (TFT display)

3

INST {CH1|CH2}; OUTP ON

Select the channel to be calibrated and enable the channel output.

4

VOLT:PROT:STAT OFF

CURR:PROT:STAT OFF

POW:PROT:STAT OFF

Disable if required the voltage, current and power protections.

5

CAL ON, "<password>"

BB3 enters calibration mode on the channel selected in step 1. Both voltage and current on the selected channel are set to the MINimum value. The VOLT? and CURR? commands can be optionally used here to test channel output values.

6

 

For voltage calibration, connect a digital voltmeter (DVM) across the power module’s output terminals.

7

CAL:VOLT:LEV MIN

Set the channel to the low-end (MIN) calibration point.

8

CAL:VOLT 81.8MV

Enter the reading you obtained from the external DVM.

9

CAL:VOLT:LEV MID

Set the channel to the middle (MID) calibration point.

10

CAL:VOLT 19.68

Enter the reading you obtained from the DVM.

11

CAL:VOLT:LEV MAX

Set the channel to the high (MAX) calibration point.

12

CAL:VOLT 39.2

Enter the reading you obtained from the DVM.

13

 

For current calibration, connect current monitoring resistor (shunt) across the output terminals and connect the DVM across the shunt resistor. Its resistance has to be less then 5 Ω and rated for 25 W or more for measuring MAX current level.

14

 

Repeat step 7 through step 12 by substituting CURR for VOLT for current calibration. For example, CAL:CURR:LEV MIN.

15

CAL_CURR:RANG LOW

For low current range (i.e. 0 – 50 mA) calibration use this command to change the range and repeat once again procedure mentioned in step 14.

16

 

CAL:REM "<string>"

Record calibration information such as next calibration due date for future reference. The calibration string may contain up to 40 characters. You don’t need to enter current date and time since that information will be recorded automatically.

17

CAL:SAVE

Save to non-volatile memory new calibration data.

18

CAL OFF, "<password>"

BB3 exit calibration mode. Both voltage and current on the selected channel are again set to the MINimum value.

19

SYST:REM

Enable local console unlock. Alternatively SYST:LOC can be executed to make local console enabled again.

10.3. Working with profiles

The following command sequence could be used to store current set of parameters to the profile location 4 in the non-volatile memory:

 

MEM:STAT:VAL? 4

Check to see if profile selected location is empty

0

 

MEM:STAT:NAME? 4

We can also check that by querying profile location name

"--Not used--"

 

INST CH1

VOLT?;:CURR?;:OUTP?

Examine currently programmed output values of the first channel

0.00;0.00;0

 

INST CH2

VOLT?;:CURR?;:OUTP?

Examine currently programmed output values of the second channel

0.00;0.00;0

 

VOLT 12;:CURR 300mA

INST CH1

VOLT 12;:CURR 300mA

OUTP 1;:OUTP 1, CH2

Reprogram both channel output values that will be stored as a new profile

*SAV 4

All profile parameters is now storing on the selected location

MEM:STAT:NAME? 4

Check profile name

""

 

MEM:STAT:NAME 4, "Dual 12V/300mA, Output ON"

Set the profile name (only ASCII characters are allowed!)

MEM:STAT:NAME? 4

Check the profile name once again

"Dual 12V/300ma, Output ON"

 

 

We can now turn the BB3 off (when it enters the standby mode) turn it on again and check some of the programmed parameters:

 

SYST:POW 0

The BB3 enters the standby mode

SYST:POW 1

Returns back from the standby mode. Please note that this command can be executed with the minimum of 5 seconds delay otherwise a -200,"Execution error" will be generated (you can check that with the SYST:ERR? command)

VOLT?;:CURR?;:OUTP?

Query programmed voltage, current and output state of the currently selected channel

0.00;0.00;0

Returned data indicate that previously saved values in profile number 4 were not used

*RCL 4

VOLT?;:CURR?;:OUTP?

Recall parameters from desired location and execute query once again

12.00;0.30;1

The channel output values are now programmed using the selected profile

 

We can automate above mentioned process that channel profile parameters stored in non-volatile memory are using on power up. First we’ll check what is a current status of automatic recall and what profile will be used in the case of automatic recall:

 

MEM:STAT:REC:AUTO?

Query status of automatic profile recall during power on sequence

0

Automatic recall is turned off

MEM:STAT:REC:AUTO ON

Turn on automatic recall

MEM:STAT:REC:SEL?

Query which profile will be used when automatic recall is turned on

0

Selected profile was 0

MEM:STAT:REC:SEL 4

Change power on profile to 4

SYST:POW 0

Switch the BB3 to the standby mode once again

SYST:POW 1

Returns back from the standby mode. Again wait at least 5 seconds before enters this command

VOLT?;:CURR?;:OUTP?

Query programmed voltage, current and output state of the currently selected channel

12.00;0.30;1

The channel output values are programmed using the selected profile

10.4. Get identification info and self-test results

The BB3’s identification information could be beneficial when more then one instrument are controlled. Additionally in the following example information about self-test will be queried:

 

*IDN?

Query identification string

EEZ,1/50/03-1/40/05 (Due),00001,M1.0.93

BB3 with two different channels is identified, the first channel is 0-50V/3A and the second is 0-40V/5A. Serial number is 00001, and firmware version M1.0.93

*TST?

Execute self-test and query result

0

Self-test is passed

DIAG:TEST?

Query additional information about self-test

"1, CH1 IOEXP, installed, passed","1, CH1 DAC, installed, passed","1, CH1 ADC, installed, passed","1, CH2 IOEXP, installed, passed","1, CH2 DAC, installed, passed","1, CH2 ADC, installed, passed"

 

 

The self-test could be performed even when the BB3 is in the standby mode. We’ll first switch the BB3 into the standby mode. At the end of this example we are using additional diagnostic command that allows us to query information about channel’s ADC measurements.

 

SYST:POW 0

The BB3 enters the standby mode

DIAG:TEST?

Query additional information about self-test

 

Only STM32F7 MCU module diagnostic information is returned

SYST:POW 1

Returns back from the standby mode

DIAG:ADC?

Additional information about currently selected channel ADC inputs

"U_SET=12.02 V","U_MON=12.00 V","I_SET=0.30 A","I_MON=0.00 A"

U_SET and I_SET are measured values of the DAC outputs, U_MON and I_MON are actual output values. I_MON is 0 because no load is connected. A small difference between set and actual output voltage exists because calibration data are currently in use.

 

10.5. Programming output voltage using the list of values

The BB3 comes with simple “arbitary waveform generator” functionality that can be accomplished using the LIST commands. The following example changes in the loop output voltage between five output values each half a second long while current is set to 3 A.

 

INST CH1

Select the channel that has to be programmed

VOLT:MODE LIST

Set voltage programming mode to the list of values

LIST:VOLT 5, 10, 20, 40, 0

Define sequence of output voltage (could be up to 256 steps)

CURR:MODE LIST

Set current programming mode to the list of values.

LIST:CURR 3

Only one output current value is defined. Single value or number of values equivalent to other parameters (LIST:VOLT and LIST:DWEL) is allowed.

LIST:DWEL 0.5

Only one value for the duration of each step is chosen. Single value or number of values equivalent to other parameters (LIST:VOLT and LIST:CURR) is allowed.

LIST:COUN INF

Repeat continuously LIST sequence

TRIG:SOUR IMM

Define type of trigger. In this case the list execution will start immediately after INIT command is received.

INIT

Start the trigger.

 

Resulting output voltage and current waveform with connected load of 15 Ω is shown on the picture below.

 

 

Add a comment