# MSP430 USB Developers Package 3.20.02 Release Notes

This release note is divided into the following sections:

- Introduction
- Package Contents
- Documentation
- What's New
- Upgrading and Compatibility Information
- Host Support
- Hardware
- IDEs
- Known Issues
- Benchmarks
- Versioning
- Technical Support and Product Updates

## Introduction

MSP430 USB Developers Package Version 3.20.01 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)
A user of previous releases 3.00.00 or after require minimal changes to the application. Users of 1.00.00.05 need to update their applications. They 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_Stacks. (The MSP430 USB API & Application Examples):

- Contains the MSP430 USB CDC/HID/MSC API. You can use this as the foundation of your MSP430 USB development.

- Contains a recommended Main Loop Framework (a commented framework from which to begin development)

- 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:

- Loading/running the API stack examples
- Documentation of the API calls
- How to use the Descriptor Tool
- Practical guidance on writing USB applications
- Links to other MSP430 USB information

- Release Notes. Contains information on new features, bugs fixed, compatibility, benchmarks and installation instrcutions.
- 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 implementing a HID-Datapipe interface.
- Release Notes for the HID demo application

back to top

## Documentation

A complete Programmer’s Guide is provided with this release. Please reference it for all information concerning the API stacks and Descriptor Tool.
Programmers_Guide_MSP430_USB_API
back to top

## What's New

MSP430 USB Developers Package 3.20.02 Release (this release).

- New HID event handles to support Feature Reports

- BYTE *USBHID_handleSetReport ();
- BYTE USBHID_handleSetReportDataAvailable ();
- BYTE *USBHID_handleGetReport ();

- To reduce interrupt latency areas where interrupts are disabled/restored in the stack were changed to use endpoint interrupt disable/restore.
- Bug Fixes

### Defects Fixed in v3.20.02:

2756 | USB stack for the MSP-FET / eZ-FET calls DINT/EINT in an high level function of the stack
3360 | USB_enable () starts with non-configurable oscillator drive strength settings for Xt2 - always XT2DRIVE_3
1353 | Initialize rxCount in usbConstructs.c.
1811 | Change report_desc_size to WORD instead of BYTE
2317 | Update Readme.txt and SW Manifest to reflect removal of descriptor tool
3069 | Manifest needs to be fixed
3286 | Remove references to UPCS0 ad this is no longer defined in UG and header files.
3287 | Data Residue is incorrect for Rad Capacity and Mode Sense commands
3288 | Mode Sense commands need to STALL after short packet according to the 13 cases
3289 | Readme needs to be fixed to excule desc tool that is no longer shipped dues to diff licensing models
3291 | Remove references to P7 port in stack. These are leftovers from preformance testing.
3297 | Update Programmers Guide images of HID demo to use new HID demo.

back to top

## Upgrading and Compatibility Information

### CCS specific considerations

- Porting to a different device. The example projects provided in this product are pre-configured for the MSP430F5529 device. The projects are designed to be very easily adapted to any other USB-equipped MSP430, simply by changing the selected device in the project’s options -- follow these steps.

- Open the project in CCS
- Go to Project->Properties->CCS Build. Select the device from the drop-down menu and click “Apply”. Select "Create a new build configuration initialized with build options from the existing configuration". Select a new name for this configuration and make it active if needed.
- NOTE: Please edit the Project->Properties->C/C++ Build->MSP430 Compiler->Predefined Symbols to include ONLY ONE device define of format __MSP430Fxxx__. Having more than one will result in improper compilation and/or operation.

### IAR specific considerations

- The example projects provided in this product are pre-configured for the MSP430F5529 device. The projects are designed to be very easily adapted to any other USB-equipped MSP430, simply by changing the selected device in the project’s options -- follow these steps.

- Open the project in IAR
- Go to Project->Options->General Options->Target and change the device.

- When the USB API is built into a library, and an application is built against the library, iUsbInterruptHandler gets optimized out by IAR Linker. To WORKAROUND this problem add “-giUsbInterruptHandler” as part of linker options.
- n IAR, the environment gives a choice of using the DLIB standard library, or the legacy CLIB. To compile the API stacks, DLIB must be selected.

back to top

## Host Support

Supported Operating Systems on the USB host:

- Windows 7 (32bit and 64 bit), Windows XP, Windows8, Vista
- Ubuntu version 9.04
- Mac OS

back to top

## Hardware

### Supported devices

- The MSP430 USB API supports all USB-equipped MSP430 devices:

- MSP430F552x/551x
- MSP430F550x (note that this includes the F5510)
- MSP430F563x/663x

