Engineers Garage

  • Electronic Projects & Tutorials
    • Electronic Projects
      • Arduino Projects
      • AVR
      • Raspberry pi
      • ESP8266
      • BeagleBone
      • 8051 Microcontroller
      • ARM
      • PIC Microcontroller
      • STM32
    • Tutorials
      • Audio Electronics
      • Battery Management
      • Brainwave
      • Electric Vehicles
      • EMI/EMC/RFI
      • Hardware Filters
      • IoT tutorials
      • Power Tutorials
      • Python
      • Sensors
      • USB
      • VHDL
    • Circuit Design
    • Project Videos
    • Components
  • Articles
    • Tech Articles
    • Insight
    • Invention Stories
    • How to
    • What Is
  • News
    • Electronic Product News
    • Business News
    • Company/Start-up News
    • DIY Reviews
    • Guest Post
  • Forums
    • EDABoard.com
    • Electro-Tech-Online
    • EG Forum Archive
  • DigiKey Store
    • Cables, Wires
    • Connectors, Interconnect
    • Discrete
    • Electromechanical
    • Embedded Computers
    • Enclosures, Hardware, Office
    • Integrated Circuits (ICs)
    • Isolators
    • LED/Optoelectronics
    • Passive
    • Power, Circuit Protection
    • Programmers
    • RF, Wireless
    • Semiconductors
    • Sensors, Transducers
    • Test Products
    • Tools
  • Learn
    • eBooks/Tech Tips
    • Design Guides
    • Learning Center
    • Tech Toolboxes
    • Webinars & Digital Events
  • Resources
    • Digital Issues
    • EE Training Days
    • LEAP Awards
    • Podcasts
    • Webinars / Digital Events
    • White Papers
    • Engineering Diversity & Inclusion
    • DesignFast
  • Guest Post Guidelines
  • Advertise
  • Subscribe

Controller Chip Selection for Developing USB Enabled Device (Part 6/6)

By Amanpreet Singh May 20, 2025

In this series, every possible detail about the USB system including its architecture, protocols, requests and descriptors as well as signaling and encoding has been already discussed. Wrapping up the series, selection of the controller chip for the development of a USB enabled device is discussed here.

When developing a USB enabled custom device, a controller chip needs to be selected. The selection of chip depends on various form factors like-:

• Ease of Availability

• Cost

• Functions Supported

• Ease of Development – Sample Code, Development tools, Host Driver Software, Programming Language

Components of USB Controller

For functioning as a USB device, the controller chip has the following building blocks -:

• USB Transceiver

• Serial Interface Engine(SEI)

• Buffers to hold USB data

• Register for storing configuration, status, and control information for USB communication

USB Transceiver: It provides hardware interface between the USB connector of the device and the circuit that controls USB communication. Usually, the transceiver is present on the same controller chip but sometimes external transceiver is used.

Serial Interface Engine: It is an intermediate unit that handles the transmission and reception of the packets. The unit does not check or manipulate the data but just sends the data that has been provided by the controller chip or stores the received data. The typical functions of serial interface engine are -:

• Send packets

• Detect incoming packets

• Detect and generate SOP(Start of Packet), EOP(End of Packet), Reset and Resume signals

• Encode and decode the data in required format. Generally, NRZI (Non Return to Zero Inverted) with bit stuffing

• Check and generate CRC values

Buffers: They are used for holding received data or the data that needs to be transmitted. In some controllers, a portion of data memory is reserved for buffers while in other registers are used. Buffers work in FIFO (First in First out) order. The Controllers in which buffers are located in data memory, the data is read/write from lowest address to highest address. Some controller chips have two parallel buffers in order to enable faster transfers. For example, when the first buffer is transmitting data the second buffer can hold the next block of data to be transmitted. In reception, while the firmware is processing the data from the first buffer, the second buffer can hold the next block of data received. Some controllers support four buffers.

Configuration, Status and Control Information: USB controller chips have inbuilt registers for holding information. These registers are mainly used for storing information related to -:

• Number of bytes received

• Number of bytes ready to transmit

