cancel
Showing results for 
Search instead for 
Did you mean: 

Starting ROM bootloader on STM32F429 Discovery

anders23
Associate II
Posted on May 28, 2015 at 20:23

I want to enter the Bootloader on STM32F429 Discovery and reprogram the internal flash via I2C.

I read AN2606 and then connected the following pins from my I2C master:

SDA <-> PB9

SCL <-> PB6

GND <-> GND

BOOT0 <-> 3v

Is this correct? I get no serial output on the microusb port anymore, so *something* has happened. i2cdetect detected nothing on the bus. Should it have been able to detect the bootloader if it had started?

Assuming I eventually get into this bootloader. Is there a ready implementation of the i2c-bootloader protocol for linux out there? Should be able to write it myself, but have no real desire to do it :)

#stm32f429discovery #stm32 #i2c #bootloader
4 REPLIES 4
Posted on May 28, 2015 at 21:29

You could try confirming it's in the boot-loader mode via the serial port, and what version you have. It takes no time to enter the System Loader, but I haven't looked at the criterion for entering/sensing I2C bus activity, or which version of the loader implemented such.

With the I2C you're going to have to craft your own app that implement's ST's protocol, I doubt some chip finding app is going to probe it in a meaningful way, short of confirming it gets an ACK from a specific I2C address.

The constituency of Linux users programming the STM32 via I2C, I would guess is pretty small.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
anders23
Associate II
Posted on May 29, 2015 at 08:54

Thanks for the reply.

I use the micro usb for debugging now. It is a Virtual ComPort on normal boot, but nothing when I try to start from bootloader. I suspect the serial port you mean is the uart? The bootloader will output something there on start?

Will likely, as you say, have to craft something myself. I see there is some i2c-loading in https://code.google.com/p/stm32flash/, but haven't gone into details yet.

Posted on May 29, 2015 at 14:40

The System Loader supports serial connectivity via USART1 and USART3 on specific pins as I recall.

You send an 0x7F byte at 8E1 and expect to see an 0x79 response. The chip is silent otherwise.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
anders23
Associate II
Posted on June 02, 2015 at 21:15

This actually kinda works. For some reason it does not enter the bootloader each time I power on, but it does so about 3 out of 4 times. That is enough for me for prototyping my bootloader.

I've managed to read versions and load new software via the i2c bootloader now. What remains is to figure out why I always get a nack on mass erase of the flash, even though it actually manages to do the erase (at least of the bank I use) :)