© 2014 Exar Corporation
XR22801
10 / 40 exar.com/XR22801
Rev 1A
USB Device Drivers
Each of the functions in the XR22801 require a USB device driver for operation. Both the I
2
C and EDGE functions conform
to the HID device class and as such, utilize the embedded HID driver that is native to each Operating System. The Ethernet
function conforms to the CDC device class and as such can utilize an embedded CDC-ECM driver. However, at the time of
this writing, none of the Microsoft OS provide support for CDC-ECM embedded drivers. Both Linux and Mac OS-X platforms
do support CDC-ECM drivers.
The CDC-ECM is a "standard" driver which implements functionality on a specific class of devices. They operate without
any ability to access device specific register sets. In some cases, this can limit the functionality and / or throughput capabil-
ity of the XR22801. Exar provides a custom Ethernet device driver which has been optimized for the best possible data
through-put in Windows and Linux platforms. This custom driver also allows for access to the device register set and thus
full control of the XR22801 device functionality. Refer to 10/100 Ethernet section on page 10 for more details.
The UART function can be used with either a standard CDC-ACM driver or a custom driver. When the CDC-ACM driver is
used, the driver has no ability to read or write the XR22801 device registers. Because of this, the XR22801 device is initial-
ized to the settings in Table3. With a custom driver, all GPIOs default in hardware to inputs but these settings may be mod-
ified by a custom driver.
These default settings can be overridden by programming the OTP.
If a custom driver is used, the CUSTOM_DRIVER_ACTIVE bit should be immediately set to ’1’ by the USB UART driver.
Once the CUSTOM_DRIVER_ACTIVE bit is set, the custom driver can use standard CDC-ACM commands without config-
uring the device to the default register settings used with the CDC-ACM driver. Any changes to the register settings for the
GPIOs and flow control will specifically need to be configured by the driver / application software. Although there is no ability
to read / write registers when using the CDC-ACM driver, basic UART functions, including setting baud rate, character for-
mat and sending line break is supported by the CDC driver. Refer to the 4 CDC_ACM_IF USB Control Commands listed in
Table 4 .
10/100 Ethernet
The Ethernet port is a 10/100 Ethernet MAC and Phy compliant with IEEE 802.3. The Ethernet port supports speed /
duplex auto-negotiation, auto-MDIX, 10 Mbps data auto-polarity, full and half duplex data rates at 10 and 100 Mbps, gener-
ates and validates the 32-bit FCS, and performs unicast and multicast filtering. The XR22801 also performs TCP, UDP and
ICMP checksum offload over IPV4 and IPV6 as well as header checksum offload in IPV4. On chip RAM provides all
required packet buffering.
In Windows OS, using the Exar custom Ethernet driver, the properties dialog, advanced properties can be used to set the
pause frame flow control, speed and duplex, auto-negotiation, checksum offload, and Ethernet remote wakeup settings. By
default, the Ethernet MAC will honor incoming pause frames sent by a peer Ethernet device, but will not generate pause
frames. Auto-MDIX is always enabled.
Ethernet Remote Wakeup
If the XR22801 hub is configured as a self-powered device and has Ethernet remote wakeup enabled, the XR22801 will
request the USB host to resume in response to a magic packet or a link state change on the Ethernet port. When the USB
Table 3: XR22801 Register Defaults With CDC-ACM Driver
Register Value Notes
Flow Control 0x001 Hardware Flow Control
GPIO_MODE 0x001 RTS / CTS Flow Control
GPIO_DIRECTION 0x008 E3/DTR#/G3 is configured as an output
GPIO_INT_MASK 0x030 E0/RI#/RWK#/G0, E1/CD#/G1 and E2/DSR#/G2 are
interrupt sensitive, i.e. can cause a USB interrupt to
be generated