# USB-2020

The USB-2020 supports the following features.

## Analog Input

Functions

UL: cbAIn(), cbAInScan(), cbALoadQueue(), cbATrig(), cbFileAInScan()

UL for .NET: AIn(), AInScan(), ALoadQueue(), ATrig(), FileAInScan()

Python for Windows: a_in(), a_in_scan(), a_load_queue(), a_trig()

Options

BACKGROUND, BLOCKIO, BURSTIO*, CONTINUOUS, EXTCLOCK, EXTTRIGGER**, NOCALIBRATEDATA, RETRIGMODE***, SCALEDATA, SINGLEIO

* The packet size is 64 megasamples, max, when set to BURSTIO.

** For analog triggers, the first channel in the scan is the analog trigger channel.

*** RETRIGMODE is supported for digital trigger types only.

Packet size

Rate-dependent

HighChan

0 to 1

Rate

Up to 8 MS/s; system-dependent.
Up to 20 MS/s with BURSTIO enabled.

Range

BIP10VOLTS (±10 volts) | BIP2VOLTS (±2 volts)
BIP5VOLTS (±5 volts) | BIP1VOLTS (±1 volts)

Pacing

Hardware pacing, internal clock supported. External clock supported via the CLK IO signal on the BNC connector.

## Triggering

Functions

UL: cbSetTrigger()
UL for .NET: SetTrigger()

Python for Windows: set_trigger()

TrigType

Analog: GateAbove, GateBelow, GateInWindow, GateOutWindow, TrigAbove, TrigBelow, TrigRising, TrigFalling
Digital: GateHigh, GateLow, TrigHigh, TrigLow, TrigPosEdge, TrigNegEdge

Threshold

0 to 4,095

## Digital I/O

##### Port I/O

Functions

UL: cbDIn(), cbDOut()

UL for .NET: DIn(), DOut()

Python for Windows: d_in(), d_out()

PortNum

AuxPort

DataValue

0 to 255

##### Bit I/O

Functions

UL: cbDBitIn(), cbDBitOut()

UL for .NET: DBitIn(), DBitOut()

Python for Windows: d_bit_in(), d_bit_out()

PortType

AuxPort

BitNum

0 to 7

## Counter I/O

Functions

No counter functions are supported.

## Event Notification

Functions

UL: cbDisableEvent(), cbEnableEvent()

UL for .NET: DisableEvent(), EnableEvent()

Python for Windows: enable_event(), disable_event()

Types

ON_DATA_AVAILABLE, ON_END_OF_INPUT_SCAN

## Miscellaneous

Functions

UL: cbFlashLED()

UL for .NET: FlashLED()

Python for Windows: flash_led()

Causes the LED on a Measurement Computing USB device to blink. When you have several USB devices connected to the computer, use this function to identify a particular device by making its LED blink.

## Configuration

This hardware supports device detection with the API. Refer to the InstaCal, API Detection, or Both? section for information about whether to use InstaCal or the API to detect and configure hardware.

#### InstaCal

Factory serial number

Listed as Factory Serial No. (read only)

Identifier

Identifier text box

Enable pacer output

Enable pacer output checkbox

Hardware version

Listed as Firmware Version (read only)

Listed as FPGA Version (read only)

#### Programmable API Functions

Factory serial number

UL: cbGetConfigString()

ConfigItem = BIDEVSERIALNUM

UL for .NET: GetDeviceSerialNum()

Python for Windows: get_config_string()

config_item = DEVSERIALNUM

Identifier

UL: cbGetConfigString(), cbSetConfigString()

ConfigItem = BIUSERDEVID

maxConfigLen = up to 64 characters

UL for .Net: GetUserDeviceId(), SetUserDeviceId()

Python for Windows: get_config_string(), set_config_string()

config_item = USERDEVID

max_config_len = up to 64 characters

Enable pacer output

UL: cbGetConfig(), cbSetConfig()

ConfigItem = BIINPUTPACEROUT

UL for .NET: GetInputPacerOut(), SetInputPacerOut()

Python for Windows: get_config(), set_config()

info_type = BOARDINFO

config_item = INPUTPACEROUT

config_val = State enum

Hardware version

UL: cbGetConfigString()

ConfigItem = BIDEVVERSION

DevNum = VER_FW_MAIN, VER_FPGA

UL for .NET: GetDeviceVersion()

Type = VersionType.FW_MAIN

Type = VersionType.FW_FPGA

Python for Windows: get_config_string()

config_item = DEVVERSION

dev_num = MAIN

dev_num = FPGA

## Hardware Considerations

##### Channel gain queue

The channel-gain queue is limited to two elements. The gains may be any valid value. The channels specified must be unique and listed in consecutive order.

##### Buffer size limitations on Windows systems

When creating very large buffers in Windows, you may receive the message "The requested amount of Windows page-locked memory is not available" when you attempt to start a scan. This occurs when there is enough memory to create the data buffer, but it can't be locked down. If you receive this message, change the data transfer mode from kernel mode to user mode by calling cbSetConfig()/SetAdXferMode() with the following argument values:

InfoType = BOARDINFO

ConfigItem = BIADXFERMODE (Python for Windows: config_item = ADXFERMODE)

ConfigVal = XFER_USER (Python for Windows: config_val = XferModeenum)

Note: When user mode transfer is enabled, all of the enabled events using cbEnableEvent()/EnableEvent()/enable_event() are ignored when an input scan function is called.