cancel
Showing results for 
Search instead for 
Did you mean: 

Production programming of STM32WB, including FUS and CoPro

ChrisLB
Associate III

Trying to figure out the best way of programming CPUs for production.

With other projects, we would normally get the microcontroller programmed before the PCB SMT stage. This service doesnt appear to be available for STM32WB (too new?), so the intention is to use 4x ST-LINK devices in parallel to program 4 boards at a time on the assembly line.

Whilst I'm fairly clear on how to achieve this using the command line tools, I would like to check this is the only / best way of doing it. The time it takes to upgrade FUS (twice? still not clear if that's required as per release notes 0.5.3 -> 1.0.2 -> 1.1.0), then flash the copro with BLE_stack_full.bin, then flash the main image is longer than we would like.

Can we combine any of the steps? Is it possible to generate an elf file that has "everything" in?

Does ST provide programming services? or chips that are already preprogrammed with the ble stack, ready for our application code?

Thanks

22 REPLIES 22
RPowe.9.306
Associate III

Hi Remi, Can I just clarify a few points please.

  1. 'Old' STM32WB55 didn't have FUS and the BLE stack needed to be programmed using the bootloader?
  2. New STM32WB55 have a FUS which allows the STM Cube Programmer to program the Bluetooth Stack using the ST-Link connection?
  3. There is no way to program an 'old' BLE stack (FEB 2019) into a chip with FUS because it fails authentication?

Thanks, Rich

Remi QUINTIN
ST Employee

stm32wb5x_BLE_Stack_full_fw.bin is an encrypted stack and only a FUS has the correct key to ensure a proper decryption and installation.

When a chip is not secure (ESE = 0) , there is usually no primary FUS loaded on it.

Remi QUINTIN
ST Employee

1) Whatever the programing port use to install an encrypted FW, a FUS is required. Programing commands are sent to the FUS either via the bootloader when the UAS/UART port is used or via the FUS operator when the SWD port is used. The FUS operator is a small piece of code loaded at the start of the Flash memory that transmits the commands to the FUS.

2)Yes! The FUS is used to install a new FUS version (older than the current one) or a new RF stack.

3) Not exactly. It all depends on the FUS version and the RF stack version. It is always recommended to install the RF stack of a CubeWB SW package with the FUS available in that package. But you can install a RF stack v1.7 with a FUS v1.1. for example. I don’t think it would work with a RF stack v1.3 or 1.5.

The description of all the FUS version is available in the table 1 of the application note AN5185.