The MAX3107 is an advanced universal asynchronous
receiver-transmitter (UART) with 128 words each of
receive and transmit first-in/first-out (FIFO) that can be
controlled through I2C or high-speed SPI™. An internal
oscillator reduces the need for an external crystal or
clock source. The 2x and 4x rate modes allow a maximum of 24Mbps data rates. A phase-locked loop (PLL),
prescaler, and fractional baud-rate generator allow for
high-resolution baud-rate programming and minimize
the dependency of baud rate on reference clock frequency.
Autosleep and shutdown modes help reduce power
consumption during periods of inactivity. A low 640µA
(typ) supply current and tiny 24-pin TQFN (3.5mm x
3.5mm) package make the MAX3107 ideal for low-power
portable devices.
Integrated logic-level translation on the controller and
transceiver (RX/TX and RTS/CTS) interfaces enable use
with a wide selection of RS-232/RS-485 transceivers.
Automatic hardware and software flow control with
selectable FIFO interrupt triggering offloads low-level
activity from the host controller. Automatic half-duplex
transceiver control with programmable setup and hold
times allow the MAX3107 to be used in high-speed applications, for example Profibus-DP.
The MAX3107 is ideal for use in portable devices,
industrial applications, and automotive applications. The
MAX3107 is available in a 24-pin SSOP package and a
24-pin TQFN package. It is specified over the -40NC to
+85NC extended ambient temperature range.
Applications
Portable Devices
Industrial Control Systems
Fieldbus Networks
Automotive Infotainment Systems
Medical Systems
Point-of-Sale Systems
HVAC or Building Control
and Internal Oscillator
Features
S Tiny 24-Pin, Lead-Free TQFN (3.5mm x 3.5mm)
and 24-Pin, Lead-Free SSOP Packages
S Integrated Internal Oscillator
S 24Mbps (max) Data Rate
S Integrated PLL and Divider
S Fractional Baud-Rate Generator
S SPI Up to 26MHz Clock Rate
S Autotransceiver Direction Control
S Half-Duplex Echo Suppression
S Automatic RTS/CTS and XON/XOFF Flow Control
S Special Character Detection
S GPIO-Based Character Detection
S 9-Bit Multidrop-Mode Data Filtering
S SIR- and MIR-Compliant IrDA Encoder/Decoder
S +2.35V to +3.6V Supply Range
S Logic-Level Translation on the Controller and
Transceiver Interfaces (Down to 1.7V)
S Four Flexible GPIOs
S Line Noise Indication
S Shutdown and Autosleep Modes
S Low 640µA (typ) Supply Current at 1Mbaud and
20MHz Clock
S Low 20µA (typ) Shutdown Power
Ordering Information
PARTTEMP RANGEPIN-PACKAGE
MAX3107EAG+
MAX3107ETG+
+Denotes a lead(Pb)-free/RoHS-compliant package.
*EP = Exposed pad.
Note 1: Package thermal resistances were obtained using the method described in JEDEC specification JESD51-7, using a four-
Stresses beyond those listed under “Absolute Maximum Ratings” may cause permanent damage to the device. These are stress ratings only, and functional
operation of the device at these or any other conditions beyond those indicated in the operational sections of the specifications is not implied. Exposure to absolute
maximum rating conditions for extended periods may affect device reliability.
, XIN ................................................ -0.3V to +4.0V
EXT
+ 0.3V)
EXT
layer board. For detailed information on package thermal considerations, refer to www.maxim-ic.com/thermal-tutorial.
DC ELECTRICAL CHARACTERISTICS
(VA = +2.35V to +3.6V, VL = +1.71V to +3.6V, V
are at VA = +2.8V, VL = +1.8V, V
PARAMETERSYMBOLCONDITIONSMINTYPMAXUNITS
Digital Interface Supply VoltageV
Analog Supply VoltageV
UART Interface Logic Supply
Voltage
Logic Supply VoltageV
CURRENT CONSUMPTION
VA Supply CurrentI
VA Shutdown Supply CurrentI
VA Sleep Supply CurrentI
VL Supply CurrentI
V
Supply CurrentI
EXT
V18 Input Power-Supply Current
in Shutdown Mode
= +2.5V, TA = +25NC.) (Note 2)
EXT
L
A
V
EXT
18
A
A, SHDN
A, SLEEP
L
EXT
I
18SHDN
= +1.71V to +3.6V, TA = -40NC to +85NC, unless otherwise noted. Typical values
EXT
1.8MHz crystal oscillator active, PLL disabled, V
LDOEN
Baud rate = 1Mbps, external clock, SPI
frequency is 8MHz, external loopback PLL
disabled, V
Internal oscillator enabled, PLL = 6X,
TX-RX loopback, continuous data transmission at 115kbps, V
Shutdown mode, V
all inputs and outputs are idle
Sleep mode, V
inputs and outputs are idle
All logic inputs are at VL or V
All logic inputs are at VL or V
V
LDOEN
nal 1.85V voltage source), static power
consumption
Standard mode4.7
Fast mode1.3
Standard mode4.0
Fast mode0.6
Standard mode00.9
Fast mode00.9
Fs
Fs
Fs
Fs
SPI/I2C UART with 128-Word FIFOs
and Internal Oscillator
AC ELECTRICAL CHARACTERISTICS (continued)
(VA = +2.35V to +3.6V, VL = +1.71V to +3.6V, V
are at VA = +2.8V, VL = +1.8V, V
PARAMETERSYMBOLCONDITIONSMINTYPMAXUNITS
Data Setup Timet
Setup Time for Repeated START
(Sr) Condition
Rise Time of SDA and SCL
Signals Receiving
Fall Time of SDA and SCL
Signals
Setup Time for STOP (P)
Condition
Capacitive Load for SDA and
SCL (Note 3)
I/O Capacitance (SCL, SDA)C
Pulse Width of Spike
Suppressed
SPI BUS: TIMING CHARACTERISTICS (see Figure 2)
SCLK Clock Periodt
SCLK Pulse-Width Hight
SCLK Pulse-Width Lowt
CS Fall to SCLK Rise Time
DIN Hold Timet
DIN Setup Timet
Output Data Propagation Delay t
DOUT Rise and Fall Timest
CS Hold Time
Note 2: All devices are production tested at TA = +25NC. Specifications over temperature are guaranteed by design.
Note 3: Not production tested. Guaranteed by design.
Note 4: When V18 is powered by an external voltage regulator, the external power supply must have current capability above or
equal to I18.
Note 5: CB is the total capacitance of either the clock or data line of the synchronous bus in pF.
= +2.5V, TA = +25NC.) (Note 2)
EXT
SU:DAT
t
SU:STA
t
R
t
F
t
SU:STO
C
B
I/O
t
SP
CH+CL
CH
CL
t
CSS
DH
DS
DO
FT
t
CSH
= +1.71V to +3.6V, TA = -40NC to +85NC, unless otherwise noted. Typical values
EXT
Standard mode250
Fast mode100
Standard mode4.7
Fast mode0.6
Standard mode (0.3 x VL to 0.7 x VL)
(Note 5)
Fast mode (0.3 x VL to 0.7 x VL) (Note 5)
Standard mode (0.7 x VL to 0.3 x VL)
(Note 5)
Fast mode (0.7 x VL to 0.3 x VL) (Note 5)
Standard mode4.7
Fast mode0.6
Standard mode400
Fast mode400
SPI/I2C UART with 128-Word FIFOs
and Internal Oscillator
Pin Configurations
TOP VIEW
MAX3107
V
EXT
XOUT
XIN
AGND
RX
18 17 16 15 14 13
19
TX
20
21
22
23
V
24
A
+
123456
18
V
RTS/CLKOUT
CTS
MAX3107
LDOEN
I2C/SPI
TQFN
GPIO3
GPIO2
*EP
SCLK/SCL
DOUT/SDA
GPIO1
CS/A0
+
1
XIN
2
AGND
V
3
12
GPIO0
11
DGND
10
V
L
RST
9
IRQ
8
DIN/A1
7
V
I2C/SPI
LDOEN
DOUT/SDA
SCLK/SCL
CS/A0
DIN/A1
IRQ
RST
A
4
18
MAX3107
5
6
7
8
9
11
SSOP
24
XOUT
V
23
EXT
TX
22
RX
21
20
RTS/CLKOUT
CTS
19
18
GPIO3
GPIO2
17
16
GPIO1
1510GPIO0
DGND
14
1312V
L
(3.5mm × 3.5mm)
*CONNECT EP TO AGND.
Pin Descriptions
PIN
TQFN-EPSSOP
14V
25
36LDOEN
NAMEFUNCTION
18
I2C/SPI
Internal 1.8V LDO Output and 1.8V Logic Supply Input. Bypass V18 with a 0.1FF
ceramic capacitor to AGND.
SPI or Active-Low I2C Selector Input. Drive I2C/SPI high to enable SPI. Drive I2C/SPI
low to enable I2C.
LDO Enable Input. Drive LDOEN high to enable the internal 1.8V LDO. Drive LDOEN
low to disable the internal LDO. When LDO is low, V
nal voltage source.
can be supplied by an exter-
18
Serial-Data Output. When I2C/SPI is high, DOUT/SDA functions as the DOUT SPI
47DOUT/SDA
serial-data output. When I2C/SPI is low, DOUT/SDA functions as the SDA I2C serialdata input/output.
Serial-Clock Input. When I2C/SPI is high, SCLK/SCL functions as the SCLK SPI
58SCLK/SCL
serial-clock input (up to 26MHz). When I2C/SPI is low, SCLK/SCL functions as the
SCL I2C serial-clock input (up to 400kHz).
Active-Low Chip-Select and Address 0 Input. When I2C/SPI is high, CS/A0 functions
69
CS/A0
as the CS SPI active-low chip select. When I2C/SPI is low, CS/A0 functions as the
A0 I2C device address programming input. Connect CS/A0 to DGND or VL.
1821RXReceive Input. Serial UART data input. RX has an internal weak pullup resistor to V
1922TXTransmit Output. Serial UART data output.
2023V
2124XOUT
221XIN
232AGNDAnalog Ground
243V
——EP
NAMEFUNCTION
Serial-Data and Address 1 Input. When I2C/SPI is high, DIN/A1 functions as the DIN
SPI serial-data input. When I2C/SPI is low, DIN/A1 functions as the A1 I2C device
address programming input and connects to DIN/A1 DGND or VL.
IRQ
RST
L
CTSActive-Low Clear-to-Send Input. CTS is a flow-control input.
RTS/CLKOUT
EXT
A
Active-Low Interrupt Open-Drain Output. IRQ is asserted when an interrupt is
pending.
Active-Low Reset Input. Drive RST low to force the UART into hardware reset mode.
In hardware reset mode, the oscillator and the internal PLL are shut down; there is
no clock activity.
Digital Interface Logic-Level Supply. VL powers the internal logic-level translators for
RST, IRQ, DIN/A1, CS/A0, SCLK/SCL, DOUT/SDA, LDOEN, and I2C/SPI. Bypass VL
with a 0.1FF ceramic capacitor to DGND.
General-Purpose Input/Output 0. GPIO0 is user programmable as an input or output
(push-pull or open drain). GPIO0 has a weak pulldown resistor to ground.
General-Purpose Input/Output 1. GPIO1 is user programmable as an input or output
(push-pull or open drain). GPIO1 has a weak pulldown resistor to ground.
General-Purpose Input/Output 2. GPIO2 is user programmable as an input or output
(push-pull or open drain). GPIO2 has a weak pulldown resistor to ground.
General-Purpose Input/Output 3. GPIO3 is user programmable as an input or output
(push-pull or open drain). GPIO3 has a weak pulldown resistor to ground.
Active-Low Request-to-Send Output. RTS/CLKOUT can be set high or low by programming bit 7 (RTS) of the LCR register.
Transceiver Interface Level Supply. V
for RX, TX, RTS, CTS, and GPIO_. Bypass V
DGND.
Crystal Output. When using an external crystal, connect one end of the crystal to
XOUT and the other to XIN. When using an external clock source or the internal
oscillator, leave XOUT unconnected.
Crystal/Clock Input. When using an external crystal, connect one end of the crystal
to XIN and the other one to XOUT. When using an external clock source, drive XIN
with the external clock. When using the internal oscillator, leave XIN unconnected.
Analog Supply. VA powers the internal oscillators, PLL, and internal LDO. Bypass
VA with a 0.1FF ceramic capacitor to AGND.
Exposed Paddle. Connect EP to AGND. EP is not intended as an electrical connection point. Only for TQFN-EP package.
The MAX3107 UART is a bridge between an SPI/
MICROWIRE™ or I2C microprocessor bus and an
asynchronous serial-data communication link, such as
RS-485, RS-232, or IrDA. The MAX3107 contains an
advanced UART, a fractional baud-rate generator, and
four GPIOs. The MAX3107 is configured and monitored,
and data is written and read from 8-bit registers through
SPI or I2C. These registers are organized by related
function as shown in the Register Map.
The host controller loads and transmits data into the
Transmit Holding register (THR) through SPI or I2C. This
data is automatically pushed into the transmit FIFO and
sent out at TX. The MAX3107 adds START, STOP, and
parity bits to the data and sends the data out at the
selected baud rate. The clock configuration registers
determine the baud rate, clock source selection, and
clock frequency prescaling.
The receiver in the MAX3107 detects a START bit as a
high-to-low RX transition. An internal clock samples this
data. The received data is automatically placed in the
receive FIFO and can then be read out of the RxFIFO
through the RHR.
Register Set
The MAX3107 has a flat register structure without shadow registers. The registers are 8 bits wide. The MAX3107
registers have some similarities to the 16C550 registers.
Receive and Transmit FIFOs
The UART’s receiver and the transmitter each have a
128-word deep FIFO, reducing the intervals that the host
processor needs to dedicate for high-speed, high-volume data transfer. As the data rates of the asynchronous
RX, TX interfaces increase and get closer to those of the
host controller’s SPI/I2C data rates, UART management
and flow control can make up a significant portion of the
host’s activity. By increasing FIFO size, the host is interrupted less often and can utilize SPI/I2C burst data block
transfers to/from the FIFOs.
FIFO trigger levels can generate interrupts to the host
controller, signaling that programmed FIFO fill levels
have been reached. The transmitter and receiver trigger levels are programmed through FIFOTrgLvl with a
resolution of eight FIFO locations. When a receive FIFO
trigger is generated, the host knows that the receive
FIFO has a defined number of words waiting to be read
out or that a known number of vacant FIFO locations are
and Internal Oscillator
available and ready to be filled. The transmit FIFO trigger generates an interrupt when the transmit FIFO level
is above the programmed trigger level. The host then
knows to throttle data writing to the transmit FIFO.
The host can read out the number of words present in each
of the FIFOs through the TxFIFOLvl and RxFIFOLvl registers.
Transmitter Operation
Figure 3 shows the structure of the transmitter with the
TxFIFO. The transmit FIFO can hold up to 128 words that
are written to it through THR.
The current number of words in the TxFIFO can be read
out through the TxFIFOLvl register. The transmit FIFO
can be programmed to generate an interrupt when a
programmed number of words are present in the TxFIFO
through the FIFOTrgLvl register. The TxFIFO interrupt
trigger level is selectable through FIFOTrgLvl[3:0]. When
the transmit FIFO fill level reaches the programmed trigger level, the ISR[4] interrupt is set.
The transmit FIFO is empty when ISR[5]: TxEmtyInt is set.
ISR[5] turns high when the transmitter starts transmitting the last word in the TxFIFO. Hence, the transmitter
is completely empty after ISR[5] is set with an additional delay equal to the length of a complete character
(including START, parity, and STOP bits).
The contents of the TxFIFO and RxFIFOs are both
cleared through MODE2[1]: FIFORst.
2
TRIGGER
LEVEL
EMPTY
C INTERFACE
CURRENT FILL LEVEL
THR
FIFOTrgLvl[3:0]
TRANSMIT FIFO
TRANSMITTERTX
128
3
2
1
DATA FROM SPI/I
ISR[4]
TxFIFOLvl
ISR[5]
Figure 3. Transmit FIFO Signals
MAX3107
MICROWIRE is a trademark of National Semiconductor Corp.
SPI/I2C UART with 128-Word FIFOs
and Internal Oscillator
LSB
RECEIVED DATA
MIDDATA
SAMPLING
Figure 4. Receive Data Format
STARTD0D1D2D3D4D5D6D7PARITYSTOPSTOP
MAX3107
RX
BAUD
BLOCK
Figure 5. Midbit Sampling
To halt transmission, set MODE1[1]: TxDisabl to 1. After
MODE1[1] is set, the transmitter completes transmission
of the current character and then ceases transmission.
The TX output logic can be inverted through IrDA[5]:
TxInv. If not stated otherwise, all transmitter logic
described in this data sheet assumes IrDA[5] is 0.
The receiver expects the format of the data at RX to be
as shown in Figure 4. The quiescent logic state is a high
and the first bit (the START bit) is logic-low. The receiver
samples the data near the midbit instant (Figure 4). The
received words and their associated errors are deposited into the receive FIFO. Errors and status information
are stored for every received word (Figure 6). The host
reads data out of the receive FIFO through the Receive
Holding register (RHR), oldest data first. The status
information of the current word in the RHR is located in
the Line Status register (LSR). After a word is read out
of the RHR, the LSR contains the status information for
that word.
The following three error conditions are determined for
each received word: parity error, framing error, and
noise on the line. Line noise is detected by checking the
consistency of the logic of the three samples (Figure 5).
The receiver can be turned off through MODE1[0]:
RxDisabl. When this bit is set to 1, the MAX3107 turns the
receiver off immediately following the current word and
A
1
23456789
Receiver Operation
MSB
ONE BIT PERIOD
1011
MAJORITY
CENTER
SAMPLER
1213141516
does not receive any further data. The RX input logic can
be inverted through IrDA[4]: RxInv.
Line Noise Indication
When operating in standard (i.e., not 2x or 4x rate) mode,
the MAX3107 checks that the binary logic level of the
three samples per received bit are identical. If any of
the three samples have differing logic levels, then noise
on the transmission line has affected the received data
and is considered to be noisy. This noise indication is
reflected in the LSR[5]: RxNoise bit for each received
byte. Parity errors are another indication of noise, but are
not as sensitive.
Clocking and Baud-Rate Generation
The MAX3107 can be clocked by its internal oscillator,
an external crystal, or an external clock source. Figure 7
shows a simplified diagram of the clocking circuitry.
When the MAX3107 is clocked by the internal oscillator
or a crystal, the STSInt[5]: ClockReady indicates when
the clocks have settled and the baud-rate generator is
ready for stable operation.
The baud-rate clock can be routed to the RTS/CLKOUT
output. The clock rate is 16x the baud rate in standard
operating mode, and 8x the baud rate in 2x rate mode.
In 4x rate mode, the CLKOUT frequency is 4x the
programmed baud rate. If the fractional portion of the
baud-rate generator is used, the clock is not regular and
exhibits jitter.