Texas Instruments

MSP430 USB Developers  Package 4_00_02 Release Notes

This release note is divided into the following sections:

Introduction

MSP430 USB Developers Package Version 4_00_02  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

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 4_00_02 Release

Defects Fixed in 4_00_02:

Bug ID Summary
5014Remove all instances of USB_PLL_XT as all devices use XT2
5009F6659 not supported
5080Include entire driverlib in USB examples to avoid mix and match of driverlib versions
5081Use driverlib.h files in stack and examples

Defects Fixed in 4.00.00.00:

Bug ID Summary
929 Add workaround for USB9 errata
1212 Use driverlib inside the USB stack and examples
1214 Convert Build Process to use Cygwin
1262 H5 and H6 fail on hudson testing
1329 DescriptorTool in Mac has small/unusable text boxes
1678 Descriptor tool path separator should use a standard java separator
1808 USBHID_receiveReport does not handle size of report
1811 Change report_desc_size to WORD instead of BYTE
2022 LED Control Demo(with CDC) fails at USB7 workaround
2149 USB HID Tool does not work with 64-bit JRE
2315 Descriptor tool creates an invalid entry in the inf file
3307 Code is missing in dma.c to support DMA channels greater than 2.
3310 ADD DMA4 workaround to stack. ALso check for other errata workarounds that need to be in place
3498 USB LDO settings (on/off) needs to be user configurable
3499 LEDs in example should be easier to change
3621 CH1_Example does not build for F5510
3622 Customer name exposed in usb.c
3623 USB9 workaround causes SVSH reset
3655 Include python based firmware downloader in release
3757 Wrong Java version requirement listed in release notes for HID Demo App
3996 Need a function to map ASCII to HID usage code
4051 wrong comment in h8 - main.c line 98
4297 Remove tabs
4304 Help text is very small
4307 Change implementation for multiple descriptor sets
4308 Add confirmation dialog box to delete button
4312 New button images
4313 Changes to GUI layout in CDC interface pane, re: USB/UART bridge functionality
4314 Interface panes have typo in intfNum label
4316 Change "Cheat Sheet" label on help pane tab, to "Help Pane"
4317 Changes to GUI layout in MSC interface pane --> CD-ROM
4318 MSP5430 USB stack does not STALL upon receiving Microsoft OS descriptor request.
4319 Makesure to use latest RAM BSL in firmware downloader. Also use latest txt files
4321 Hide USB_MCLK_FREQ from users.
4323 Generate USB examples using Project Templates
4325 Update examples with new changes as per 5529 UE code.
4326 Add new simple Rx, TX example for CDC, HID and MSC
4327 Rename example - C1 to led_onoff etc.
4330 Remove USB API docs from Programmers Guide.
4331 Move example description from Programers Guide to examples folder (readme.txt)
4334 Add stack version in shipped sources at the bottom
4335 Update release notes - remove info present in Prog Guide
4336 Add Makefile rule to remove all TABS and replace by spaces.
4337 Try to document or even automate CDC driver installation on Win8
4383 When generating output, don't ask separately for location, for descriptors.c/h vs. usbisr.c
4569 WORD/BYTE declaration conflict, resulting in improper indexing of report_len_input [] array
4570 Finish migrating LUN information into the Tool
4575 Make sure device.h supports ALL USB devices.
4640 Accept a command-line parameter for target directory
4714 Composite CDC warning isn't keying correctly
4738 If USCMSC_updateMediaInfo() called during READ/WRITE, causes the host to re-enumerate
4796 USB_handleEnumCompleteEvent called after SetAddress NOT SetConfiguration
4799 In the tree, change "Device" node label to "USB Device"


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 versions of CCS and IAR.

CCS
1.  Build Errors 2. Build Warnings
IAR
back to top

Benchmarks

Memory Usage

Code Composer Studio


Test Name RAM (B) FLASH (B)
CCS\C1_bench 364 7,240
CCS\CC1_bench 398 7,516
CCS\CDC_Benchmark 4,482 9,654
CCS\CH1_bench 389 9,540
CCS\CHM1_bench 1,001 15,950
CCS\H1_bench 355 7,177
CCS\HH1_bench 380 7,414
CCS\M1_bench 822 11,040

IAR Workbench


Test Name RAM (B) FLASH (B)
IAR\C1_bench 271 6,665
IAR\CC1_bench 305 6,919
IAR\CH1_bench 296 8,617
IAR\CHM1_bench 908 14,294
IAR\H1_bench 262 6,714
IAR\HH1_bench 287 6,945
IAR\M1_bench 728 10,041

For the size benchmarks a special benchmark application was used. The estimates shown in  assume a “minimal” application – one that only consists of calling every USB function, with no actual application functionality.  No RAM user buffers are allocated.  Although not practical, this is a baseline benchmark that can be cleanly applied to any application, with the numbers reflecting only the API itself.
          IAR compiler optimization option used is high and balanced
         CCS compiler optimization opton used is --opt_level = 4.

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.

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 Data224
ENDPOINT0 Transmit Data415
USB_RESET455
USB SUSPEND121
USB RESUME504
CDC Receive Data1601
CDC Transmit Data246
HID Receive Data1566
HID Transmit Data106
MSC Receive Data647
MSC Transmit Data1758

Special benchmark applications were used with code inserted to measure letancy  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 USB Developers Package v3.20

1. Copy/Replace stack files2. Re-generate Descriptor Tool Output3. Fix Errors related to USB_MCLK_FREQ value
4. Errors related to USBMSC_config
5. Add Include path to driverlib
6. Old USB projects contained the F5xx_F6xx_Core_Lib folder. Retain this folder only if you use functions from F5xx_F6xx_Core_Lib in your application. This is no longer required by the USB stack. Instead the USB stack uses driverlib and ships a version of driverlib that you can use.

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

Technical Support and Product Updates

back to top


Last updated: 100913.1044

Copyright 2013, Texas Instruments Incorporated