- The API automatically adapts to any selected device, based on the CCS/IAR project’s options.
- If using a device other than the “flagship” device in each family (that is, the F5638, F6638, F5529, or F5510): The examples contain a function Init_Ports() which initializes all unused port I/Os; this avoids excess power draw resulting from floating inputs. However, devices other than the flagship device may contain less I/Os than the flagship. If compiling for one of these devices, some of the initializations in this function may generate an error. The offending lines can simply be commented-out.
- See http://www.ti.com/msp430usb for more information on these devices.

### Boards

- The examples should build and run on any hardware based on an USB-equipped MSP430, provided it is properly implemented. However, special concern should be paid to the I/O initializations in Init_Ports(). The examples were primarily designed to run on MSP430 FET target boards – for example, the TS430PN80USB for the MSP430F5529. All the examples include a function Init_Ports(), which initializes the unused port I/Os; this avoids excess power draw resulting from floating inputs. However, doing so makes this function specific to MSP430 FET target boards. If using other hardware, this function may need to be modified.
- Some of the MSC API examples are designed to run on the MSP430F5529 Experimenters’ board - MSP-EXP430F55529. This is because they require the SD-card interface on this board.

back to top

## IDEs and Compiler

- Code Composer Studio Version: 4.2.0.10018 with MSP430 C/C++ Compiler v3.3.1. All examples can compile within the 16K-limited free version.
- IAR Embedded Workbench for MSP430 5.10 with IAR C/C++ Compiler V5.20.1.50215/W32. Works with either the free, 8K-limited IAR Kickstart or a fully-licensed version; however, the MSC API does not fit within 8K and therefore requires a fully-licensed version.
- SYSBIOS v6.32.01.38 and XDCTOOLS v3.22.01.20

back to top

## Known Issues

None
back to top

## Benchmarks

### Size Benchmarks

#### Code Composer Studio

Test Name | RAM (B) | FLASH (B)
CCS\C1_bench | 254 | 5,920
CCS\CC1_bench | 288 | 6,186
CCS\CH1_bench | 346 | 8,155
CCS\CHM1_bench | 880 | 13,697
CCS\H1_bench | 312 | 5,829
CCS\HH1_bench | 336 | 6,072
CCS\M1_bench | 704 | 8,930

#### IAR Workbench

Test Name | RAM (B) | FLASH (B)
IAR\C1_bench | 269 | 5,279
IAR\CC1_bench | 303 | 5,517
IAR\CH1_bench | 358 | 7,130
IAR\CHM1_bench | 880 | 11,933
IAR\H1_bench | 316 | 5,335
IAR\HH1_bench | 341 | 5,565
IAR\M1_bench | 698 | 7,941

Note: Special benchmark application used.
IAR compiler optimization option used is high and balanced
CCS compiler optimization opton used is --opt_level = 3.

### MSC Performance (Double Buffering)

Block Size | Read (mb/sec) | Write (mb/sec)
4096 | 0.20 | 0.18
8192 | 0.22 | 0.18
16284 | 0.23 | 0.16
32768 | 0.24 | 0.18
65536 | 0.24 | 0.15
131072 | 0.23 | 0.17
262144 | 0.24 | 0.19
524288 | 0.24 | 0.19

### MSC Performance

Block Size | Read (mb/sec) | Write (mb/sec)
4096 | 0.14 | 0.14
8192 | 0.19 | 0.18
16284 | 0.19 | 0.17
32768 | 0.19 | 0.18
65536 | 0.19 | 0.17
131072 | 0.19 | 0.18
262144 | 0.19 | 0.18
524288 | 0.19 | 0.17

Note: VDBENCH application used for MSC benchmarking.

### CDC Performance

Direction | Speed | CPU Freq
RX | 99.917KBps | 1.000MHz
RX | 197.082KBps | 2.000MHz
RX | 340.978KBps | 4.000MHz
RX | 511.363KBps | 8.000MHz
RX | 510.828KBps | 12.000MHz
RX | 511.550KBps | 16.000MHz
RX | 511.663KBps | 20.000MHz
RX | 511.538KBps | 25.000MHz
TX | 77.723KBps | 1.000MHz
TX | 157.463KBps | 2.000MHz
TX | 258.933KBps | 4.000MHz
TX | 511.376KBps | 8.000MHz
TX | 511.825KBps | 12.000MHz
TX | 511.813KBps | 16.000MHz
TX | 512.000KBps | 20.000MHz
TX | 512.000KBps | 25.000MHz

Note: Tranfer size for CDC benchmarks is 2048 arrays with 1024bytes/array
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

- Please contact softwaresupport@ti.com for technical support.
- TI E2E Community

back to top

Last updated: March 10, 2011