Programming OLIMEXINO-5510 with MSP430F5510 microcontroller using GNU/Linux Tools


Overview

OLIMEXINO-5510

The OLIMEXINO-5510 development board enables development of applications running on the MSP430F5510.

The MSP430F5510 is a low power microcontroller manufactured by Texas Instruments.

Index


Boot Strap Loader

MSP430F5510 has an integrated USB interface which may be used to upload software. It has an on chip boot strap loader (called BSL) which gets started when the device is powered up when the PUR pin is high.

Citing from MSP430F5510 datasheet:
The default USB BSL evaluates the logic level of the PUR pin after a BOR reset. If it is pulled high externally, then the BSL is invoked.

The TI User's Guide MSP430 Programming Via the Bootstrap Loader User's Guide (SLAU278) points out all the details on MSP430 boot strap loaders.

For the OLIMEXINO-5510 this means: when powering up while "USB_BSL" button is pressed, the MSP430F5510 invokes the BSL. On Linux a hidraw device is created in this case.
To be able to access it as a non-root user, one may create an udev rule file to assign appropriate ownership and file mode to the respective /dev/hidrawX.

Creating an udev rule file /etc/udev/rules.d/99-ti_msp430.rules

#2047:0200 Texas Instruments MSP430 USB HID Bootstrap Loader
SUBSYSTEM=="hidraw", ACTION=="add", ATTRS{idVendor}=="2047", ATTRS{idProduct}=="0200", GROUP="trusted", MODE="0660"

assigns full rights to all users which are members of the "trusted" group.

top

Flashing the MSP430F5510 via it's USB interface

I had a hard time finding out how the MSP430F5510 may be flashed via it's USB interface using the Boot Strap Loader (BSL) using a Linux system.

An article about the BSL can be found at TI wiki site.

Also there is a TI E2E Community forum thread on this topic.

TI has an open source python tool the "Python Firmware Upgrader" included in the Python_Firmware_Upgrader-4_20_00.zip

After unpacking and changing to the Python_Firmware_Upgrader/python-msp430-tools directory running

python setup.py install

as is explained in the release_Notes html file sadly fails as the setup.py script is wrong.
setup.py needs to be fixed by appending ".py" to all the filenames listed in the "scripts" array. After fixing setup.py, running

python setup.py install

finally succeeds.

setup.py wants to install some python modules under /usr/lib/python2.7/site-packages/msp430, for succeeding in this, it needs to be run as root.
But as far as I can see, the msp430 tools also work, when nothing is installed globally.

Next step is running TargetGUI.py from the Python_Firmware_Upgrader directory:

PYTHONPATH=./python-msp430-tools python TargetGUI.py

The above command needs to be run as root, as the /dev/hidrawX device, which is created when the MSP430F5510 is powered up while USB_BSL button is pressed, is only accessible by root.
Alternatively you may create an udev rule to change ownership/mode of the device as explained above in section The Boot Strap Loader.

Running TargetGUI.py like this shows an error:

File "TargetGUI.py", line 229, in open_connection
    full_bsl_txt = open(os.path.join(basedir, '.\\python-msp430-tools\\msp430\\bsl5\\RAM_BSL.00.07.88.38.txt'), 'rb').read()
IOError: [Errno 2] No such file or directory: '.\\python-msp430-tools\\msp430\\bsl5\\RAM_BSL.00.07.88.38.txt'

The above error seems to be due to the python script been written on Windows with it's different path separator character.
To correct this, change line 229 in TargetGUI.py from

        full_bsl_txt = open(os.path.join(basedir, '.\\python-msp430-tools\\msp430\\bsl5\\RAM_BSL.00.07.88.38.txt'), 'rb').read()

to

        full_bsl_txt = open(os.path.join(basedir, './python-msp430-tools/msp430/bsl5/RAM_BSL.00.07.88.38.txt'), 'rb').read()

(Take care to respect the indentation requirements of python).

The file path change above should also work with windows (see the first "Note" in paragraph Maximum Path Length Limitation of the Windows API "Naming Files, Paths, and Namespaces" )

After having done the fixes mentioned above selecting in the menu of TargetGUI.py "File" -> "Load Demo Firmware" -> "LED Blink Example" seems to successfully flash the MSP430F5510 with the LED example code. A LED connected to pin P1_1 (D2 on Olimexino-5510) blinks with a period of around one second.

top

MSPDebug

MSPDebug is a free debugger software for use with MSP430 MCUs. Besides of offering support for JTAG programmers it also supports the TI flash bootloader (BSL).

With MSPDebug it should be possible to upload programs to the OLIMEXINO-5510 but I didn't succeed with that so far.

top

Links

Links to interesting projects and websites

top
line
This site maintained by:
lukas.zimmermann@unibas.ch
My public PGP key
last updated: 2014-11-20 Valid CSS! Valid XHTML 1.0 Strict