# USB-3100 Series

The USB-3100 Series includes the following hardware:

- USB-3101, USB-3102, USB-3103, USB-3104, USB-3105, USB-3106
- USB-3110, USB-3112, USB-3114

The USB-3100 Series supports the following features.

## Analog output

Functions

UL: cbAOut(), cbAOutScan(), cbVOut()

UL for .NET: AOut(), AOutScan(), VOut()

Python for Windows: a_out(), a_out_scan(), v_out()

Options

SIMULTANEOUS (cbAOutScan() / AOutScan() / a_out_scan() only)

HighChan

USB-3101, USB-3102, and USB-3110: 0 to 3

USB-3103, USB-3104, and USB-3112: 0 to 7

USB-3105, USB-3106, and USB-3114: 0 to 15

Count

HighChan – LowChan + 1 max

Rate

Ignored

Range

Range is not programmable, and is set either with InstaCal or with the API – cbSetConfig() with BIDACRANGE when using the UL, SetDACRange() when using the UL for .NET, and set_config() with DACRANGE when using Python.

Range is ignored by cbAOut().

The Range value must be specified when using cbVOut()/VOut(), v_out(), as this function is not compatible with current output ranges.

DataValue

0 to 65,535 (Refer to 16-bit values using a signed integer data type for information on 16-bit values using unsigned integers.)

## Digital I/O

Configuration

Functions

UL: cbDConfigBit(), cbDConfigPort()

UL for .NET: DConfigBit(), DConfigPort()

Python for Windows: d_config_bit(), d_config_port()

PortNum

AUXPORT

PortType

AUXPORT

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 for AUXPORT

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 on AUXPORT

## Counter I/O

Functions

UL: cbCClear(), cbCIn()*, cbCIn32(), cbCLoad(), cbCLoad32()**

UL for .NET: CClear(), CIn()*, CIn32(), CLoad(), CLoad32()**

Python for Windows: c_clear(), c_in()*, c_in_32(), c_load()**, c_load_32()**

*Although cbCIn()/CIn()/c_in() are valid for use with this counter, cbCIn32()/CIn32()/c_in_32() may be more appropriate, since the values returned may be greater than the data types used by cbCIn(), CIn(), and c_in() can handle.

**cbCLoad()/cbCLoad32(), CLoad()/CLoad32(), and c_load()/c_load32() only accept Count=0. These functions are used to reset the counter.

CounterNum

1

Count

232-1 when reading the counter.

LoadValue

0 when loading the counter.

cbCLoad() and cbCLoad32() / CLoad() and CLoad32()are only used to reset the counter for this board to 0. No other values are valid.

The Basic signed integers guidelines in the Digital Input/Output Hardware topic apply when using cbCIn() or CIn() for values greater than 32,767 and when using cbCIn32() or CIn32() for values greater than 2,147,483,647.

RegNum

LOADREG1

## Miscellaneous

Functions

UL: cbFlashLED()

UL for .NET: FlashLED()

Python for Windows: flash_led()

Causes the LED on a USB device to blink. When you have several devices connected, use this function to identify a particular device.

## 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

Custom Serial No. text box

D/A ranges

Chan 0: through Chan 7: drop-down combo box

Simultaneous mode

Master radio button

Slave radio button

Hardware version

Listed as Firmware 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: cbGetConfig

ConfigItem = BIUSERDEVIDNUM

UL for .Net: GetUserDeviceIdNum()

Python for Windows: get_config()

config_item = USERDEVIDNUM

D/A Ranges

UL: cbGetConfig(), cbSetConfig()

ConfigItem = BIDACRANGE

DevNum = Channel number

ConfigVal = Range

UL for .NET: GetDACRange(), SetDACRange()

Python for Windows: get_config(), set_config()

config_item = DACRANGE

dev_num = channel number

config_val = ULRangeenum

Simultaneous mode

UL: cbGetConfig(), cbSetConfig()

ConfigItem = BISYNCMODE

ConfigVal = 0 (master), 1 (slave)

UL for .NET: GetSyncMode(), SetSyncMode()

Python for Windows: get_config(), set_config()

config_item = SYNCMODE

config_val = 0 (master), 1 (slave)

Hardware version

UL: cbGetConfigString()

ConfigItem = BIDEVVERSION

DevNum = VER_FW_MAIN

UL for .NET: GetDeviceVersion()

Type = VersionType.FW_MAIN

Python for Windows: get_config_string()

config_item = DEVVERSION

dev_num = MAIN

## Hardware considerations

##### Scan options

The SIMULTANEOUS scan option can only be used with cbAOutScan() / AOutScan() / a_out_scan().

##### Simultaneous mode

Set the direction of the SYNCLD pin (pin 49) with the Simultaneous Mode option in InstaCal to be either Master (output) or Slave (input).

- Specify the SIMULTANEOUS scan option and set the Simultaneous Mode option to "Master" to output the internal D/A LOAD signal on the SYNCLD pin.
- Specify the SIMULTANEOUS scan option and set the SIMULTANEOUS Mode option to "Slave" to configure the SYNCLD pin to receive the D/A LOAD signal from an external source. Output channels are updated simultaneously when the SYNCLD receives the signal.
- In slave mode, analog outputs may either be updated immediately or when a positive edge is seen on the SYNCLD pin (this is under software control.) The SYNCLD pin must be at a low logic level for DAC outputs to update immediately. If an external source is pulling the pin high, no update will occur.

When you do not specify SIMULTANEOUS, the analog outputs are updated in sequential order, and the SYNCLD pin is ignored.

##### External current limiting may be required for high drive devices (USB-3110, USB-3112, USB-3114)

The voltage outputs on the USB-3110, USB-3112, and USB-3114 incorporate high-drive current output capability. The high drive current outputs allow each of the voltage outputs to sink/source up to 40 mA (maximum) of load current.

The voltage outputs should not be kept in a short-circuit condition for longer than the specified 100 ms. For those applications that may potentially exceed the 40 mA maximum current limit or the 100 ms short-circuit condition, external current limiting must be used to prevent potential damage to the USB-3110.

##### Simultaneous update of voltage and current outputs (USB-3102, USB-3104, USB-3106)

Each voltage output channel on the USB-3102, USB-3104, USB-3106 has an associated current output channel. The voltage and current outputs are grouped as channel pairs. Each D/A converter output controls a voltage and current channel pair simultaneously. When you write to a voltage output, its associated current output is also updated.

Each voltage/current channel pair can be updated individually or simultaneously. Leave each pair of unused voltage and current outputs disconnected.