White Papers
How to Interface a USB Flash Drive to a Microcontroller
How to Design an Embedded System with USB Flash Drive Support
The removable USB flash drive is a key technology in the embedded computing world. Among other things, it can be used to store and transfer logged data, back up a device’s settings, or be a vehicle to update a deployed device’s firmware. When you need to transfer data from a microcontroller-based embedded system to a PC (or vice versa), using a portable memory device, like a USB flash drive, is a convenient method, especially when transferring data over a network is not possible or desirable.
Although USB flash drives are easy to use, designing a microcontroller-based embedded system that supports the use of these devices can be a challenging task, especially when you don't know what you don't know. This 17-page white paper provides embedded systems designers with the key concepts and considerations needed to successfully incorporate a USB host into a microcontroller-based embedded design, such that USB flash drives can be used for a host of applications.
Table of Contents
- Introduction
 - An Overview of the Universal Serial Bus (USB)
 - Designing the System
- Make/Buy
 - Compliance Testing
 - Implementation Overview
 - USB Host Controller Choices
 - USB Software Support
 
 - Designing Custom USB Hardware
- USB Connectors
 - Power Supplies
 - Resets & Brownout
 - Electromagnetic Interference (EMI)
 - Controlled Impedance
 
 - Example Host Controller Solutions
- Example Bolt-On Host Controller
 - Example Built-In Host Controller
 
 - Implementing the Embedded Firmware
- The USB Flash Drive File System
 - Handling Surprise Removal and Power Loss
 - File System Licensing
 
 - About Datakey
 - Conclusion
 - Glossary
 - References