SLAU533D September   2013  – April 2017

 

  1.   MSP430F5529 LaunchPad™ Development Kit (MSP‑EXP430F5529LP)
    1.     Trademarks
    2. 1 Getting Started
      1. 1.1 Key Features
      2. 1.2 Kit Contents
      3. 1.3 Out-of-Box Experience
        1. 1.3.1 Step 1: Install a Software Development Platform
        2. 1.3.2 Step 2: Connect the Hardware
        3. 1.3.3 Step 3: Verify the storage volume has been loaded
        4. 1.3.4 Step 4: Open a text editor, and press the buttons
        5. 1.3.5 Step 5: Customize the strings
    3. 2 Hardware
      1. 2.1 Block Diagram
      2. 2.2 Hardware Features
        1. 2.2.1 MSP430F5529
        2. 2.2.2 eZ-FET lite Onboard Emulator
        3. 2.2.3 Integrated Full-Speed USB Hub
        4. 2.2.4 Power
        5. 2.2.5 Clocking
        6. 2.2.6 Application (or "Backchannel") UART
        7. 2.2.7 Emulator and Target Isolation Jumper Block
        8. 2.2.8 Isolation Jumper Block: 3.3-V and 5-V Jumpers
        9. 2.2.9 Isolation Jumper Block: Emulator Connection and Application UART
      3. 2.3 Measure Current Draw of MSP430 MCU
      4. 2.4 Using an External Power Source
        1. 2.4.1 External 3.3-V Power Source
        2. 2.4.2 External 5-V Power Source Without USB Connection
        3. 2.4.3 External 5-V Power Source With USB Connection
      5. 2.5 Using the eZ-FET lite Emulator With a Different Target
      6. 2.6 USB BSL Button
      7. 2.7 BoosterPack Plug-in Module Pinout
      8. 2.8 Design Files
      9. 2.9 Hardware Change Log
    4. 3 Software Examples
      1. 3.1 MSP430 Software Libraries: driverlib and the USB API
      2. 3.2 Viewing the Code
        1. 3.2.1 CCS
        2. 3.2.2 IAR
      3. 3.3 Example Project Software Organization
      4. 3.4 USB Configuration Files
      5. 3.5 Out-of-Box Experience: emulStorageKeyboard
        1. 3.5.1  Flowchart
        2. 3.5.2  Pre-Initialization
        3. 3.5.3  Initialization
          1. 3.5.3.1 Configuring the Keyboard
          2. 3.5.3.2 Configuring the MSC Interface
        4. 3.5.4  Handling SCSI Commands
        5. 3.5.5  LPM0 Entry
        6. 3.5.6  LPM0 Exit
        7. 3.5.7  Emulated Storage Volume
        8. 3.5.8  Sending Data as a USB Keyboard
        9. 3.5.9  Properly Handling USB Unplug Events
        10. 3.5.10 Non-Maskable Interrupt (NMI) Vector
      6. 3.6 Example: simpleUsbBackchannel
        1. 3.6.1 What It Does
        2. 3.6.2 Installing the CDC Interface
        3. 3.6.3 Operating the Example
        4. 3.6.4 Backchannel UART Library: bcUart.c, bcUart.h
        5. 3.6.5 Code Description: Initialization
          1. 3.6.5.1 Stopping the Watchdog
          2. 3.6.5.2 Configuring VCORE
          3. 3.6.5.3 Configuring Clocks
          4. 3.6.5.4 Configuring Ports
          5. 3.6.5.5 Initializing the Backchannel UART
          6. 3.6.5.6 Configuring USB
        6. 3.6.6 Code Description: Main Loop
        7. 3.6.7 Modifying to Use an HID-Datapipe Interface
      7. 3.7 Starting Device Manager
    5. 4 Additional Resources
      1. 4.1 LaunchPad Development Kit Websites
      2. 4.2 Information on the MSP430F5529
      3. 4.3 Download CCS, IAR, mspgcc, or Energia
      4. 4.4 USB Developers Package
      5. 4.5 MSP430Ware and TI Resource Explorer
      6. 4.6 F5529 Code Examples
      7. 4.7 MSP430 Application Notes
      8. 4.8 TI E2E Community
      9. 4.9 Community at Large
    6. 5 FAQs
    7. 6 Schematics
  2.   Revision History

USB BSL Button

Like the vast majority of MSP430 MCUs, the F5529 has an on-chip bootloader (BSL). The BSL is a program that resides in a special protected location in the MCU flash memory and facilitates communication with an external host. Like tools with JTAG access, it can read and write the MCU flash memory. But unlike JTAG tools, it cannot be used to emulate code.

The interface to the BSL is often a UART or sometimes I2C. On USB-equipped derivatives, the BSL interface is USB.

In situations where JTAG access is not available, the BSL plays an important role in accessing the device. For example, it can be used to recover the device when something has corrupted internal flash. It is often used for products in the field, when there is no JTAG access. Because of the use in the field, the BSL is password-protected, which prevents unwanted access to proprietary application software. To serve its role in updating MSP430 flash memory, the BSL must be invoked, meaning that execution must be transferred to it. This can happen a few different ways, but on the USB BSL, one way is to pull the PUR pin high immediately after a BOR reset.

The USB BSL button on the F5529 LaunchPad development kit (see Figure 21) serves this purpose.

usb_bsl_button_slau533.pngFigure 21. USB BSL Button

Hold the button down while attaching the F5529 LaunchPad development kit to the USB host, continue to hold it for approximately one second after attaching, and then release. (This assumes the F5529 LaunchPad development kit was unpowered prior to attaching, which allows a power-up event to occur.) The target F5529 should enumerate under USB BSL control as a HID interface. The USB BSL has its own vendor ID (VID) and product ID (PID), the codes used in USB to separate one USB product from another. The BSL VID and PID pair is 0x2047 and 0x0200.

In Device Manager, the HID interface can be found under the "Human Interface Devices" group. (See Section 3.7 for instructions on starting Device Manager.) If you open Device Manager prior to attaching the LaunchPad development kit as described above, you will see it refresh, and then two new entries appear: "HID-compliant device" and "USB Input Device". Both refer to the one HID interface presented by the USB BSL.

These are generic names that can also appear for other HID devices. To be completely sure these entries derive from the USB BSL, you can look for the VID and PID associated with them, and make sure they are 0x2047 and 0x0200. For every such entry under the "Human Interface Devices" group, right-click on the entry, then click Properties, then go to the "Details" tab, and select "Hardware IDs" from the pulldown menu (see Figure 22).

identifying_the_usb_bsls_hid_interface_slau533.pngFigure 22. Identifying the USB BSL HID Interface in Device Manager

For every other HID interface entry, the IDs in the "Value" field are different. For the USB BSL, they include the strings "VID_2047" and "PID_0200".

If these interface entries do not appear, then something went wrong in the procedure to press the USB BSL button to invoke the BSL. Retry the procedure.

After this interface enumerates, a host application is needed to interface with it and issue BSL commands to access the firmware on the MSP430 MCU. The MSP430 USB Developers Package includes a firmware updater application that uses the USB BSL to download programs. For its input, it uses TI-TXT object-code files. TI-TXT is a simple text-based object-code format that used with MSP430 MCUs to store and distribute compiled code. These files can be generated by CCS or IAR. TI-TXT files for the software examples are included in the zip file (\bin\simpleBackchannel.txt and \bin\emulStorageKeyboard.txt).

See the application report USB Field Firmware Updates on MSP430 MCUs for information about designing firmware update into your USB application. Additional information about the MSP430 BSL can be found in the MSP430 Programming With the Bootloader (BSL).