USB System Entity

API Documentation: [cpp] [python] [.NET] [LabVIEW]

The USBSystem class provides high level control of the lower level Port Entity

Upstream Connection (Get/Set)

usbsystem . setUpstream => (unsigned char) enable
usbsystem . getUpstream <= (unsigned char) enable

Many acroname products have multiple upstream port selections. This function is used to access and control that functionality.

Upstream Connection HighSpeed (Get/Set)

usbsystem . setUpstreamHS => (unsigned char) enable
usbsystem . getUpstreamHS <= (unsigned char) enable

Many acroname products have multiple upstream port selections, some even have the ability to move just the HighSpeed or SuperSpeed signals. This function is used to access and control that functionality for the HighSpeed signals only.

Upstream Connection SuperSpeed (Get/Set)

usbsystem . setUpstreamSS => (unsigned char) enable
usbsystem . getUpstreamSS <= (unsigned char) enable

Many acroname products have multiple upstream port selections, some even have the ability to move just the HighSpeed or SuperSpeed signals. This function is used to access and control that functionality for the SuperSpeed signals only.

Enumeration Delay (Get/Set)

usbsystem . getEnumerationDelay <= (unsigned int) ms_delay
usbsystem . setEnumerationDelay => (unsigned int) ms_delay

Gets/Sets the inter-port enumeration delay in milliseconds. The enumeration delay sequentially enables data and power to downstream ports after the defined delay time. After setting and saving this parameter all downstream ports will be initially disabled upon system power-on or reset. Similarly, if there is no upstream connection, all downstream ports will be disabled. When an upstream connection is applied, or after the system boots, the system will wait for the defined delay time and enable the lowest port number. The system will then wait for the defined delay time and then enable the next highest port. This behavior repeats until all ports are enabled.

Inconsistent behavior from race conditions may occur if enumeration delay is used in conjunction with Reflex programs which also manipulate the downstream port states. Care should be taken to ensure no conflicts between the enumeration delay and Reflex programs.

Enabled List (Get/Set)

usbsystem . getEnabledList <= (unsigned int) list
usbsystem . setEnabledList => (unsigned int) list

The enabled list function provides state and control over all lower ports enables. It is equivalent to calling calling get/set enabled from the PortClass on all ports at once. The returned variable is in a bit mapped format. Please see the product data sheet for specific bit meanings.

Mode List (Get/Set)

usbsystem . getModeList <= (unsigned int [NUM_PORTS]) list
usbsystem . setModeList => (unsigned int [NUM_PORTS]) list

The mode list function gives you access and control to all lover level port modes. It is equivalent to calling get/set mode from the PortClass on all ports at once.

State List (Get)

usbsystem . getModeList <= (unsigned int [NUM_PORTS]) list
usbsystem . setModeList => (unsigned int [NUM_PORTS]) list

The state list function gives you access and control to all lover level port states. It is equivalent to calling get/set state from the PortClass on all ports at once.

Power Behavior (Get/Set)

usbsystem . getPowerBehavior <= (unsigned char) behavior
usbsystem . setPowerBehavior => (unsigned char) behavior

The power behavior controls how power will be allocated to each lower level port. This behavior comes into play when the requested power of the system exceeds the available power. i.e. first come first server, even distribution, priority list. See the product datasheet for specific implementations.

Power Behavior Config (Get/Set)

usbsystem . getPowerBehaviorConfig <= (unsigned int) config
usbsystem . setPowerBehaviorConfig => (unsigned int) config

Some power behaviors require a list of parameters in order to operate. For instance in priority list mode the user can supply a list of port indexes to priorities for power. This feature is product specific and users should consult the manual for further details.

Data Role Behavior (Get/Set)

usbsystem . getDataRoleBehavior <= (unsigned char) behavior
usbsystem . setDataRoleBehavior => (unsigned char) behavior

Some Type-C ports are capable of being dual role ports (DRP). Meaning they are capable of being either a host or a device. The behavior defined here will determine if that is allowed, what happens if it is, and what occurs when a host goes away. Examples are: first come first serve, priority list, static/fixed selection, etc. See the product datasheet for specific implementations.

Data Role Behavior Config (Get/Set)

usbsystem . getDataRoleBehaviorConfig <= (unsigned int) config
usbsystem . setDataRoleBehaviorConfig => (unsigned int) config

Many of the data role behaviors require a list of parameters in order to operate. For instance in a static/fixed mode the config would indicate what port is the upstream connection.

Data HighSpeed Max Datarate (Get/Set)

usbsystem . setDataHSMaxDatarate <= (unsigned int) config
usbsystem . getDataHSMaxDatarate => (unsigned int) config

The Max Datarate APIs will limit the device to a maximum specified datarate for the specific signal set. This API modifies the max datarate on the USB HighSpeed signals.

Enumeration

Name

Description

0

None

Configure HighSpeed Signals to no connection

1

Low Speed

Configure HighSpeed Signals to a maximum datarate of 1.5Mbps

2

Full Speed

Configure HighSpeed Signals to a maximum datarate of 12Mbps

3

High Speed

Configure HighSpeed Signals to a maximum datarate of 480Mbps

Data SuperSpeed Max Datarate (Get/Set)

usbsystem . setDataSSMaxDatarate <= (unsigned int) config
usbsystem . getDataSSMaxDatarate => (unsigned int) config

The Max Datarate APIs will limit the device to a maximum specified datarate for the specific signal set. This API modifies the max datarate on the USB SuperSpeed signals.

Enumeration

Name

Description

0

None

Configure SuperSpeed Signals to no connection

1

Super Speed

Configure SuperSpeed Signals to a maximum datarate of 5Gbps

2

Super Speed Plus

Configure SuperSpeed Signals to a maximum datarate of 10Gbps

Override (Get/Set)

usbsystem . getOverride <= (unsigned int) config
usbsystem . setOverride => (unsigned int) config

The system inherently goes towards compliant behavior, in some conditions you may not want compliant behavior and this is what the override bit field allows. There are the following override bits that can be set.

Bit

Name

Description

0

Auto Vbus Toggle Disable

This bit is used to disable the auto vbus toggle behavior on re-enumeration of the upstream port.

1

Vbus Detect Disable

This bit is used to disable the requirement of an upstream connection for enabling the hub chip.