© 2015 Exar Corporation
XR22804
16 / 47 exar.com/XR22804
Rev 1B
Automatic DTR / DSR hardware flow control
Auto DTR/DSR hardware flow control behaves the same as the Auto RTS/CTS hardware flow control described above
except that it uses the DTR# and DSR# signals. For Auto hardware flow control, FLOW_CONTROL[2:0] = ’001’. E[n]/DTR#/
G[n] and E[n]/DSR#/G[n] of each UART channel become DTR# and DSR#, respectively, when GPIO_MODE[2:0] = ’010’.
Automatic XON / XOFF software flow control
When software flow control is enabled, the XR22804 compares the receive data characters with the programmed Xon or
Xoff characters. If the received character matches the programmed Xoff character, the XR22804 will halt transmission as
soon as the current character has completed transmission. Data transmission is resumed when a received character
matches the Xon character. Software flow control is enabled when FLOW_CONTROL[2:0] = ’010’.
Automatic RS-485 half duplex control
The Auto RS-485 Half-Duplex Control feature changes the behavior of the E[n]/RTS#/RS485/G[n] pin of a UART channel
when enabled by the GPIO_MODE register bits 2-0. See GPIO_MODE Register Description on page 24. The FLOW_CON-
TROL register must also be set appropriately for use in multidrop applications. See FLOW_CONTROL Register Description
on page 22. If enabled, the transmitter automatically asserts the E[n]/RTS#/RS485/G[n] output prior to sending the data. By
default, it de-asserts E[n]/RTS#/RS485/G[n] following the last stop bit of the last character that has been transmitted, but
the RS485_DELAY register may be used to delay the deassertion. The polarity of the E[n]/RTS#/RS485/G[n] signal can
also be modified using the GPIO_MODE register bit 3.
Multidrop mode with address matching
The XR22804 device has two address matching modes which are also set by the flow control register using modes 3 and 4.
These modes are intended for a multi-drop network application. In these modes, the XON_CHAR register holds a unicast
address and the XOFF_CHAR holds a multicast address. A unicast address is used by a transmitting master to broadcast
an address to all attached slave devices that is intended for only one slave device. A multicast address is used to broadcast
an address intended for more than one recipient device. Each attached slave device should have a unique unicast address
value stored in the XON_CHAR register, while multiple slaves may have the same multicast adderss stored in the
XOFF_CHAR register. An address match occurs when an address byte (9th bit or parity bit is ’1’) is received that matches
the value stored in either the XON_CHAR or XOFF_CHAR register.
Multidrop mode receiver
If an address match occurs in either flow control mode 3 or 4, the UART Receiver will automatically be enabled and all sub-
sequent data bytes will be loaded into the RX FIFO. The UART Receiver will automatically be disabled when an address
byte is received that does not match the values in the XON_CHAR or XOFF_CHAR register.
Multidrop mode transmitter
In flow control mode 3, the UART transmitter is always enabled, irrespective of the RX address match. In flow control mode
4, the UART transmitter will only be enabled if there is an RX address match.
Programmable Turn-Around Delay
By default, the E[n]/RTS#/RS485/G[n] pin will be de-asserted immediately after the stop bit of the last byte has been shifted.
However, this may not be ideal for systems where the signal needs to propagate over long cables. Therefore, the de-asser-
tion of E[n]/RTS#/RS485/G[n] pin can be delayed from 1 to 15 bit times via the RS485_DELAY register to allow for the data
to reach distant UARTs.
Half-duplex mode
Half-duplex mode is enabled when FLOW_CONTROL[3] = 1. In this mode, the UART will ignore any data on the RX input
when the UART is transmitting data.
© 2015 Exar Corporation
XR22804
17 / 47 exar.com/XR22804
Rev 1B
EDGE - Enhanced Dedicated GPIO Entity
The XR22804 has 16 IO pins that may be assigned to the EDGE. By default, these pins are all assigned to the UART chan-
nel A and channel B functions, either to the UART data and / or flow control pins or to the UART GPIO. Note that UART
GPIO and EDGE have separate register controls. Pins assigned to the UART function cannot be controlled by the EDGE
registers and vice versa. To assign pins to the EDGE, use the EDGE_FUNC_SEL register. See EDGE_FUNC_SEL register
description on page 38.
The EDGE controller allows for GPIO signals to be individually set or cleared or to be grouped, such that the all pins in the
group can be simultaneously accessed for reads or writes. Note that on write accesses, output pins will change in 4-bit sub-
groups on core clock (60 MHz) boundaries. For example, if an 8 bit data group is defined and the data value is written from
0x00 to 0xFF, 4 bits would change from ’0’ to ’1’ followed by the next 4 bits one clock cycle (~ 17 ns) later.
EDGE IOs can be configured as inputs or outputs. Outputs can be configured as push-pull or open drain and can be tri-
stated. Inputs can be configured to generate interrupts to the USB host on either negative or postive edge transitions.
Another feature of the EDGE controller is that up to 2 GPIO pins within the EDGE can be assigned to pulse width modu-
lated (PWM) outputs. Each of the PWM outputs can be used to generate an output clock or pulse of varying duty cycle.
Both low and high cycles can be configured in steps of 267 ns up to 1.092 ms. The output can be controlled to generate a
single "one-shot" pulse or to free run. Refer to the EDGE_PWM0_CTRL and EDGE_PWM1_CTRL registers on page 44
and page 45 for control of PWM outputs.
I
2
C
The XR22804 implements an I
2
C multi-master using the control endpoint of the full-speed USB function to transfer data to
and from the I
2
C interface. The I
2
C master supports both standard (100 kbps) and fast (400 kbps) modes and supports mul-
tiple master configurations to allow other devices to access slave devices on the I
2
C. The I
2
C function is an HID function
and uses the native HID driver. It supports both 7 and 10 bit addressing modes.
Regulated 3.3V Power Output
The XR22804 internal voltage regulator provides 3.3 VDC output power which can be utilized by other circuitry. Refer to
Electrical Characteristics on page 3 for maximum power capability. For bus powered devices, significant utilization of the
3V3 output power may require increasing the maximum power request above the 250 mA default value from the USB host
by programming the OTP.
OTP
The OTP is an on-chip non-volatile memory, that is one-time programmable via the USB interface. Bit locations within the
memory may be programmed at various times allowing for customization of the XR22804. Some bits are pre-programmed
at the factory and caution must be taken not to program any locations except user defined addresses. Contact the factory
uarttechsupport@exar.com for information and assistance in programming the XR22804 OTP.
© 2015 Exar Corporation
XR22804
18 / 47 exar.com/XR22804
Rev 1B
USB Control Commands
The following table shows all of the USB Control Commands that are supported by the XR22804. Commands include stan-
dard USB commands, USB class specific CDC-ACM commands and USB vendor specific Exar commands.
Table 4: Supported USB Control Commands
Name
Request
Type
Request
Value Index Length
Description
LSB MSB LSB MSB LSB MSB
USB Standard Requests
DEV GET_STATUS 0x80 0x0 0x0 0x0 0x0 0x0 0x2 0x0
Device: remote wake-up +
self-powered
IF GET_STATUS 0x81 0x0 0x0 0x0 0x0 0x0 0x2 0x0 Interface: zero
EP GET_STATUS 0x82 0x0 0x0 0x0
0x0,
0x4,
0x84
0x0 0x2 0x0 Endpoint: halted
DEV CLEAR_FEATURE 0x00 0x1 0x1 0x0 0x0 0x0 0x0 0x0 Device remote wake-up
EP CLEAR_FEATURE 0x02 0x1 0x0 0x0
0x0,
0x4,
0x84
0x0 0x0 0x0 Endpoint halt
DEV SET_FEATURE 0x00 0x3 0x1 0x0 0x0 0x0 0x0 0x0 Device remote wake-up
EP SET_FEATURE 0x02 0x3 0x0 0x0
0x0,
0x4,
0x84
0x0 0x0 0x0 Endpoint halt
SET_ADDRESS 0x00 0x5 addr 0x0 0x0 0x0 0x0 0x0 addr = 1 to 127
GET_DESCRIPTOR 0x80 0x6 0x0 0x1 0x0 0x0
len
MSB
len
MSB
Device descriptor
GET_DESCRIPTOR 0x80 0x6 0x0 0x2 LangID LangID
len
MSB
len
MSB
Configuration descriptor
GET_DESCRIPTOR 0x80 0x6 0x0 0x3 0x0 0x0
len
MSB
len
MSB
String descriptor
GET_CONFIGURATION 0x80 0x8 0x0 0x0 0x0 0x0 0x1 0x0
SET_CONFIGURATION 0x00 0x9 n 0x0 0x0 0x0 0x0 0x0 n = 0, 1
USB Class Specific Requests
CDC_ACM_IF
SET_LINE_CODING
0x21 0x20 0x0 0x0 0x0 0x0 0x7 0x0
Set the UART baud rate,
parity, stop bits, etc.
CDC_ACM_IF
GET_LINE_CODING
0xA1 0x21 0x0 0x0 0x0 0x0 0x7 0x0
Get the UART baud rate,
parity, stop bits, etc.
CDC_ACM_IF
SET_CONTROL_
LINE_STATE
0x21 0x22 0x0 0x0 0x0 0x0 0x7 0x0
Set/Clear DTR in CDC-
ACM mode.
CDC_ACM_IF
SEND_BREAK
0x21 0x23
val
LSB
val
MSB
0x0 0x0 0x0 0x0
Send a break for the
specified duration.

XR22804IL56-F

Mfr. #:
Manufacturer:
MaxLinear
Description:
I/O Controller Interface IC Hi-Speed USB 10/100 Eth Brdg w 4CH UART
Lifecycle:
New from this manufacturer.
Delivery:
DHL FedEx Ups TNT EMS
Payment:
T/T Paypal Visa MoneyGram Western Union

Products related to this Datasheet