Skip to main content
Htzuh
Associate II
July 19, 2019
Question

STM32WB55 BLE Stack can't work on stm32wb55RGV6

  • July 19, 2019
  • 6 replies
  • 2612 views

Hi All,

I have trouble getting the BlE working on my new hardware(stm32wb55RGV6). The prgram can't enter into

 APP_BLE_Init( ); . The same code in P-NUCLEO-WB55.Nucleo(stm32wb55RGV6U)

can work. What's different between stm32wb55RGV6  and stm32wb55RGV6U?

This topic has been closed for replies.

6 replies

Remi QUINTIN
Technical Moderator
July 19, 2019

stm32wb55RGV6 and stm32wb55RGV6U are exactly the same chip. The description on the STM32WB55 Nucleo pack did not mention the last digit "6" which  only add an information on the supported temperature range (-40 to +85°C).  Is the tm32wb55RGV6U populated on your own board or on an ST board? Did you get any error when flashing your device?

Htzuh
HtzuhAuthor
Associate II
July 29, 2019

Thanks.

The stm32wb55RGV6 was on my own board.

I use the stm32 cubeprogrammer to read address on 0x080CC000

and found that the chip hadn't the ble stack.

Then , i installed the stm32wb5x_FUS_fw.bin on 0x080EC000

stm32wb5x_BLE_Stack_fw.bin on 0x080CC000

stm32wb5x_BLE_HCILayer_fw.bin on 0x080DC000.

The prgram still can't enter into APP_BLE_Init( ); .

Htzuh
HtzuhAuthor
Associate II
July 30, 2019

I found that the ICs (stm32wb55RGV6) which i bought had no FUS.

As shown below

0690X000009Zb7qQAC.jpg

Is it normal situation? Should i need to download and install

DFU at first?

Thanks.

Remi QUINTIN
Technical Moderator
August 5, 2019

No FUS on your chip is not a normal situation. So load FUS V1.0.1 in your case before going any further in the update of the BLE stack.

You wrote

>>

then , i installed the stm32wb5x_FUS_fw.bin on 0x080EC000 => No error?

stm32wb5x_BLE_Stack_fw.bin on 0x080CC000 => OK

stm32wb5x_BLE_HCILayer_fw.bin on 0x080DC000. => No as the previous binary is enough.

​<<

The first install is required but you have to check it is the V1.0.1 version.

Then only the stm32wb5x_BLE_Stack_fw.bin fw is needed.

The stm32wb5x_BLE_HCILayer_fw.bin is only the HCI layer which can be used when you already have your own application stack for the M4 core. I assume it is not your case.

Htzuh
HtzuhAuthor
Associate II
August 8, 2019

Hi ,

This is the FUS version i installed.

0690X0000098FX3QAM.jpgThen, I installed the stm32wb5x_BLE_Stack_fw.bin.

0690X0000098FXXQA2.jpgBut , the prgram still can't enter into APP_BLE_Init( ); .

The only working is M4 core.

Thank you . 

TH??p
Visitor II
July 30, 2019

Hi,

I have similar problems.

We also can't initialize the BLE Stack (v1.2.0). Should the option byte SBRV = 0x35000 be the same as in the older version (v0.8.0)?

We found out that the old (v0.8.0) Install address was 0x080D4000. The new version (v1.2.0) should be installed at 0x080CC000. So SBRV's value equals install address divided by 4.

Additionaly we found out that if you change the SBRV at version v0.8.0 from 0x35000 to e.g. 0x36000, the Stack doesn't run like with the version v1.2.0 with the correct SBRV = 0x33000. ( 0x33000 x 4 = 0xCC000)

Does anyone know which SBRV value is correct, we can't find it in any documentation. We also tried to set SBRV to 0x3B000, (points to FUS) but this also didn't work.

Thanks in advance.

Best regards.

Tobias

Remi QUINTIN
Technical Moderator
August 21, 2019

I am just surprised that you could modify the SBRV value. It should be only modified by the CPU2 (M0+).​

Once the wireless FW is installed by the FUS (Firmware Update Service) executed by the CPU2, it writes this SBRV offset value pointing on the address where the wireless FW was installed.

So I am not sure your trial to change this SBRV value was effective.

Remi QUINTIN
Technical Moderator
August 22, 2019

​You can also check whether the SFSA value is consistent with the SBRV value.

For my own current downloaded example (Using the  V1.2.0 WB FW package), the SFSA is 0xCB while the SBRV is 0x32C00.

For SFSA, it is an offset aligned on a 4K  boundary starting from the start address of the Flash memory (0x0800000) => 0x080CB000

For SBRV, it is a word aligned value also starting from the start address of the Flash memory =>0x32C00x 4 = 0xCB000 real offset => 0x080CB000

So both values are coherent leading to the same address pointing on the same location in the Flash area.