USB solutions from Freescale
What Freescale brings on top of both Microchip and Atmel, for instance, is the Hi-Speed capability embedded in its MCF5xxx products. Out of these, some micros offer the feature only with an external ULPI support, but the MCF525x subfamily is a true and complete one-chip Hi-speed USB solution with integrated physical layer:
You can select a wide range of core speeds for the Freescale USB micros, ranging from 2.1 MIPS to 410 MIPS. Of course, the high speed cores offer the USB feature only as a very small subset of the total features and peripherals. This possibility makes the Freescale USB products quite versatile, allowing them to find themselves in the most various applications. A reach feature of other peripherals is also included on chip and we will be using a MCF5221Xx Coldfire controller as an example:
As opposed to its competitors, who offer microcontrollers capable of fulfilling the role of a Device or of an On-The-Go (OTG) controller, Freescale also delivers ICs with full on-chip USB host capabilities. The MCF532x is such a chip, which allows the complete build up of a single chip embedded system featuring USB host capabilities, Ethernet communication and embedded LCD display drive:
Complimentary USB stack from CMX
Since most USB microcontroller manufacturers offer the free USB stack for the most common USB device classes, Freescale also offers this feature provided by a third party: CMX. The CMX stack for 8bit microcontrollers makes provision for all possible modes of operation. The one for the 32bit microcontrollers from the ColdFire series enables both USB device and host modes of operation.
The device classes supported by the stack are:
-
General HID
Keyboard HID
Mouse HID
CDC device
The host classes supported by the stack are:
-
HID Host
Host Mass Storage
Several other characteristics of the CMX USB stack make it an invaluable tool in speeding up development and time to market. Any code using it will be extremely portable in between the 8bit and 32bit USB microcontrollers from Freescale. Apart from the USB device and host modes, it also offers support for OTG functionality, where minimum host requirements are required from the device. It is also easy to integrate in existing code through the known CodeWarrior Development Studio, enabling users to quickly change the code in a fast manner when, for instance, upgrading from UART to USB. The stack is fully supported on the Freescale website by a broad range of application notes and reference design which also cover the API side of programming, teaching the developer (even the beginners) how to obtain a decent Graphical User Interface that communicates with their Freescale USB micro. In addition to all these, the CMX stack is design to use minimal RAM and ROM resources, allowing for the selection of the most cost effective solution that will fit in the design. To make things even better, a variety of software USB related products are also available from the CMX website (www.cmx.com): USB bootloader, full function mass storage and file system (in case of course, you want to make your own memory stick).
USB-MINI Stack from Freescale
In addition to the third party stack, Freescale also offers an in-house developed stack for the 8bit JM family of devices. These are part of the Flexis series of microcontrollers, which include both 8bit and 32bit micros. No high speed USB version is available on them, but they are all full speed devices with on-chip transceiver. The stack includes a few major functional groups:
- USB module initialization
- USB enumeration handler (handles USB standard request to complete USB enumeration)
- USB module management
The advantages of this software package are advertised by Freescale as being:
- readability and ease of use (they actually recommend starting the study of the 8bit JM family based on this stack)
- efficient code and RAM footprint (implementing a mouse application only requires less than 150 RAM locations)
- flexibility
The structure of the Freescale USB mini stack is as follows:
A system initialization is required in the beginning, which sets the bus clock to 24MHz, configures the pull-up resistors, the voltage regulator and the endpoints. A graphic diagram would look like:
After the initialization is performed, a main loop follows, where status changes in the USB state machine are checked for. The most important ones are the flags indicating the reception buffer has been filled.
An alternative to the checks performed in the main loop is an USB interrupt subroutine, also implemented in the stack. It manages the USB events, checking the interrupt flags one by one and when one of these is set, the ISR jumps to the associated function (provided the interrupt is enabled).
Flexis JM Demonstration Board
One of the hardware tools provided by Freescale to help speed USB development is the DEMOJM demonstration board. It enables quick evaluation, being accompanied by two smaller daughter cards. These feature the MC9S08JM60 and MCF51JM128 devices, enabling the research of both USB device and USB host characteristics. The USB stack from CMX is also included in the development kit.
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.
- brumbarchris's blog
- 2301 reads





Post new comment