cancel
Showing results for 
Search instead for 
Did you mean: 

STM32WB15: do you need to pull PH3-BOOT0 high in order to program the authentication key or can you just program it booting up with no firmware image programmed in Main Flash memory and PH3-BOOT0 pulled low? Both ways should boot into System memory right?

JWash.3
Associate

Details in the SECoreBin/readme.txt file for the STM32WB code says that the MCU needs to be booted with PH3-BOOT0 pulled high in order to program the Authentication Key. I can't find any other documentation that indicates that this is true. Does the MCU only need to be booted into System Memory to do this? We haven't gotten far enough with our bootloader design to test the key, but we need to finalize our HW design.

1 REPLY 1
Remy ISSALYS
ST Employee

Hello,

In order to communicate with FUS (for any command, including programming User Authentication Key), you need to use the mailbox and IPCC system as explained in details in AN5185.

For this, there are 3 ways:

  1. Use Bootloader commands: Send commands to Bootloader who will communicate with FUS. In this case you need to boot on Bootloader either by using Boot0 pin or nBoot0 option byte (more details on how to boot on Bootloader in Reference Manual and AN2606). In this case you can use CubeProgrammer that communicated with Bootloader through USB or UART in order to send commands to FUS. Or also you can write your own Bootloader host (USART/USB) in order to replace CubeProgrammer and send commands to Bootloader.
  2. Use applicative code in CM4 to communicate with FUS. A template and examples are provided in STM32WB Cube firmware package.
  3. Use SWD to communicate with FUS through CubeProgrammer SWD FUS_Operator interface: in CubeProgrammer, you select SWD interface and then go to the FUS tab and send the commands from there. But I think that CubeProgrammer doesn't support yet User Authentication Key commands on SWD interface (only USB/UART support it currently). It will be supported in next release.

Best Regards