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.

MAX3420 Introduction

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.

 

F1 F2
MAX3420 USB Board MAX3420 connected to a Digilent XUP-V2Pro

Circuit & PCB

Below are the Schematic and PCB layouts for the board. Use the link below to download the Eagle CAD files.

eagle.tar.gz
 

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.

F3

MAX3420 PCB Schematic (Click, for enlarge)

 

 

F4 F5
MAX3420 PCB Top Layer MAX3420 PCB Bottom Layer


Example System

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.

  • The MAX3420 PCB. This uses USB to connect to the PC and SPI to connect to the FPGA.
  • The Linux device driver. This creates a device file, /dev/usbDIO that user applications can read from and write to.
  • The EDK peripheral that connects the SPI to the OPB bus




Example MAX3420 Setup

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.

usbDIO.tar.gz
 

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.

max3420_v1_00_a.tar.gz
 

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.

 

Net

LOC

usb_SCLK

L5

usb_SS

M2

usb_MOSI

P9

usb_MISO

N2

usb_GPX

R9

usb_INT

M4

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.

 

Register

Read

Write

0 (Base address)

Device Status

SPI speed

1 (Base address + 4)

Data from MAX3420

Data to MAX3420

You may have to register before you can post comments and get full access to forum.
EMS supplier