# USB-4300 Series

The USB-4300 Series includes the following hardware:

- USB-4301
- USB-4302
- USB-4303
- USB-4304

The USB-4300 Series supports the following UL and UL for .NET features.

## Counter I/O

Functions

UL: cbC9513Config(), cbC9513Init(), cbCStoreOnInt(), cbCFreqIn(), cbCIn(), cbCIn32(), cbCLoad(), cbCLoad32()

UL for .NET: C9513Config(), C9513Init(), CStoreOnInt(), CFreqIn(), CIn(), CIn32(), CLoad() CLoad32()

CounterNum

USB-4301 and USB-4302: 1 through 5

USB-4303 and USB-4304: 1 through 5, and 6 through 10

RegNum

USB-4301 and USB-4302:

LOADREG1 – 5, HOLDREG1 – 5, ALARM1CHIP1, ALARM2CHIP1

USB-4303 and USB-4304:

LOADREG1 – 10, HOLDREG1 – 10, ALARM1CHIP1, ALARM1CHIP2, ALARM2CHIP1, ALARM2CHIP2

LoadValue

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

ChipNum

USB-4301: 1

USB-4302: 1

USB-4303: 1, 2

USB-4304: 1, 2

FOUT Source

CTRINPUT1 – 5, GATE1 – 5, FREQ1 – 5

These values refer to the sources on a particular 9513 chip, so are limited to the sources on that particular chip. For example, to set the source to the input for counter 6, use CTRINPUT1 (the first counter on the second 9513 chip).

CountSource

- TCPREVCTR
- CTRINPUT1 – 5
- GATE1 – 5
- FREQ1 – 5

These values refer to the sources on a particular 9513 chip, so are limited to the sources on that particular chip. For example, to set the source to the input for counter 6, use CTRINPUT1 (the first counter on the second 9513 chip). Likewise for the TCPREVCTR value: when applied to the first counter on a chip (for counter 6, the "previous counter" is counter 5 on that chip (for this example, counter 10).

## Digital I/O

Port I/O

Functions

UL: cbDIn(), cbDOut()

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

PortNum

AUXPORT*

DataValue

0 to 255

* AUXPORT is not configurable for these boards

Bit I/O

Functions

UL: cbDBitIn(), cbDBitOut()

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

BitNum

0 to 7

* AUXPORT is not configurable for these boards.

## Event Notification

Functions

UL: cbEnableEvent(), cbDisableEvent()

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

EventType

ON_EXTERNAL_INTERRUPT

EventParameter

LATCH_DI, LATCH_DO

LATCH_DI can only be used with cbDIn() and cbDBitIn(). LATCH_DO can only be used with cbDOut() and cbDBitOut().

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

Clock speed

Clock Speed drop-down combo box.

Interrupt edge

Interrupt Edge drop-down combo box for Rising or Falling.

Hardware version

Listed as Firmware Version (read only)

#### Programmable API Functions

Factory serial number

UL: cbGetConfigString()

ConfigItem = BIDEVSERIALNUM

UL for .NET: GetDeviceSerialNum()

Identifier

UL: cbGetConfig()

ConfigItem = BIUSERDEVIDNUM

maxConfigLen = up to 64 characters

UL for .Net: GetUserDeviceIdNum()

Clock speed

UL: cbGetConfig(), cbSetConfig()

ConfigItem = BICLOCK

Configval = 1 (1 MHz), 2 (1.66 MHz), 3 (3.33 MHz), 5 (5 MHz),

UL for .NET: GetClock(), SetClock()

Interrupt edge

UL: cbGetConfig(), cbSetConfig()

ConfigItem = BIINTEDGE

Configval = 0 (Rising Edge), 1 (Falling Edge)

UL for .NET: GetIntEdge() , SetIntEdge()

Hardware version

UL: cbGetConfigString()

ConfigItem = BIDEVVERSION

DevNum = VER_FW_MAIN

UL for .NET: GetDeviceVersion()

Type = VersionType.FW_MAIN

## Hardware considerations

##### Clock input frequency

The clock speed is configurable with InstaCal for 1 MHz, 1.67 MHz, 3.33 MHz, or 5 MHz.

##### Event notification

ON_EXTERNAL_INTERRUPT cannot be used with cbCStoreOnInt() or CStoreOnInt().

##### Interrupt Input pin

You can configure the Interrupt Input pin (INT) with InstaCal to trigger off rising or falling edge inputs. You can program this pin to perform the following tasks:

- Send an event notification to the computer. The transfer rate is system-dependent.
- Latch digital input data.
- Latch digital output data.
- Save the current value of a counter. You can configure this option for each counter individually.

##### Digital bit latching

Digital input bit latching is supported by cbDIn() and cbDBitIn(). Digital output bit latching is supported by cbDOut() and cbDBitOut().

- Use the EventParam option LATCH_DI with cbDIn() and cbDBitIn() to return the data that was latched in at the most recent interrupt edge. The current value of the digital inputs (0 or 1) is read and stored. The stored value is updated when an active edge occurs on the Interrupt Input pin (INT).
- There is a latency period between when an active interrupt edge occurs on the INT pin and when the action triggered by that interrupt occurs. This latency can be as long as 100 µs, but typically varies from about 9 µs to about 40 µs between interrupts.
- Use the EventParam option LATCH_DO with cbDOut() and cbDBitOut() to latch out the data most recently written to the device. The digital outputs are not set to the value written until an active edge occurs on the Interrupt Input pin (INT).