MSP430 USB Developers  Package 3.20.00 Release Notes

This release note is divided into the following sections:

Introduction

MSP430 USB Developers Package Version 3.20.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)

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

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.00 Release (this release).

Defects Fixed in v3.20.00:

1159 - Need to update text headers in USB API source files 
2127 USBMSC_poll should return kUSBMSC_processBuffer instead of kUSBMSC_okToSleep in one more place


back to top

Upgrading and Compatibility Information

This release has many significant changes from MSP430 USB Developers Package 1.00.00.05.  It is important to understand the information below in order to successfully use this release.

Porting instructions for CCS based project from 1.00.00.05 to 3.10.00

  1. Make a BACKUP of your old application. This is important as we will refer to files in the BACKUP later.
  2. Close CCS if open.
  3. Remove the following directories from your project folder - Common, USB_CDC_API, USB_HID_API, USB_Common.
  4. If your project contains folders F550x and F552x, then these directories MUST be deleted. The previous example sets included a separate CCS build configuration for each device family, and thus included these directories.  However CCS now makes it very easy to move a project from one device to another; instructions are included at the end of this section.
  5. File msp430f5529.cmd MUST be deleted from the project. The previous 1.00.00.05 version of the product shipped device-specific cmd and ccxml files. These files may be deleted. CCS-provided files are used in v3.10.00. Note the nk_msp430f5529.cmd may have to added back manually.
  6. Delete USB_constructs.c and USB_constructs.h
  7. Copy the following folders from v3.10.00 install into your project folder – “USB_API” and “F5xx_F6xx_Core_Lib”. These folders and files are present in ALL CDC and HID examples.  Their content from example to example is identical, so they can be copied from any of the examples (for example, C1_example).
  8. Copy usbConstructs.c and usbConstructs.h into your project. Merge any changes to USB_constructs.c that were made in BACKUP to usbConstructs.c.
  9. Copy msp430USB.cmd into your project.
  10. Copy usbEventHandling.c into your project. Merge any changes made in usb_eventHandling.c from BACKUP.
  11. Create a new folder called “USB_config” within your project. (This folder can have a different name, but the API’s documentation refers to this folder as “USB_config”.)  This folder will contain the Descriptor Tool output generated in the next step.
  12. Run the Descriptor Tool in v3.10.00. Open the *.dat file from the BACKUP. This file can be saved by the Descriptor Tool, allowing the inputs to be re-loaded into the GUI at a later time for re-generation of the output files. If the *.dat file is missing, you will need to manually input the Descriptor Tool settings.
  13. Save a new *.dat file (File->SaveAs) in your application. It can be used to easily move to new versions of the Descriptor Tool in the future.
  14. Press the “Generate Output” button to generate new source files.  Place them into the newly created “USB_config” directory.  NOTE: If creating an HID-Traditional device, descriptor.c and descriptor.h will need some information migrated from the BACKUP versions – see the Programmer’s Guide’s chapter on creating HID-Traditional devices.
  15. Open your project in CCS.
  16. Before building the project, you will need to set the following include paths in Project->Properties->C/C++ Build->MSP430 Compiler->Include Options.  These are required to compile any project using this API.  NOTE: You will need to set these paths one by one, by clicking on the green plus.
${PROJECT_ROOT}
${PROJECT_ROOT}/USB_config
${PROJECT_ROOT}/F5xx_F6xx_Core_Lib
  1. Additionally, the following include paths may be added, for the application to call the API functions.
${PROJECT_ROOT}/USB_API/USB_Common
${PROJECT_ROOT}/USB_API/USB_CDC_API
${PROJECT_ROOT}/USB_API/USB_HID_API
${PROJECT_ROOT}/USB_API/USB_MSC_API
  1. You may need to change some include paths in your application source files, as per the new directory structure. You might choose to eliminate all paths from your include statements and use include paths in your project settings as described above. Here is a mapping of the changes that may be required.
Old Include Paths New Include Paths
#include "Common\device.h"  #include "USB_API/USB_Common/device.h"
OR
#include "device.h" (1)
#include "Common\types.h"  #include "USB_API/USB_Common/types.h"
OR
#include "types.h" (1)
#include "USB_Common\descriptors.h"  #include "descriptors.h"
#include "USB_Common\usb.h" #include "USB_API/USB_Common/usb.h"
OR
#include "usb.h" (1)
#include "Common\hal_UCS.h" #include "HAL_UCS.h" (2)
#include "Common\hal_pmm.h"  #include "HAL_PMM.h" (2)
#include "USB_CDC_API\UsbCdc.h"  #include "USB_API/USB_CDC_API/UsbCdc.h"
OR
#include "UsbCdc.h" (1)
#include "USB_HID_API\UsbCdc.h" #include "USB_API/USB_HID_API/UsbHid.h"
OR
#include "UsbHid.h" (1)
#include "Usb_constructs.h" #include "usbConstructs.h" 

(0) Note the change from backslashes to forward-slashes
(1) Needs step 17 above
(2) Note the change from lower case to upper case           
  1. Change the following function calls.
Old New
hid_sendDataWaitTilDone() hidSendDataWaitTillDone()
hid_sendDataInBackground() hidSendDataInBackground()
hid_receiveDataInBuffer() hidReceiveDataInBuffer()
cdc_sendDataWaitTilDone() cdcSendDataWaitTilDone()
cdc_sendDataInBackground() cdcSendDataInBackground()
cdc_receiveDataInBuffer() cdcReceiveDataInBuffer()

  1. Change the following values in source files.       
 XT1LFOFFG = 0
 XT1HFOFFG = 0
  1. Now rebuild the project.

