2020-10-29 12:59 PM
I have several boards with STM32WB55RE chips. In most of them chip works fine and and BLE is allright.
But in a small amount of them I have unknown problem - the device can't init BLE periphery in the first cycle of UTIL_SEQ_Run( UTIL_SEQ_DEFAULT );
I taked BLE functionality from the example of Heart Rate service.
First of all I do initialization like in the example. Then the codeflow goes in endless cycle with UTIL_SEQ_Run( UTIL_SEQ_DEFAULT ); function.
And at first cycle the code stay at UTIL_SEQ_WaitEvt(0x02) function and can't receive any response from hardware I think.
Here is my my call stack:
main
UTIL_SEQ_Run
shci_user_evt_proc
APPE_SysUserEvtRx
APP_BLE_Init
SHCI_C2_BLE_Init
shci_send
shci_cmd_resp_wait
UTIL_SEQ_WaitEvt( 1 << CFG_IDLEEVT_SYSTEM_HCI_CMD_EVT_RSP_ID );// CFG_IDLEEVT_SYSTEM_HCI_CMD_EVT_RSP_ID = 0x01
Can somebody explain what event chip waiting for? I have carefully tested these boards several times, but find no hardware or connectivity problems. The soldering is perfect.
I went deeper... I tried to replace controllers within working and not working boards. And for my wonder not working chip worked at working board, but working chip not worked at not working board. I measured resistance of the antenna trace, resolder matching circuit and ICMLPF-WB55-01E3 filter, but nothing helped. I can't believe, that the problem with PCB. Cos they are simple, electrically tested and the RF trace is total only 6mm length to the IPEX RF connector.
What I missed? What can be wrong?
Thank you in advance!