The MAX3108 small form factor universal asynchronous
receiver-transmitter (UART) with 128 words each of
receive and transmit FIFOs is controlled through a serial
I2C or SPI™ controller interface. Auto-sleep and shutdown modes help reduce power consumption during
periods of inactivity. A low 500FA (max) supply current
and tiny 25-bump WLP (2.1mm x 2.1mm) package make
the MAX3108 ideal for low-power portable devices. The
MAX3108 operates from a supply voltage of 1.71V to 3.6V.
Baud rates up to 24Mbps make the MAX3108 suitable for
today’s high data rate applications. A phase-locked loop
(PLL), predivider, and fractional baud-rate generator allow
high-resolution baud-rate programming and minimize the
dependency of baud rate on reference clock frequency.
Four GPIOs can be used as inputs, outputs, or interrupt inputs.
When configured as outputs, they can be programmed to be
open-drain outputs and sink up to 20mA of current.
The MAX3108 is ideal for portable and handheld devices, is available in a 25-bump (2.1mm x 2.1mm) 0.4mm
pitch WLP package, and is specified over the -40NC to
+85NC extended temperature range.
Applications
Portable Communication Devices
Mobile Internet Devices
Low-Power Handheld Devices
Medical Systems
Point-of-Sale Systems
SPI is a trademark of Motorola, Inc.
IrDA is a service mark of Infrared Data Association Corporation.
Functional Diagram
Features
S 24Mbps (max) Baud Rate
S Integrated PLL and Divider
S 1.71V to 3.6V Supply Range
S High-Resolution Programmable Baud Rate
S SPI Up to 26MHz Clock Rate
S Fast Mode Plus I
S Automatic RTS and CTS Hardware Flow Control
S Automatic XON/XOFF Software Flow Control
S Special Character Detection
S 9-Bit Multidrop Mode Data Filtering
S SIR- and MIR-Compliant IrDA
S Flexible Logic Levels on the Controller and
2
C Up to 1MHz
SM
Encoder/Decoder
Transceiver Interfaces
S Four Flexible GPIOs
S Line Noise Indication
S Shutdown and Auto-Sleep Modes
S Low 35µA (max) V
S Register Compatible with the MAX3107
S Tiny, 25-Bump WLP Package (2.1mm x 2.1mm)
Note 1: Package thermal resistances were obtained using the method described in JEDEC specification JESD51-7, using a four-
layer board. For detailed information on package thermal considerations, refer to www.maxim-ic.com/thermal-tutorial.
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.
DC ELECTRICAL CHARACTERISTICS
(VCC = 1.71V to 3.6V, VL = 1.71V to 3.6V, V
VCC = 2.8V, VL = 1.8V, V
PARAMETERSYMBOLCONDITIONSMINTYPMAXUNITS
Digital Interface Supply VoltageV
Analog Supply VoltageV
UART Interface Logic Supply
Voltage
Logic Supply VoltageV
CURRENT CONSUMPTION
VCC Supply CurrentI
VCC Shutdown Supply CurrentI
VL Shutdown or Sleep Supply
Current
V
Shutdown Supply CurrentI
EXT
V18 Input Power-Supply Current
in Shutdown Mode
= 2.5V, TA = +25NC.) (Notes 2, 3)
EXT
V
CCSHDN
I
18SHDN
= 1.71V to 3.6V, TA = -40NC to +85NC, unless otherwise noted. Typical values are at
EXT
L
CC
EXT
CC
I
EXT
Internal PLL disabled and bypassed1.713.6
Internal PLL enabled2.353.6
Hold Time for START Condition
and Repeated START Condition
Low Period of the SCL Clockt
High Period of the SCL Clockt
Data Hold Time
Data Setup Timet
Setup Time for Repeated START
Condition
Rise Time of Incoming SDA and
SCL Signals
Fall Time of SDA and SCL
Signals
= 2.5V, TA = +25NC.) (Note 2)
EXT
XOSC
t
HD:STA
t
HD:DAT
SU:DAT
t
SU:STA
= 1.71V to 3.6V, TA = -40NC to +85NC, unless otherwise noted. Typical values are at
EXT
14MHz
CLK
f
REF
SCL
t
BUF
LOW
HIGH
t
R
t
F
Standard mode100
Fast mode plus1000
Standard mode4.7
Fast mode1.3
Fast mode plus0.5
Standard mode4.0
Fast mode0.6
Fast mode plus0.26
Standard mode4.7
Fast mode1.3
Fast mode plus0.5
Standard mode4.0
Fast mode0.6
Fast mode plus0.26
Standard mode00.9
Fast mode00.9
Fast mode plus0
Standard mode250
Fast mode plus50
Standard mode4.7
Fast mode0.2
Fast mode plus0.26
(VCC = 1.71V to 3.6V, VL = 1.71V to 3.6V, V
VCC = 2.8V, VL = 1.8V, V
PARAMETERSYMBOLCONDITIONSMINTYPMAXUNITS
Setup Time for STOP Conditiont
= 2.5V, TA = +25NC.) (Note 2)
EXT
SU:STO
MAX3108
Capacitive Load for SDA and
SCL
SCL and SDA I/O CapacitanceC
Pulse Width of Spike Suppressedt
SPI BUS: TIMING CHARACTERISTICS (Figure 2)
SCLK Clock Periodt
SCLK Pulse Width Hight
SCLK Pulse Width Lowt
CS Fall to SCLK Rise Time
MOSI Hold Timet
MOSI Setup Timet
Output Data Propagation Delayt
MISO Rise and Fall Timest
CS Hold Time
Note 2: All units are production tested at TA = +25NC. Specifications over temperature are guaranteed by design.
Note 3: Currents entering the IC are positive and currents exiting the IC are negative.
Note 4: When V18 is powered by an external voltage supply, it must have current capability above or equal to I18.
Note 5: Guaranteed by design; not production tested.
Note 6: CB is the total capacitance of either the clock or data line of the synchronous bus in pF.
CH+tCL
= 1.71V to 3.6V, TA = -40NC to +85NC, unless otherwise noted. Typical values are at
EXT
Standard mode4.7
Fast mode0.6
Fast mode plus0.26
Standard mode (Note 5)400
Analog Power Supply. VCC powers the PLL and internal LDO. Bypass VCC with a 0.1FF ceramic capacitor to AGND.
Serial-Data Output. When SPI/I2C is high, MISO/SDA functions as the SPI master input, slave output
(MISO). When SPI/I2C is low, MISO/SDA functions as the SDA, I2C serial-data input/output.
Active-Low Chip-Select and Address 0 Input. When SPI/I2C is high, CS/A0 functions as the CS, SPI
active-low chip-select. When SPI/I2C is low, CS/A0 functions as the A0 I2C device address programming input. Connect CS/A0 to DGND, VL, SCL, or SDA when SPI/I2C is low.
Active-Low Interrupt Open-Drain Output. IRQ is asserted when an interrupt is pending and during initial
power-up.
Digital Interface Power Supply. VL powers the internal logic-level translators for RST, IRQ, MOSI/A1, CS/A0,
SCLK/SCL, MISO/SDA, LDOEN, and SPI/I2C. Bypass VL with a 0.1FF ceramic capacitor to DGND.
Internal 1.8V LDO Output and 1.8V Power-Supply Input. Bypass V18 with a 0.1FF ceramic capacitor to
DGND.
Active-Low Reset Input. Drive RST low to force the UART into hardware reset mode. In hardware reset
mode, the internal PLL is shut down and there is no clock activity.
Serial-Clock Input. When SPI/I2C is high, SCLK/SCL functions as the SCLK SPI serial-clock input (up to
26MHz). When SPI/I2C is low, SCLK/SCL functions as the SCL, I2C serial-clock input (up to 1MHz in fast
mode plus).
Serial-Data Input and Address 1 Input. When SPI/I2C is high, MOSI/A1 functions as the SPI master
B4MOSI/A1
B5DGNDDigital Ground
C1AGNDAnalog Ground
MAX3108
C2LDOEN
C3N.C.Not Connected. Internally not connected.
C4GPIO0
C5GPIO1
D1XIN
D2XOUT
D3
D4GPIO3
D5
E1V
E2GPIO2
E3
E4TXSerial Transmitting Data Output
E5RXSerial Receiving Data Input. RX has an internal weak pullup resistor to V
SPI/I2CSPI Selector Input or Active-Low I2C. Drive SPI/I2C low to enable I2C. Drive SPI/I2C high to enable SPI.
CTSActive-Low Clear-to-Send Input. CTS is a flow-control status input.
EXT
RTSActive-Low Request-to-Send Output. RTS can be set high or low by programming the LCR register.
output-slave input (MOSI). When SPI/I2C is low, MOSI/A1 functions as the A1 I2C device address programming input. Connect MOSI/A1 to DGND, VL, SCL, or SDA when SPI/I2C is low.
LDO Enable Input. Drive LDOEN high to enable the internal 1.8V LDO. Drive LDOEN low to disable the
internal LDO. Supply V
General-Purpose Input/Output 0. GPIO0 is user-programmable as an input or output (push-pull or open
drain) or an external event-driven interrupt source. GPIO0 has a weak pulldown resistor to DGND when
configured as an input.
General-Purpose Input/Output 1. GPIO1 is user programmable as an input or output (push-pull or open
drain) or an external event-driven interrupt source. GPIO1 has a weak pulldown resistor to DGND when
configured as an input.
Crystal/Clock Input. When using an external crystal, connect one end of the crystal to XIN and the other
end to XOUT. When using an external clock source, drive XIN with the single-ended external clock.
Crystal Output. When using an external crystal, connect one end of the crystal to XOUT and the other
end to XIN. When using an external clock source, leave XOUT unconnected.
General-Purpose Input/Output 3. GPIO3 is user-programmable as input or output (push-pull or open
drain) or an external event-driven interrupt source. GPIO3 has a weak pulldown resistor to DGND when
configured as an input.
Transceiver Interface Power Supply. V
CTS, and GPIO_. Bypass V
General-Purpose Input/Output 2. GPIO2 is user programmable as input or output (push-pull or open
drain) or an external event-driven interrupt source. GPIO2 has a weak pulldown resistor to DGND when
configured as an input.
with an external voltage source when LDOEN is low.
18
powers the internal logic-level translators for RX, TX, RTS,
The MAX3108 universal asynchronous receiver-transmitter (UART) bridges an SPI/MICROWIREK or I2C
microprocessor bus to an asynchronous serial-data
communication link. The MAX3108 contains an advanced
UART, a fractional baud-rate generator, and four GPIOs.
Eight-bit registers configure and monitor the MAX3108
and are accessed through SPI or I2C, selectable by an
external pin. The registers are organized by related function as shown in the Register Map section.
The host controller loads data into the Transmit Hold
register (THR) through the SPI or I2C interface. This data
is automatically pushed into the transmit first-in/first-out
(FIFO), formatted, and sent out at TX. The MAX3108
adds START, STOP, and parity bits to the data before
transmitting at the selected baud rate. The clock configuration registers determine the baud rate, clock source,
and clock frequency prescaling.
The MAX3108 receiver detects a START bit as a highto-low transition on RX. An internal clock samples this
data at 16 times the baud rate. The received data is
automatically placed in the receive FIFO and can be
read out by the host microcontroller through the Receive
Hold register (RHR).
The MAX3108’s register set is compatible with the
MAX3107.
levels are programmed through the FIFOTrgLvl register
with a resolution of eight FIFO locations. The receive
FIFO trigger signals to the host either that the receive
FIFO has a defined number of words waiting to be read
out in a block or that a known number of vacant FIFO
locations are available and ready to be filled. The transmit FIFO trigger generates an interrupt when the transmit
FIFO fill level is above the programmed trigger level. The
host then knows to throttle data writing to the transmit
FIFO through THR.
The host can read out the number of words present in each of the FIFOs through the TxFIFOLvl and
RxFIFOLvl registers.
The contents of the TxFIFO and RxFIFO are both cleared
when the MODE2[1]: FIFORst bit is set high.
Transmitter Operation
Figure 3 shows the structure of the transmitter with the
TxFIFO. The transmit FIFO can hold up to 128 words of
data that are added by writing to the THR register.
The current number of words in the TxFIFO can be
manually read out by the host controller through the
TxFIFOLvl register. The transmit FIFO fill level can be
2
DATA FROM SPI/I
C INTERFACE
MAX3108
Register Set
The MAX3108 has a flat register structure without shadow
registers. The registers are 8 bits wide. The MAX3108
registers have some similarities to the 16C550 registers.
Receive and Transmit FIFOs
The UART’s receiver and transmitter each have a
128-word-deep FIFO, reducing the number of intervals
that the host processor needs to dedicate for highspeed, high-volume data transfer to and from the device.
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 use data block transfers to and 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
MICROWIRE is a trademark of National Semiconductor Corp.
programmed to generate an interrupt when more than a
programmed number of words are present in the TxFIFO
through the FIFOTrgLvl register. This TxFIFO interrupt
trigger level is selectable by the FIFOTrgLvl[3:0] bits.
When the transmit FIFO fill level increases beyond the
WORDERROR 128
FIFOTrgLvl[7:4]
RECEIVE FIFO
RxFIFOLvl
RHR
4
3
2
1
DATA
MSB
programmed trigger level, an interrupt is generated in
ISR[4]: TxTrgInt.
An interrupt is generated in ISR[5]: TFifoEmptyInt when
the transmit FIFO is empty. ISR[5] goes high when
the transmitter starts transmitting the last word in the
TxFIFO. An additional interrupt is generated in STSInt[7]:
TxEmptyInt when the transmitter completes transmitting
the last word.
To halt transmission, set the MODE1[1]: TxDisabl bit
high. After TxDisabl is set, the transmitter completes the
transmission of the current character and then ceases
transmission. Turn the transmitter off prior to enabling
auto software flow control and AutoRTS flow control.
The TX output logic can be inverted through the IrDA[5]:
TxInv bit. Unless otherwise noted, all transmitter logic
described in this data sheet assumes that TxInv is set
low.
Receiver Operation
The receiver expects the format of the data at RX to
be as shown in Figure 4. The quiescent logic state is
logic-high and the first bit (the START bit) is logic-low.
The 8-bit data word expected to be received LSB first.
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 5). The host reads the data out of the receive
FIFO by reading RHR, which comes out oldest data
first. The status and error information for the word most
recently read from RHR is located in the Line Status
register (LSR). After a word is read out of RHR, LSR
contains the status information for that word.
The following three error conditions are checked for each
received word: parity error, frame error, and noise on the
line. Parity errors are detected by calculating either even
or odd parity of the received word as programmed by
register settings. Framing errors are detected when the
received data frame does not match the expected frame
format in length. Line noise is detected by checking the
logical congruency of the three samples taken of each
bit (Figure 6).
The receiver can be turned off by setting the MODE1[0]:
RxDisabl bit high. After this bit is set high, the MAX3108
turns the receiver off immediately following the current
word and does not receive any further data.
1011
MAJORITY
CENTER
SAMPLER
PLLPREDIVIDER
PLLEn
1213141516
PLLBypass
BAUD-RATE
GENERATOR
The RX input logic can be inverted by setting the IrDA[4]:
RxInv bit high. Unless otherwise noted, all receiver logic
described in this data sheet assumes that RxInv is set
low.
Line Noise Indication
When operating in standard or 2x (i.e., not 4x) rate mode,
the MAX3108 checks that the binary logic level of the
three samples per received bit are identical. If any of
the three samples per received bit have differing logic
levels, then noise on the transmission line has affected
the received data and it 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.