Flashing the IFLAT-32 through USART

In this article I described how to flash the IFLAT-32 through X-Link/OpenOCD. If you only intend to flash the device (and not to debug on chip), you don’t even need a JTAG (like the X-Link). When setting the STM32 boot mode to „System Memory“, after reset it „sits and waits“ for incoming data to flash on the USART. Thus, the only thing needed is an TTL capable USB to serial adapter, and a little tool called „stm32flash“.

For an USB to serial converter I use the FT232RL. Connect RX of the FT232RL to TX of the IFLAT-32 and TX of the FT232RL to RX of the IFLAT-32. If you connect the IFLAT and the FT232RL to the same USB port there is no need to connect the two ground lines together. Otherwise connect ground from the FT232RL to the IFLAT-32.

Connecting the IFLAT to the FT232RL

Connecting the IFLAT to the FT232RL

Next set the boot mode jumper to „System Memory“ on the IFLAT. I replaced the jumper on my IFLAT with a 2 state switch which allows me to toggle the boot modes (remember, that the IFLAT „sits and waits“ after a power cycle when in boot mode „System Memory“).

The "boot selector"

The "boot selector"

The "boot selector" mounted

The "boot selector" mounted








Now we need the tool for flashing. Get „stm32flash“ from the svn:

svn checkout http://stm32flash.googlecode.com/svn/trunk/ stm32flash-read-only

And build it:

cd stm32-flash-read-only
sudo make install

Now if your IFLAT is connected, and reseted, you can check if the stm32-flash utility is able to connect by issuing:

stm32flash /dev/ttyUSB0

This should give you some information about your IFLAT-32.

To flash a firmware (bin, hex or elf format), issue the following command:

stm32flash -w firmware.bin -v /dev/ttyUSB0 -g 0x0

This flashes the file „firmware.bin“, and starts execution at the beginning afterwards („-g 0x0“). Sometime more then one reset is needed on the IFLAT before flashing could be done successfully.

Leave a Reply

You must be logged in to post a comment.