• Suspend state status

• What endpoints are enabled

• Error checking information

Clock: The controller chip needs clock signal for USB communication. The sources of clock can be Crystal Oscillator, Ceramic Resonator or On-Chip Clock

USB Device Requirements

A number of factors need to be considered while the selection of a controller chip -:

Data communication speed

A USB can support three different speed modes – low, high and full. Some controller chips support only low speed, some support low and high while some support all the speed modes. The selection of controller chip has to be done according to the data transfer rate required. In projects, where, only low speed is required, the unnecessary inclusion of full or high-speed controllers will add surplus cost to the device. Also, the circuit components and manufacturing of full and high-speed controllers are costly.

Length of the cable

For low-speed devices, the length of the cable can be no longer than three meters, while full and high-speed cables can be up to five meters long.

Power drawn

A peripheral device can draw a maximum current of 500mA in USB2.0 while in USB3.0 it can draw up to 900mA current. In cases where current requirement exceeds the USB standard, the external power supply is needed.

Transfer Types

All USB controller chips support Control Transfer. The other transfer types (Isochronous, Interrupt, and Bulk) have their own specific applications. The controller chip may support all the transfer types. The controller chip has to be selected depending on the transfer type required to fulfill the purpose of the device. For example, a mouse only needs Interrupt transfer apart from the control transfer. The proper chip selection can save from incurring additional cost.

Firmware

Some controller holds firmware in their flash memory or EEPROM. Hence these controllers provide the functionality of removing, upgrading or changing the firmware as per the requirement. While some controllers have dedicated memory for keeping firmware which cannot be easily erased or re-written. In that case, the controller chip has to be replaced with another whenever a firmware upgrade is made.

Other functionalities

In addition to a USB interface, a controller chip can provide other functionalities like GPIO (General Purpose Input Output) pins, Timers, Counters, ADC(Analog to Digital Convertor), Interrupts, SPI(Serial Peripheral Interface), TWI (Two Wire Serial Interface) and other microcontroller features. Selecting a USB controller chip with the extra feature can remove the need for external IC or components in a project.

Common Controller Chips

There is a large variety of controllers available which provides USB interface as well as other features. Using ASIC (Application Specific Integrated Circuit) is also an option for application specific devices like mouse or keyboard. Some of them are listed in the table:

Other functionalities

Controller and External CPU

There are USB controllers available that can be interfaced with external CPU or microcontroller. The interfacing can be done using parallel or serial protocols. This means an obsolete CPU or microcontroller that does not support USB, can be provided a USB interface using USB controller. In the end, the device will contain two separate chips, a USB controller chip, and a CPU/Microcontroller chip.

Using two separate chips can add cost to the device whereas using one USB controller with embedded CPU like PIC18f4550 will be less costly.

Some of the USB Controllers that can be interfaced with external chips are listed below:

USB controllers

The FT232BM is commonly used for USB to RS232 conversion.

This completes the USB series. It’s now the time to get hands dirty and start implementing projects using USB interface and protocols.

You may also like:


  • What are the top development boards for AI and ML?

  • What are LoRa gateways and what types are available?

  • How to select drone motors

  • What types of motors are used in electric vehicles?

  • What are the components of robotic arms and industrial robots?

  • What is IP geofencing?

Filed Under: Tutorials, USB

 

Next Article

← Previous Article
Next Article →

Questions related to this article?
👉Ask and discuss on Electro-Tech-Online.com and EDAboard.com forums.



Tell Us What You Think!! Cancel reply

You must be logged in to post a comment.

EE TECH TOOLBOX

“ee
Tech Toolbox: 5G Technology
This Tech Toolbox covers the basics of 5G technology plus a story about how engineers designed and built a prototype DSL router mostly from old cellphone parts. Download this first 5G/wired/wireless communications Tech Toolbox to learn more!

EE Learning Center

EE Learning Center
“engineers
EXPAND YOUR KNOWLEDGE AND STAY CONNECTED
Get the latest info on technologies, tools and strategies for EE professionals.

HAVE A QUESTION?