Porting instructions for IAR based project from 1.00.00.05 to 3.10.00

  1. Make a BACKUP of your old application. This is important as we will refer to files in the BACKUP later.
  2. Close IAR if open.
  3. Remove the following directories from your project folder - Common, USB_CDC_API, USB_HID_API, USB_Common.
  4. Delete USB_constructs.c and USB_constructs.h
  5. Copy the following folders from v3.10.00 install into your project folder – “USB_API” and “F5xx_F6xx_Core_Lib”. These folders and files are present in ALL CDC and HID examples.  Their content from example to example is identical, so they can be copied from any of the examples (for example, C1_example).
  6. Copy usbConstructs.c and usbConstructs.h into your project. Merge any changes to USB_constructs.c that were made in BACKUP to usbConstructs.c.
  7. Copy usbEventHandling.c into your project. Merge any changes made in usb_eventHandling.c from BACKUP.
  8. Create a new folder called “USB_config” within your project. (This folder can have a different name, but the API’s documentation refers to this folder as “USB_config”.)  This folder will contain the Descriptor Tool output generated in the next step.
  9. Run the Descriptor Tool in v3.10.00. Open the *.dat file from the BACKUP. This file can be saved by the Descriptor Tool, allowing the inputs to be re-loaded into the GUI at a later time for re-generation of the output files.  If the *.dat file is missing, you will need to manually input the Descriptor Tool settings.
  10. Save a new *.dat file (File->SaveAs) in your application. It can be used to easily move to new versions of the Descriptor Tool in the future.
  11. Press the “Generate Output” button to generate new source files.  Place them into the newly created “USB_config” directory.  NOTE: If creating an HID-Traditional device, descriptor.c and descriptor.h will need some information migrated from the BACKUP versions – see the Programmer’s Guide’s chapter on creating HID-Traditional devices.
  12. Open your project in IAR. Clean up your project.  Delete old directories - Common, USB_common, USB_CDC_API, USB_HID_API.  Add new ones - USB_API, USB_config, F5xx_F6xx_Core_Lib.  Add files - usbConstructs.c and usbEventHandling.c.
  13. Before building the project you will need to set the following include paths in Project->Options->C/C++ Compiler->Preprocessor->Additional Include Directories: These are required to compile any project using this API.
$PROJ_DIR$
$PROJ_DIR$/USB_config
$PROJ_DIR$/F5xx_F6xx_Core_Lib
  1. Additionally the following include paths may be added, for the application to call the API functions.
$PROJ_DIR$/USB_API/USB_Common
$PROJ_DIR$/USB_API/USB_CDC_API
$PROJ_DIR$/USB_API/USB_HID_API
$PROJ_DIR$/USB_API/USB_MSC_API
  1. You may need to change some include paths in your application source files as per the new directory structure. You might choose to eliminate all paths from your include statements and use include paths in your project settings as described above. Here is a mapping of the changes that may be required. 
Old Include Paths New Include Paths
#include "Common\device.h"  #include "USB_API/USB_Common/device.h"
OR
#include "device.h" (1)
#include "Common\types.h"  #include "USB_API/USB_Common/types.h"
OR
#include "types.h" (1)
#include "USB_Common\descriptors.h"  #include "descriptors.h"
#include "USB_Common\usb.h" #include "USB_API/USB_Common/usb.h"
OR
#include "usb.h" (1)
#include "Common\hal_UCS.h" #include "HAL_UCS.h" (2)
#include "Common\hal_pmm.h"  #include "HAL_PMM.h" (2)
#include "USB_CDC_API\UsbCdc.h"  #include "USB_API/USB_CDC_API/UsbCdc.h"
OR
#include "UsbCdc.h" (1)
#include "USB_HID_API\UsbCdc.h" #include "USB_API/USB_HID_API/UsbHid.h"
OR
#include "UsbHid.h" (1)
#include "Usb_constructs.h" #include "usbConstructs.h" 

(0) Note the change from backslashes to forward-slashes
(1) Needs step 17 above
(2) Note the change from lower case to upper case           
  1.  Change the following function calls.
Old New
hid_sendDataWaitTilDone() hidSendDataWaitTillDone()
hid_sendDataInBackground() hidSendDataInBackground()
hid_receiveDataInBuffer() hidReceiveDataInBuffer()
cdc_sendDataWaitTilDone() cdcSendDataWaitTilDone()
cdc_sendDataInBackground() cdcSendDataInBackground()
cdc_receiveDataInBuffer() cdcReceiveDataInBuffer()
  1.  Change following values in source files.        
XT1LFOFFG = 0
XT1HFOFFG = 0
  1.   Now rebuild the project.

Other CCS specific considerations

Other IAR specific considerations

back to top


Host Support

Supported Operating Systems on the USB host:
back to top

Hardware

Supported devices

Boards

back to top


IDEs and Compiler

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 SizeRead (mb/sec)Write (mb/sec)
40960.200.18
81920.220.18
162840.230.16
327680.240.18
655360.240.15
1310720.230.17
2621440.240.19
5242880.240.19

MSC Performance

Block SizeRead (mb/sec)Write (mb/sec)
40960.140.14
81920.190.18
162840.190.17
327680.190.18
655360.190.17
1310720.190.18
2621440.190.18
5242880.190.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

back to top


Last updated: March 10, 2011