What is the MAX3421E?
The MAX3421E is a USB controller that can function either as a USB peripheral or host. It builds on Maxim's MAX3420E peripheral-only controller, and features an SPI interface that can run up to 26MHz. The MAX3421E contains a full-/low-speed transceiver, a smart serial interface engine (SIE), and a register file accessible through an SPI interface.
Does the MAX3421E include a microcontroller?
No. Like the MAX3420E, the MAX3421E is designed to work with any controller, such as a microcontroller, DSP, or ASIC. It connects to an SPI master that can run up to 26MHz.
Is the MAX3421E a USB On-The-Go (OTG) device?
Not entirely. The MAX3421E is a dual-role (peripheral and host) USB controller, so it implements the digital portion of OTG. Although it does not contain VBUS
control and other analog details required by an OTG device, these functions can be added with external circuitry and controlled by the MAX3421E general-purpose IO pins.
What does "Smart SIE" mean?
SIE stands for Serial Interface Engine. The SIE converts signals received and sent by the USB transceiver into packets. An ordinary SIE does basic signal housekeeping, such as:
- CRC generation and error checking
- Bit stuffing
- Clock regeneration
- Sending and checking handshake packets
A smart SIE delves deeper into the USB protocol, handling higherlevel protocol issues so the programmer does not need to bother with them.
Here is an example. When a USB host sends an IN request to a peripheral and receives valid data but the wrong data toggle, what should the host do? A normal SIE would present the results (good data, bad toggle) to the microprocessor, and leave it to the firmware to respond correctly, according to the 622-page USB spec.
Here is what the MAX3421E's smart SIE does. The MAX3421E sends an ACK handshake, but does not complement its own data toggle or generate the interrupt request RCVDAV (Receive Data Available) which would indicate to the CPU that the received data is valid. If ACKing a packet with a bad toggle value sounds counter-intuitive, please review the MAX3421E Programming Guide
for more details. The MAX3421E handles this part of the USB protocol so the firmware does not have to.
For another example, as a host the MAX3421E's smart SIE automatically generates 1 millisecond
frame markers. The CPU connected to the MAX3421E launches host packets by writing a register called HXFR. If the CPU writes the HXFR register late in a frame and there is not enough time in the frame to avoid collision with the frame marker, the SIE automatically defers the sending transfer until the next frame.
How does the MAX3421E electrically differ from the MAX3420E?
Both devices have two voltage pins, VCC
serves as the threshold voltage for the on-chip level translators, which allow the parts to operate in mixed-voltage systems.
If you compare the two supply currents, ICC
, for the two parts, you see that they differ because:
- The MAX3420E powers its oscillator, PLL, and transceiver from VCC, and its digital logic from VL.
- The MAX3421E powers everything, oscillator, PLL, transceiver, and its digital logic from VCC. This results in a higher ICC than for the MAX3420E.
Is the MAX3421E a drop-in replacement for the MAX3420E?
No. The MAX3421 has more signal pins than the MAX3420E, and the MAX3421E TQFP package (5mm by 5mm) is smaller than the MAX3420E TQFP package (7mm by 7mm).
Is the MAX3421E code-compatible with the MAX3420E?
Yes. When the MAX3421E powers on or is reset, it defaults to peripheral mode with the same register set as the MAX3420E.
What USB transfer types and speeds does the MAX3421E support as a host?
The MAX3421E operates as a low-speed (1.5Mbps) or full-speed (12Mbps) host. At low speed, it supports CONTROL, BULK, and INTERRUPT transfers. At full-speed it supports CONTROL, BULK, INTERRUPT, and ISOCHRONOUS transfers.
Can the MAX3421E talk to low-speed devices connected to a hub?
Yes. The smart SIE manages the signaling details. If the host firmware sets a bit called HUBPRE to 1, the SIE automatically sends the full-speed PRE packet to the hub before reverting to low-speed signaling to the device.
Can the MAX3421E detect how it is attached—as peripheral or host?
Yes. If the design includes both an A and B USB connector, put the MAX3421E into host mode (HOST bit equals 1), switch on the internal DP/DM pulldown resistors, and supply 5V to the A-connector
pin. A MAX3421E interrupt signals that a device is attaching. On the B-connector,
connect the VBUS
pin to the MAX3421E VBCOMP (VBUS
Comparator) input. Then when the user connects to a PC, the MAX3421E detects VBUS
and the MAX3421E configures as a peripheral.
Can I electrically isolate the MAX3421E?
Yes. The MAX3421E's SPI interface is identical to the MAX3420E's SPI interface. Please review Section 3 of the MAX3420E application note, Frequently Asked Questions about the MAX3420E
on this subject.
What is added to the MAX3421E when operating as a USB peripheral that makes it different than the MAX3420E?
- The MAX3421E adds four general-purpose input pins, and four general-purpose output pins. This brings the GPIO total to eight in, eight out.
- The MAX3421E adds interrupt requests for the eight general-purpose input pins. Each pin has an interrupt enable bit and edge polarity bit associated with it.
- The MAX3421E has a bit called SEPIRQ. This bit allows the GPX pin to serve as a second interrupt output pin (in addition to INT), which is active only for the GPIN interrupts.
- The MAX3421E can program the time at which the INT pin deasserts and reasserts in edge interrupt mode when one interrupt is cleared and another is pending. The MAX3420E uses a fixed time of 10.6µs for this interval.
Does Maxim supply mass storage example code?
Refer to the USB software download page
, for the latest software downloads.
Is the MAX3421E USB-certified?
Yes, as a peripheral. Host certification is a relatively new USB testing concept, and Maxim intends to certify the MAX3421E as a USB host. You can check the Maxim web site for updates on USB certification, or sign up for automatic updates by email
as they become available.