cancel
Showing results for 
Search instead for 
Did you mean: 

STM32L562QEI6 enter Boot through USART interface

MFail.11
Associate II

Hello,

I have a system with one STM32L562QEI6 and one STM32F405RGT6, that is the main MCU.

They communicate with USART interface.

In the main CPU, boot0 and boot1 pins are phisically connected to VCC or GND through some resistors, so I can enter boot mode or leave the program run easily.

On the STM32L562QEI6, I used a pull down in the boot0 pin and I connected this pin also to USART-RX line. When I want to enter boot mode on this MCU, I send a logic high level from the main MCU through USART-RX but the MCU won't boot. I see the high level on boot0 pin but I can't access boot memory. I don't understand why.

Only with external connection between boot0 and VCC, MCU enter boot mode.

Please can you help me?

7 REPLIES 7
Mike_ST
ST Employee

Hello,

Please check Application Note 2606, section 66, to see whether you follow the right procedure to enter bootloader app:

https://www.st.com/content/ccc/resource/technical/document/application_note/b9/9b/16/3a/12/1e/40/0c/CD00167594.pdf/files/CD00167594.pdf/jcr:content/translations/en.CD00167594.pdf

MFail.11
Associate II

Hello,

I know the pattern to boot, the MCU need 1 on BOOT0 pin but:

  • if I send 1 to BOOT0 pin with the usart interface from main MCU the STM32L562QEI6 won't boot
  • if I apply VCC directly to BOOT0 pin the STM32L562QEI6 boot

In both case I measure a high level with the tester on that pin, so the answer is, why in the first case won't boot ?

Thanks

Mike_ST
ST Employee

Hello, I don't know your system...

I assume that when you write "boot" you mean boot on system flash, and "won't boot", mean boot on main flash.

Maybe the high level that you set on boot 0 pin thanks to the USART-RX Line is not set early enough for the L562, because the F405 need to boot first.

Sorry, when I write boot I mean enter bootloader (system memory) and won't boot mean not enter bootloader.

I need to enter bootloader on L562 sending 1 through USART-RX line from F405, that line is linked to boot0 pin.

So I measure 1 with the tester but I have no access to system memory.

If I manually send VCC (with a pull-up resistor) on boot0 pin (with RX-line disconnected thanks to 0 ohm resistor) I have system memry access.

But is L562 kept under reset before the F405 sets the BOOT 0 pin ?

No, L562 is not in reset state, is powered waiting the high level on boot0 pin.

I think that's the problem. The L562 has already read the BOOT0 state and chosen to boot on main flash.