Maxim MAX3420E User Manual

Maxim > App Notes > INTERFACE CIRCUITS
Keywords: USB, FAQ, MAX3420E, SPI, Peripheral, Controller.Interface
APPLICATION NOTE 3597
Aug 17, 2005
Frequently Asked Questions About the MAX3420E
Abstract: This application note lists Frequently Asked Questions (FAQs) about the MAX3420E peripheral controller with SPI interface.
1. What is the MAX3420E?
2. Does the MAX3420E include a microprocessor?
3. What packages are available for the MAX3420E?
4. Are the MAX3420E packages lead-free?
2. USB Questions
1. What USB speeds does the MAX3420E support?
2. Does the MAX3420E comply with the USB spec? Which revision?
3. How many endpoints does the MAX3420E support?
4. Why doesn't the MAX3420E support isochronous transfers?
5. Can I use the MAX3420E in a self-powered peripheral?
6. Can I use the MAX3420E in a bus-powered peripheral?
7. What external circuitry do I need to connect the MAX3420E to USB?
8. Can you recommend a 3.3V regulator?
9. What does the CONNECT bit do?
3. Interface Questions
1. How does a microprocessor connect to the MAX3420E?
2. You say the SPI interface is 3, 4 or 5 wires. What does this mean?
3. What SPI clocking modes does the MAX3420E support?
4. My CPU uses a 2.5 volt supply, but the MAX3420E uses a 3.3V VCC supply. Do I need external
level translators?
5. What is the purpose of the MAX3420E INT pin?
6. Does the MAX3420E support active-low wired-OR interrupts? How about edge active interrupts?
7. How fast can I run the MAX3420E SPI interface (SCLK max frequency)?
8. Is there a low limit to the MAX3420E SCLK frequency?
9. I have an 8-pin microprocessor, and it takes 5 of its' IO pins to connect to the MAX3420E. How
do I do IO?
10. Do I need to add external pullup resistors to the GPIN pins?
11. Can I drive optocouplers from the SPI interface pins?
12. What is the purpose of the VBCOMP pin? Does it power the MAX3420E?
4. Programming Questions
1. How does my firmware talk to the MAX3420E?
2. How do I program the MAX3420E to handle USB enumeration?
3. How do I program a BULK IN transfer?
4. What if a USB IN request comes in while firmware is loading the IN FIFO?
5. How do I know when to load an IN FIFO?
6. What if there is a USB transfer error? Do I need to write code to handle the error condition?
7. How do I program a BULK OUT transfer?
8. How about INTERRUPT transfers?
9. How do I program a SETUP transfer?
10. Do I need to program the USB data toggles?
11. The MAX3420E interrupt request bits are cleared by writing "1" to them. Is this backwards?
12. Do you have any programming tips?
5. Host Software Questions
1. How does my Windows application talk to the MAX3420E?
2. Does Maxim supply a custom Windows driver?
3. What example code does Maxim supply?
4. I want to design a MAX3420E-based device that does not conform to a standard Windows class.
What do I use for a Windows driver?
5. How does the MAX3420E compare with USB 'serial bridge' chips?
6. What are the advantages and disadvantages of the MAX3420E approach?
6. Miscellaneous Questions
1. Can my firmware determine which chip revision I have?
2. What is the current revision level of the MAX3420E?
1.
General Questions
1. What is the MAX3420E? The MAX3420E is a USB full-speed (12Mbps) peripheral controller with a built-in transceiver and
a USB serial interface engine (SIE) that handles the low-level USB signaling details.
2. Does the MAX3420E include a microprocessor? No. The MAX3420E is designed to interface easily to any microprocessor, DSP, or ASIC. This makes it possible to add USB to any system without switching processors or tool sets.
3. What packages are available for the MAX3420E? The MAX3420E is available in two packages. The 32-pin TQFP (7mm x 7mm body size) is good for prototyping and short production runs because it has package leads. The 24-pin TQFN package (5mm x 5mm body size, pads underneath the package) is ideal for high-volume compact devices.
4. Are the MAX3420E packages lead-free? Yes.
USB Questions
2.
1. What USB speeds does the MAX3420E support? The MAX3420E supports USB full-speed (12Mbps) operation as a peripheral.
2. Does the MAX3420E comply with the USB spec? Which revision? The MAX3420E is compliant with the USB 2.0 specification as it applies to full-speed operation.
3. How many endpoints does the MAX3420E support? The MAX3420E contains four endpoints:
EP0, bidirectional CONTROL endpoint, 64 byte FIFO.
EP1, OUT BULK or INT endpoint, 2 x 64 byte double-buffered FIFOS
EP2, IN BULK or INT endpoint, 2 x 64 byte double-buffered FIFOS
EP3, IN BULK or INT endpoint, 64 byte FIFO
With these endpoints, it is possible to build USB peripherals that support popular USB class drivers, such as a Human Interface Device (HID), Mass Storage, Picture Transfer Protocol (PTP), and Printer.
4. Why does the MAX3420E not support ISOCHRONOUS transfers? ISOCHRONOUS transfers require fast interfaces and large buffers, neither of which is consistent with the MAX3420E design goals (a low-cost part with an SPI interface that can run at any
speed). Most applications that seem to require ISOCHRONOUS bandwidth can actually be handled with BULK or INTERRUPT transfers. This is because most of the ISOCHRONOUS bandwidth available to a USB device in a system is also typically available for BULK/INT transfers.
5. Can I use the MAX3420E in a self-powered peripheral? Absolutely. In fact, the MAX3420E has features specifically intended to support self-powered applications. For example, in a self-powered application the peripheral needs to know when the device is plugged into a powered USB port. The MAX3420E's VBCOMP (V
connected to V
, and routed to an internal comparator that provides an interrupt request at
BUS
comparator) pin is
BUS
plug-in (VBUSIRQ) and another interrupt request at disconnect (NOVBUSIRQ). As another example for the MAX3420E, a bit called VBGATE (V
disconnect the D+ pullup resistor whenever V
BUS
gate) can be set to automatically
BUS
is detected to be off. This is a required USB
specification.
6. Can I use the MAX3420E in a bus-powered peripheral? Yes. In a bus-powered application, a 3.3V voltage regulator is connected to the USB connector's
pin. Whenever the peripheral is plugged into USB, the chip and the SPI master driving it are
V
BUS
powered. So there is no need to connect the MAX3420's VBCOMP pin to V
. In this case, the
BUS
VBCOMP input can be used as an extra general-purpose input. Care must be taken to ensure that input signals to this pin meet the threshold requirements noted in the
MAX3420 Electrical
Characteristics table.
7. What external circuitry do I need to connect the MAX3420E to USB? The MAX3420E requires a VCC supply of 3.3V. Bus-powered peripherals need a 3.3V regulator to
convert the power available on the V
pin (4.4V to 5.25V) to 3.3V. In addition, the MAX3420E
BUS
requires an external crystal (parallel resonant, 12MHz ±0.25%) with load capacitors from each pin to ground, and two series resistors (33
, 1%) between the D+/D- outputs, and the USB "B"
connector.
8. Can you recommend a 3.3V regulator? The MAX6349TL is ideal. It supplies 150mA at 3.3V, and contains a power-on-reset (POR) circuit which can be connected directly to the MAX3420E RES# pin. A good external POR circuit is important to have in a hot-plugged design such as a USB peripheral.
9. What does the CONNECT bit do? The MAX3420E has a switchable internal 1500 pullup resistor between its D+ pin and VCC. The
CONNECT bit operates this switch. This switch allows a bus- powered peripheral to delay connection to USB until it finishes initialization. It also allows a self-powered peripheral to remove V
from the pullup resistor in the absence of V
CC
, as required by the USB
BUS
Specification.
Interface Questions
3.
1. How does a microprocessor connect to the MAX3420E? The microprocessor connects to the MAX3420E by implementing an SPI master, using 3, 4, or 5 wires. Some microcontrollers include hardware SPI, but many do not. In this latter case, it is easy to implement an SPI master by bit-banging general-purpose IO pins.
2. You say the SPI interface is 3, 4, or 5 wires. What does this mean? The minimum SPI interface consists of three wires: SS# (Slave Select), SCLK (Serial Clock), and MISO (configured for bidirectional MISO/MOSI data). Since this interface does not use the INT pin, the controlling microprocessor would need to poll two interrupt-request registers to determine when the MAX3420E requires service.
Loading...
+ 5 hidden pages