USB CDC Projects from CMX and Freescale
USB was a big challenge for developers. Since the USB development demands deep knowhow in host drivers for operation systems, device drivers in the embedded system, and application software development as well as debug between host and device. A typical USB development has to be a team-work project, since you can not find a guru who is familiar with all technology domains (host drivers for Linux / Windows / Mac, application software with GUI, device driver for specified microcontroller platform). The engineers can help to assembly everything together, rather than "inventing" everything from scratch. That is also an important reason why FTDI is so successful in USB IC market. The FTDI USB interface IC eliminates the development process in host side. The engineers can use conventional serial interfaces including UART and SPI to build up the USB devices or hosts.
FTDI's approach is an easy way. I also used it in some projects. However, we have to handle the following issues:
Bandwidth. Most of the microcontrollers interface FTDI with UART, which limits the overall system performance.
Standard Compliance. In most cases, we need other device class. The virtual serial driver is not enough in some applications, which demands specific class drivers. Of course, FTDI introduces new products to cover more USB classes, which partly solve this issue.
USB Classes
The USB-IF still increases the classes for USB. Up to now, we have following classes:
- Audio Class
- Communication Device Class
- HID Class
- Imaging Class
- Mass Storage Class
- Printer Class
- Test and Measurement Class
- Video Class
- Smart Card Class
- More complementary specifications from USB-IF web site (usb.org).
Free Demo Projects
As more and more USB enabled products are released to the public with reference designs. The development effort has been reduced to minimum. In most cases, you can find the reference designs for the specific microcontrollers from the software vendors. For example, CMX systems offers CMX USB Lite stack for Freescale's microcontrollers. So does MQX. CMX is quite active in USB software market. It has offered USB stack on ColdFire v1/v2, MC9S08 from Freescale, ARM7TDMI and Cortex from ARM (NXP/ST/LMI) and Renesas microcontrollers. So we can reuse the demo projects. Here is a list for CMX USB stack for Freescale.
- AN3492: USB and Using the CMX USB Stack
- AN3523 : Advanced CMX_USB_Stack Applications (pdf)
- AN3564 : Customize the USB application Using the MC9S08JM (pdf)
- AN3565: USB and Using the CMX USB Stack with 9S08JM devices
- AN3690 : CAN-to-USB Bridge (pdf)
- EVB51JM128QSG : EVB51JM128 Quick Start Guide (pdf)
- DEMO9S08JM16QSG : DEMO9S08JM16 Quick Start Guide (pdf)
- DEMO9S08JM60LAB : DEMOJM Lab Supplement for the 8-bit Flexis JM60 (pdf)
- DEMO51JM128LAB : DEMOJM Lab Supplement for the 32-bit Flexis JM128 (pdf)
- M52259CMXUSBLab: MCF52259 CMX USB - Lab Tutorial
- More on Freescale web site.
CMX USB Lite is a subset of the complete CMX USB stack. You can find the reference design with CMX USB Lite in HID (host & device), CDC device, MSD (host & device), MSD USB Bootloader. CMX doesn't offer USB CDC host project. But don't bother to buy CMX host CDC stack. Atmel offers CDC host driver for its AVR USB microcontrollers. Microchip also offers a complete USB stack with visual configuration tool. It includes full open source project for USB CDC host driver (ACM only). I have no time to confirm it yet. Anyway, you can find the suitable source for CDC host project. It is not very difficult to port mentioned projects to your favorite platform.
Even we collect above open source projects, it is not a complete USB CDC host stack. In fact, CDC is a general class made up of following sub-classes (or models).
- CDC-ACM allows any communication device to provide a serial communication interface (modem devices, RFID readers).
- CDC-ECM offers manufacturers to interface as a standard NIC device. This interface is usually adopted by high speed LAN networking devices allowing high speed Ethernet data transfer over USB.
- OBEX is compliant with the Wireless Mobile Communication OBEX function model.
- WMC(Wireless Mobile Communication)-Device Management is compliant with Device Management function model, supporting a minimal AT command based control model.
- RNDIS provides CDC like communication capabilities on Windows PCs supporting the Microsoft RNDIS protocol.
- More specifications on USB.org.
I emphasis on the CDC projects in this article, because it is the most common used class in the most applications, and the CDC projects reveal know-how in host and device development. Although Freescale and CMX also offers host class driver, you can develop your own driver with PC development tools. I only focus on using USB CDC projects for generic USB development. For example, the latest released microcontrollers (Cortex-M3, Kirin3) usually have USB host/OTG interface. If the system can communicate with off-the-shelf USB CDC devices (wired and wireless modem, WLAN NIC and Bluetooth dongle), it brings more capabilities and features.
Reference
CMX USB Lite for Freescale (Flexis JM, 8-bit & 32-bit)
AN7727 AVR280 USB Host CDC Demonstration | USB CDC Host for STK525 and AVRUSB Key
Microchip USB
USB CDC (ECM/ACM/OBEX/RNDIS), USBware, Embedded USB Software Solution
CDC and WMCDC Control Models from MSDN
CONTACT REQUEST
If you want to know more about this Freescale product, please submit your request to Arrow Italy using this form.
NOTE: this form is valid ONLY for Companies or Customers based in Italy and working in the Italian area.
- allankliu's blog
- 1735 reads



Post new comment