embedded and real time systems training and consultancy

Course: ARM Cortex-M USB Programming

Duration: 3 Days

Course Background

USB is the successor to RS232 for connecting devices to computers. ARM Cortex-M microcontrollers with on chip USB transceivers are now readily available. These devices are used in the implementation of sensors, data acquisition systems and control systems that can be connected to the PC and can also be used to implement simple mass storage devices. USB bootloaders can also be implemented for such devices.

Course Prerequisites and Target Audience

A good knowledge of embedded systems C programming is assumed. Detailed knowledge of USB is not required as USB standards and protocols will be covered in depth during the course.

Course Overview

The course introduces USB 1.x and 2.0 in depth and covers the theory and evolution of the USB standard up to USB 3.0. This is followed by coverage of the USB hardware on Microchip USB ARM Cortex-M microcontrollers and the associated firmware. There then follows an exploration of a USB devices classes and their uses - HID, CDC, MSD. As well as covering device side programming PC side application development for Microsoft Windows and/or Linux is covered. PC side application examples include both command line driven and GUI based (Graphical User Interface) applications. GUI programming examples will be presented as demonstrations with structured walkthroughs of the code. The course can be extended and tailored to go into PC side programming in greater depth if so required. Furthermore the host aspects of the course come in Microsoft Windows or Linux versions. If necessary the course can be tailored for a MAC OSX version.

Course Benefits

Students successfully completing this course will have a sound understanding of USB C programming. You will understand the development of USB applications using the HID (Human Interaction Device) and CDC (Communication Device Class) USB classes as well as how to work with USB MSD (Mass Storage Device) classes and the implementation of basic SD/MMC card based applications.

Course Outline