USB Interface for an Optical Flow Chip PCB and Firmware design
暂无分享,去创建一个
The goal of this semester project was to implement a USB interface for Alan Stocker’s neuromorphic Optical Flow Chip (Motion18). For this, a PCB with the necessary components was designed. Then, firmware for the onboard microcontroller was written. Finally, the setup was tested with custom host-side visualization software and optimized for framerate. Key components used on the PCB were a USB microcontroller from Silicon Labs, a 16 channel DAC from Analog Devices and two level shifters from Fairchild. These were used to set the bias voltages for the Optical Flow Chip, to clock it, to read out its data and to transmit the data via USB to the host. The device is powered entirely by the USB hub. As the Optical Flow Chip is noise-sensitive, steps were taken to minimize the noise on the PCB. The USB supply voltage was filtered using a ferrite bead and a 10 μF tantalum capacitor. For the routing, analog and digital ground separation and the high-noise USB data channels were taken into account. For the firmware, high transmission rate was the goal. Different steps to optimize speed were taken: USB transmission uses double buffering; the AD conversion is done in parallel to other tasks when possible; the transmitted 10-bit values are packet into a bit stream to avoid waste of bandwidth; the loop control is done with efficiency as objective.
[1] S. Karunakaran,et al. EMI issues of universal serial bus and solutions , 2003, 8th International Conference on Electromagnetic Interference and Compatibility.
[2] M. F.,et al. Bibliography , 1985, Experimental Gerontology.
[3] Alan A. Stocker. Constraint optimization networks for visual motion perception , 2001 .
[4] Jan Axelson. USB Complete: Everything You Need to Develop Custom USB Peripherals , 1999 .