MAX3420 - Maxim USB Peripheral Controller
Maxim » MAX3420
The MAX3420 is a USB peripheral controller chip with an SPI bus. This page hopefully contains enough information to help you easily make use of the device in your projects.
The MAX3420 provides a very simple approach to adding a USB interface to a circuit. It uses a SPI bus to connect to your system. It does require a reasonable amount of configuration and control, so you'll need to connect it to some form of microprocessor/microcontroller.
The photos below show a PCB containing a MAX3420 device. The board is designed to connect to a Digilent XUP-V2Pro FPGA development board.
Circuit & PCB
Below are the Schematic and PCB layouts for the board. Use the link below to download the Eagle CAD files.
The board is driven by a 3.3V supply. The connector pin arrangement allows it to be plugged directly into header J5 of a Digilent XUP-V2Pro FPGA development board, as shown in the right-hand photo above.
Below is an example setup of using the MAX3420 to connect a PC and a microcontroller embedded on an FPGA. There are 3 main custom parts to this system.
Information on the MAX3420 has already been given above. Details on the Linux device driver and the EDK Peripheral are given below.
Linux Host Driver
You will need a kernel driver in order to send and receive data from the MAX3420 chip. Below is a basic USB driver that will do this. Hopefully all you'll need to do is download the gzipped tar, decompress, and type make.
Loading this module will create the file /dev/usbDIO0. Writing to and reading from this file will send and receive date from the MAX3420 device.
EDK Peripheral & Driver Code
The EDK peripheral linked to below contains a SPI module that will talk to the MAX3420. Unpack the file and place the max3420_v1_00_a directory into your EDK project's pcores directory.
The table below shows the pad LOC constraints for the XUP-V2Pro J5 Header. You'll need to put these into your system's UCF file.
The module only uses two register locations. The first is used to read the MAX3420 status bits and set the SPI data rate. The second is used to transfer data between the MAX3420 device and the embedded processor. These functions are summarised in the table below.