USB HOST CONTROLLER FOR A MICROCONTROLLER
FOR USE IN ECE 4760

By Terry Young Hwa Kim

Abstract:
Using a microcontroller as a USB host device instead of as a USB peripheral device can
be very helpful for students in ECE 4760 (Digital Systems Design Using Microcontrollers) to
attach a USB mouse, a USB keyboard or a USB memory stick. Although a full software version of
a USB host has been previously implemented on AVR Mega32 microcontrollers as a final project
for ECE 4760 by students, the fact that it heavily loads the microcontroller forces us to look for
an alternative solution, in other words, a hardware implementation. For example, dedicated
host chips such as VNC1L and MAX3421 provide high-speed interface to unload the
microcontroller. I implemented a useable USB host interface to Mega1284 using a chip (VNC1L
on VDIP1 module) that unloads the microcontroller. The final product includes the libraries that
consist of APIs that a host uses to communicate with HID (human interface device) and mass
storage class peripheral devices. The hardware implementation can be used by students in ECE
4760 to run a mouse, a keyboard and a memory stick. This will allow students to easily attach
peripherals such as a mouse to their final project without having to use a host computer.

Full report (pdf)

Poster (pdf)

Code