cancel
Showing results for 
Search instead for 
Did you mean: 

STM32F429 system bootloader responds with 0xD2

brianwilloughby9
Associate II
Posted on September 09, 2015 at 04:42

I have a custom PCB with the STM32F429, and can set the BOOTB0 and BOOTB1 before #RST. My code asserts the Reset line for 20 milliseconds, so I hope that is long enough. Strangely, upon selecting the System Bootloader, all I ever get over the SPI link is 0xD2.

I'm sending the sync byte of 0x5A, and following the diagram for the Bootloader SPI synchronization frame.

I suppose it's possible that my clock rate is too high (5 MHz). What is the maximum for the STM32F42xxx System Bootloader? AN2606 say up to 8 MHz, so I assume 5 MHz is fine. Also, other developers are using this same custom hardware to talk to their firmware on the STM32F429, and the SPI link is working for them. The only difference is that I need to access the System Bootloader.

If BOOTB selects SRAM, I get 0xFF, and if BOOTB select Main Flash, I get 0x00. I even tried the alternate Main Flash (BOOTB0=0 BOOTB1=1) and received three 0xFF followed by 0x00s. I haven't probed the BOOTB pins, but the change in behavior tells me that I'm at least able to get different results with different BOOTB selections.

Any ideas?
1 REPLY 1
brianwilloughby9
Associate II
Posted on September 11, 2015 at 02:02

I checked the SPI lines with a 'scope, and it appeared that nothing but Slave Select was active. There was no clock or MOSI activity.

The was a problem with both the operating system and embedded firmware such that the Master SPI port was not active, and not in the right mode.

Now I seem to be getting reasonable bytes back from the STM32F429, so I'm back to developing a bootloader controller.