March 2011 Doc ID 018530 Rev 1 1/10
STM32F105/107 in-application programming using a USB host
An important requirement for most Flash-memory-based systems is the ability to update
firmware installed in the end product. This ability is referred to as in-application
programming (IAP). The purpose of this application note is to provide general guidelines for
creating an IAP application.
The STM32F105/107 microcontroller can run user-specific firmware to perform IAP of the
microcontroller-embedded Flash memory. This feature allows the use of any type of
communication protocol for the reprogramming process (such as CAN, USART, USB). USB
Host Mass storage is the example used in this application note.
This kind of IAP using USB Host is very interesting because it is a standalone IAP in which
the user does not need to use a host computer to perform the firmware upgrade. The user
only needs a Flash disk to upgrade the target STM32 device.
Table 1. Glossary
CAN Controller area network
IAP in-application programming
ICP In-circuit programming
JTAG Joint Test Action Group (JTAG) debugger
SWD Serial wire debugging.
USART Universal synchronous/asynchronous receiver/transmitter
USB Universal serial bus