Even though USB is life on for more than 10 years – electronic amateurs move towards it relatively slowly. The main reasons are that many electronics work with relatively old computers where the RS232 port is actively used. Even when buying a new PC, I was looking that the motherboard was equipped with at least one COM port. But the situation is more complicated with Laptops where COM or LPT ports are not used anymore due to limited space and other reasons. The only way is to adapt to USB in one way or another.
One temporary solution may be using USB to RS232 adapters. But again, this is the only emulation of COM port, and not all programs may understand it correctly, like PonyProg doesn’t work with virtual COM ports.
Today companies producing electronics components have been pushing lots of types of USB chips to market. In order not to get lost, there is some classification made. So USB chips may be classified as follows:
- Microcontrollers with build-in USB interface;
- Microcontrollers with USB emulated program;
- USB converters or USB bridges;
- Hub controllers;
- Host controllers;
- Dual role controllers, OTG (On-The-Go);
- USB transceivers, USB switches
Microcontrollers with build-in USB interface
Microcontrollers with a built-in USB interface are special MCU that has a USB module built-in chip itself. In these microcontrollers, USB is implemented at the hardware level, where USB implementation requires the setting of several bits in the control register. It feels like working with other interfaces, including ADC module, I2C, USART, SPI, etc. So working with USB is pretty simple – just set and go. The advantage of a built-in USB interface is data transfer speed because usually, these interfaces support Full Speed (FS) communications.
Few Microcontrollers with built in USB interface:
|Manufacturer||Microcontrollers with built in USB interface||Features|
|Atmel||AT89C513x||MSC-51 family. SOP-28, PLCC-52|
AT43USB35x, AT7CC7xx, AT90USB1286, AT90USB464
|AVR family, QFP-48 – 100|
|Cypress Semiconductor||CY7C63001, CY7C64x13, CY7C646xx, AN21xx||LS, FS, DIP-20, QFP-44 – 128|
|Microchip Technology||PIC16C745, PIC16C765, PIC18F2x5x, PIC18F4x5x||LS, FS, DIP-40, SOP-28, SOP-40|
|NetChip Technology||NET288, NET2890||TurboUSB family, QFP-48|
|Freescale (Motorola)||68HC705JBx||HC05 family, LS, DIP-20, DIP-28|
|National Semiconductor||USBN960x||FS, SO-28|
General-purpose microcontrollers with emulated USB interface
General-purpose microcontrollers with emulated USB interface may be programmed to work as LS devices.
To achieve this, only 12MIPS MCU calculation speed is needed what is not a problem with most microcontrollers. USB emulating program may be as small as 2KB. The hardest part is the program itself – as writing a USB driver is not one of the easiest tasks. For instance, there are several software USB drivers for AVR microcontrollers that can be found on the internet:
- https://www.cesko.host.sk (IgorPlugUSB) developed by Igor Cesko for Windows;
- https://www.obdev.at/products/avrusb/ obdev driver for windows;
- https://www.xs4all.nl/~dicks/avr/usbtiny/ driver for Linux by Dick Streefland.
Software emulation is good because practically any microcontroller may have USB connectivity, but they are not as reliable as hardware USB interfaces.
USB converters or USB bridges
USB converters or USB bridges are different devices with different purposes. They serve as adapters from a USB interface to another – usually simpler interfaces like RS232, LPT, and ISP. For instance:
- USB to serial (COM) Bridge chips: FT232(FTDI), PL-2303(Prolific), TUSB3410(TI);
- USB to Parallel (LPT) Bridge chips: FT245(FTDI), PL-2305(Prolific), CY7C68013(Cypress Sem.);
- USB to synchronous(I2C, SPI, JTAG) bridge chips: FT2232(FTDI), PDUSBD11, PDUSBD12(NXP);
- USB to multimedia (IDE, Flash Disk, CD-R/W, DVD) chips: PL-2506, PL-2507, PL2515, PL2518(Prolific), TUSB6250(TI).
All these bridge chips require additional drivers so the operating system could recognize them. So there may be situations that there are no drivers for some particular operating system.
USB hub controllers
USB hub controllers are specialized chips that are used only for coupling multiple USB connections to one. They usually come with hard-coded logic and cannot be customized.
USB host controllers
USB Host controllers usually are integrated into computer motherboards or designed as PCI-USB cards, PCI-E-USB, etc. Also, there may be Host to Host controllers used for the direct connection of two computers via USB.
Dual role USB controllers – OTG
Dual role USB controllers – OTG (On The Go) are universal chips that may be working as hosts or as slaves. OTG’s name came from Philips(now NXP), the first producing OTG chip ISP1161.
USB transceivers, USB switches
USB transceivers and USB switches are some additional devices that may serve as protection from over-voltages. These chips do not process USB protocol but translate signals to CMOS level compatible for CPLD or MCU.