MSP430
USB Developers Package 5_00_00 Release Notes
This release note is divided into the following sections:
Introduction
MSP430 USB Developers Package Version 5_00_00 is a full
release with
support for CDC, HID, MSC, PHDC and composite devices.
MSP430 USB Developers Package provides APIs that make it easy to
implement a simple USB data connection between an MSP430 and a USB
host. It includes support for these common USB device classes:
• Communications Device Class (CDC)
• Human Interface Device class (HID)
• Mass Storage Class (MSC)
• Personal Healthcare Device Class (PHDC)
Users must read the “Updating
and Compatibility Information” below, and follow the instructions to
port their application to this new release.
back to
top
PackageContents
- MSP430_USB_API. (The MSP430 USB API and Application
Examples):
- Contains the MSP430 USB CDC/HID/MSC API. You
can use this as the foundation of your MSP430 USB
development.
- Contains a version of driverlib that was used
for development and testing
- Contains examples for the various interfaces incuding an
emptyExampleProject which can be used to start a
new application.
- Documentation
- Programmers_Guide_MSP430_USB_API.
(The MSP430 USB API Programmer's Guide). The complete reference for
developing USB applications on MSP430, using the API stacks
and Descriptor Tool. See it for information about:
- Practical guidance on writing USB applications
- How to use the Descriptor Tool
- Links to other MSP430 USB information
- Examples_Guide_MSP430_USB
- Detailed information on how to run the examples
- Implementation details for the examples
- Release Notes. Contains information on new features, bugs
fixed, compatibility, benchmarks and installation instrcutions.
- MSP430 USB DescriptorTool
- Java based tool which can be used to easily generate USB
descriptors specific to an application.
- Java based HID Demo
application
- The
demo app ("HID Demo App") is similar to a terminal application
(i.e., Hyperterminal), except it uses HID instead of
CDC. Designed
to interact with an MSP430 application implementing a
HID-Datapipe interface.
- Release Notes for the HID demo application
- Python Firmware Upgrader
- Firmware upgrader application in the form of a python GUI
- Release Notes for the firmware upgrader.
back to top
Documentation
Here are links to various documentation
Programmers_Guide_MSP430_USB_API
Examples_Guide_MSP430_USB
API_Function_Reference
back to
top
What's
New
MSP430 USB Developers Package 5_00_00 Release
- USB Stack Code and Examples:
- Updated to conform to MCU coding standard
- Macro
definition DEPRECATED included in compiler option of all examples
to remove deprecated functions and definitions from header files.
- Old API function names and definitions mapped to new names.
- Macro definition DRIVERLIB_LEGACY_MODE option removed.
- New look and feel to the Descriptor Tool.
- Tool no longer uses RCP application.
- New instructions on how to use the Descriptor Tool
- Regenerated descriptor.c, descriptors.h and UsbIsr.c files
- USB_API changes
- Function names and defination names changed to conform to MCU coding standard
Defects Fixed in 5_00_00:
Bug ID | Summary |
10668 | USB stack and examples need to follow ONeMCU coding standard |
10670 | Re-write Descriptor tool |
| |
back to
top
Versions of dependent package and IDEs
back to
top
Known Issues
There are some known issues with importing and building USB examples with older/newer versions of CCS and IAR.
CCS
1. Build Errors
- Upon importing an example, lnk_msp430f5529.cmd file is missing from the project.
- Browse to <CCS_INSTALL_DIR>\ccsv5\ccs_base\msp430\include. Add lnk_msp430f5529.cmd file to your project.
- Some
USB examples also include an application specific header file. In such
cases add lnk_msp430f5529.cmd as well as msp430usb.cmd from
<USB_DEVELOPERS_PACKAGE_INSTALL_DIR>\MSP430_SW_Development\MSP430_USB_API\USB_API.
- Currently SYSBIOS does not support MSP430FG6626 devices so a build error of 'target not supported' will be seen.
- Upon
importing earlier versions of GCC examples, into newer versions of CCS
6.0/CCS 6.1, CCS might throw an error of not being able to find the
main function. To fix this issue de-select the compiler option
'-ffunction-sections' from Properties->Build->GNU
Compiler->Optimization configuration section of CCS
2. Build Warnings
- The following warning will appear on older versions of CCS. This has been fixed in CCS5.5
#303-D
typedef name has already been declared (with same
type) gpio.c
/C0_SimpleSend/driverlib/MSP430F5xx_6xx line 70,
external location:
C:\ti\CCS5_3_0_00090\ccsv5\ccs_base\msp430\include\msp430f5529.h
C/C++ Problem
3. MSP430 GCC- Only available in CCS 6.0 and greater.
- SYSBIOS does not support GCC
- MSP430 GCC does not support Large Memory Model.
Command Line GCC
1. Build Errors
- Examples will fail to build if any of the path names listed in the
examples' Makefiles are longer than 160 characters.
IAR
- Older versions of IAR cannot import the USB examples. You will have to re-create the IAR projects manually
back to top
Benchmarks
USB Developers Package Code Metrics
The
USB stack code metrics were performed with the CCS 4.3.1 compiler, IAR
6.10 compiler and MSPGCC 4.9.1 compiler with different optimization
settings. Users may see different code sizes depending on their project
settings so it is best to perform the benchmarks within the project
itself. Code metrics for the USB stack code can be viewed here:
Metrics.html
Performance
MSC
Performance (Single Buffering)
File Size |
Read
(MB/sec) |
Write
(MB/sec) |
4096 |
0.20 |
0.12 |
8192 |
0.22 |
0.13 |
16284 |
0.21 |
0.12 |
32768 |
0.22 |
0.12 |
65536 |
0.22 |
0.15 |
131072 |
0.22 |
0.13 |
262144 |
0.21 |
0.15 |
524288 |
0.20 |
0.15 |
MSC
Performance (Double Buffering)
File Size |
Read
(MB/sec) |
Write
(MB/sec) |
4096 |
0.23 |
0.11 |
8192 |
0.25 |
0.12 |
16284 |
0.27 |
0.12 |
32768 |
0.27 |
0.12 |
65536 |
0.27 |
0.12 |
131072 |
0.26 |
0.14 |
262144 |
0.27 |
0.16 |
524288 |
0.28 |
0.15 |
VDBENCH application
used for MSC benchmarking. No validation of transfer done. Measured in Mega Bytes/sec.
CDC Performance
Direction |
Speed (Kbps) |
CPU frequency (MHz) |
RX |
69.421 |
1 |
RX |
140.660 |
2 |
RX |
274.005 |
4 |
RX |
475.060 |
8 |
RX |
598.844 |
12 |
RX |
677.156 |
16 |
RX |
675.738 |
20 |
RX |
674.130 |
25 |
TX |
67.005 |
1 |
TX |
136.044 |
2 |
TX |
271.304 |
4 |
TX |
530.643 |
8 |
TX |
704.830 |
12 |
TX |
803.014 |
16 |
TX |
800.531 |
20 |
TX |
797.851 |
25 |
Tranfer size for
CDC benchmarks
is 2048 arrays with 1024bytes/array.
The MSP430 application used calls USBCDC_rejectData()
for any data it
receives. The is to nearly eliminate the device
application from being a factor. If the application rejects
the data, it
doesn’t use any time to move the data. In contrast, any real
application
must handle the data, and thus will get considerably less,
probably closer to the 200-500KB/sec range.
Interrupt Latency
Interrupt Source | #Cycles |
ENDPOINT0 Receive Data | 224 |
ENDPOINT0 Transmit Data | 415 |
USB_RESET | 455 |
USB SUSPEND | 121 |
USB RESUME | 504 |
CDC Receive Data | 1601 |
CDC Transmit Data | 246 |
HID Receive Data | 1566 |
HID Transmit Data | 106 |
MSC Receive Data | 647 |
MSC Transmit Data | 1758 |
Special benchmark applications were used with code inserted to measure latency using a timer.
Applications made use new USE_TIMER_FOR_RESUME to reduce interrupt latency for resume interrupt.
Without the use of USE_TIMER_FOR_RESUME resume interrupt can take arounbd 13000 cycles.
back to top
Upgrading from previous versions of USB Developers Package
Version 5_00_00 release of USB Developers Package will
only work with version 2.00.00.16 driverlib library. (See
driverlib release_notes.html file for changes).
If existing users want to update to 5_00_00, then the following should be done:.
1. Copy/Replace stack files.- Browse to MSP430USBDevelopersPackage_5_00_00\MSP430_SW_Development\MSP430_USB_API
- Copy over the driverlib folder (see MSP430Ware release notes for upgrade information)
- Completely replace the USB_API folder. (delete old folder).
2. Re-generate Descriptor Tool Output
- Launch the new Descriptor Tool from MSP430USBDevelopersPackage_5_00_00\MSP430_SW_Development\MSP430_USB_DescriptorTool.
- Follow
the instructions in the
programmers guide to create your USB device again or bring up the
old descriptor tool and open the DAT file for your project and copy all
the fields to the new tool.
- If you have a MSC interface in your application re-visit the MSC Interface to add Logical Unit Configuration.
- Delete the existing descriptors.c, descriptors.h and UsbIsr.c files in the USB_config folder of your old project.
- Click the
"Generate" button and save all files into the USB_config folder of your
old project. The XML file now replaces the old DAT configuration
file. The DAT file can be deleted.
- You can now close the Descriptor Tool.
3.
Replace deprecated driverlib APIs in all other files with their
equivalent as listed in the driverlib release_notes.html file and APIS_REMOVED.html file.
back to top
Updating driverlib to a new version.
Simply replace the entire driverlib folder with the new version.
back to top
Versioning
All releases have 4 digits (M.mm.pp.bb). This includes GA and
pre-releases (engineering, alpha/EA, beta, etc.). Pre-releases are
denoted with a suffix (e.g. 6.30.00.00-eng or 6.30.00.10-beta).
This product's version follows a version format, M.mm.pp.bb, where M is
a single digit Major number, mm is 2 digit minor number, pp is a 2
digit patch number, and b is an unrestricted set of digits used as an
incrementing build counter.
To support multiple side-by-side installations of the product, the
product version is encoded in the top level directory (e.g.
MSP430_USB_Developers_Package_3_0_0_0).
Subsequent releases of patch upgrades will be identified by the patch
number, ex. 3.0.1.05 with directory
MSP430_USB_Developers_Package_3_0_1_05. Typically, these patches only
include critical bug fixes.
back to top
Command Line GCC and Makefile
To run the GCC examples from the command line, two variables in the
each example makefile has to be updated. See the Examples Guide
for
more details
back to top
Technical
Support and Product Updates
back to
top
Last updated:
021015.0923
Copyright 2013, Texas Instruments Incorporated