Have a technical question about an article or other engineering questions? Check out our engineering forums EDABoard.com and Electro-Tech-Online.com where you can get those questions asked and answered by your peers!


RSS EDABOARD.com Discussions

  • UART Basic Before Writing Code
  • What is the reason for using the -allow_path option in set_clock_groups?
  • Mean offset increase in post-layout simulation of clocked comparator
  • LED driver using PWM
  • dc-dc converter in series

RSS Electro-Tech-Online.com Discussions

  • PIC KIT 3 not able to program dsPIC
  • Fun with AI and swordfish basic
  • Is AI making embedded software developers more productive?
  • Microinverters and storeage batteries?
  • FFC connector white

Featured – LoRa/LoRaWan Series

  • What is the LoRaWAN network and how does it work?
  • Understanding LoRa architecture: nodes, gateways, and servers
  • Revolutionizing RF: LoRa applications and advantages
  • How to build a LoRa gateway using Raspberry Pi
  • How LoRa enables long-range communication
  • How communication works between two LoRa end-node devices

Recent Articles

  • How to design a weather station using ESP8266
  • RPi Python Programming 21: The SIM900A AT commands
  • RPi Python Programming 22: Calls & SMS using a SIM900A GSM-GPRS modem
  • RPi Python Programming 23: Interfacing a NEO-6MV2 GPS module with Raspberry Pi
  • RPi Python Programming 24: I2C explained

EE ENGINEERING TRAINING DAYS

engineering

Submit a Guest Post

submit a guest post
Engineers Garage
  • Analog IC TIps
  • Connector Tips
  • Battery Power Tips
  • DesignFast
  • EDABoard Forums
  • EE World Online
  • Electro-Tech-Online Forums
  • EV Engineering
  • Microcontroller Tips
  • Power Electronic Tips
  • Sensor Tips
  • Test and Measurement Tips
  • 5G Technology World
  • Subscribe to our newsletter
  • About Us
  • Contact Us
  • Advertise

Copyright © 2025 WTWH Media LLC. All Rights Reserved. The material on this site may not be reproduced, distributed, transmitted, cached or otherwise used, except with the prior written permission of WTWH Media
Privacy Policy

Search Engineers Garage

  • Electronic Projects & Tutorials
    • Electronic Projects
      • Arduino Projects
      • AVR
      • Raspberry pi
      • ESP8266
      • BeagleBone
      • 8051 Microcontroller
      • ARM
      • PIC Microcontroller
      • STM32
    • Tutorials
      • Audio Electronics
      • Battery Management
      • Brainwave
      • Electric Vehicles
      • EMI/EMC/RFI
      • Hardware Filters
      • IoT tutorials
      • Power Tutorials
      • Python
      • Sensors
      • USB
      • VHDL
    • Circuit Design
    • Project Videos
    • Components
  • Articles
    • Tech Articles
    • Insight
    • Invention Stories
    • How to
    • What Is
  • News
    • Electronic Product News
    • Business News
    • Company/Start-up News
    • DIY Reviews
    • Guest Post
  • Forums
    • EDABoard.com
    • Electro-Tech-Online
    • EG Forum Archive
  • DigiKey Store
    • Cables, Wires
    • Connectors, Interconnect
    • Discrete
    • Electromechanical
    • Embedded Computers
    • Enclosures, Hardware, Office
    • Integrated Circuits (ICs)
    • Isolators
    • LED/Optoelectronics
    • Passive
    • Power, Circuit Protection
    • Programmers
    • RF, Wireless
    • Semiconductors
    • Sensors, Transducers
    • Test Products
    • Tools
  • Learn
    • eBooks/Tech Tips
    • Design Guides
    • Learning Center
    • Tech Toolboxes
    • Webinars & Digital Events
  • Resources
    • Digital Issues
    • EE Training Days
    • LEAP Awards
    • Podcasts
    • Webinars / Digital Events
    • White Papers
    • Engineering Diversity & Inclusion
    • DesignFast
  • Guest Post Guidelines
  • Advertise
  • Subscribe