cancel
Showing results for 
Search instead for 
Did you mean: 

How to make larger STM32WB55 ZigBee Neighbours Table size

JayRullia
Associate II

Hi.

I am working on a ZigBee project for the STM32WB55. 
I use Zigbee wireless binary of STM32Cube_FW_WB_V1.16.0 as below.

stm32wb5x_Mac_802_15_4_fw.bin, stm32wb5x_Phy_802_15_4_fw.bin, stm32wb5x_Zigbee_FFD_fw.bin. 
It works well for now with using 

zigbee_app_info.zb = ZbInit(0U, NULL, NULL);

Now I need larger nwkNeighborTblSz  to have more nodes, I tried following code.

static void APP_ZIGBEE_StackLayersInit(void)
{

struct ZbInitTblSizesT tblSizes;
 
tblSizes.nwkNeighborTblSz = 64;
tblSizes.nwkRouteTblSz = 32;
tblSizes.nwkAddrMapTblSz = 32;
tblSizes.nwkBttSz = 32;
tblSizes.nwkRReqSz = 16;
tblSizes.apsPeerLinkKeyTblSz = 32;
tblSizes.heapSz = 32*1024;
tblSizes.heapPtr = malloc(tblSizes.heapSz);
zigbee_app_info.zb = ZbInit(0U, &tblSizes, NULL);

}

My board does not come alive..
So I tried below codes but the board does not come alive.. 

 

tblSizes.nwkNeighborTblSz = 64;
tblSizes.nwkRouteTblSz = 32;
tblSizes.nwkAddrMapTblSz = 32;
tblSizes.nwkBttSz = 32;
tblSizes.nwkRReqSz = 16;
tblSizes.apsPeerLinkKeyTblSz = 32;
tblSizes.heapSz = 0;
tblSizes.heapPtr = NULL;
zigbee_app_info.zb = ZbInit(0U, &tblSizes, NULL);
 
1. Anyone can tell me what is wrong in the codes?
 
2. They say the default value of nwkNeighborTblSz is 64 but I see only 16.
I use  FFD (stm32wb5x_Zigbee_FFD_fw.bin) as wireless binary and use
zigbee_app_info.zb = ZbInit(0U, &tblSizes, NULL);

And the default value of apsPeerLinkKeyTblSz is said as 32 but I see also only 16.
 
Anybody can help me by anwer the upper questions?

Thanks in advance. 

 

 

 

 

1 REPLY 1
JayRullia
Associate II

Hi. everyone.. 
Actually I got an answer why the following code does not work.. 

static void APP_ZIGBEE_StackLayersInit(void)
{

struct ZbInitTblSizesT tblSizes;
 
tblSizes.nwkNeighborTblSz = 64;
tblSizes.nwkRouteTblSz = 32;
tblSizes.nwkAddrMapTblSz = 32;
tblSizes.nwkBttSz = 32;
tblSizes.nwkRReqSz = 16;
tblSizes.apsPeerLinkKeyTblSz = 32;
tblSizes.heapSz = 32*1024;
tblSizes.heapPtr = malloc(tblSizes.heapSz);
zigbee_app_info.zb = ZbInit(0U, &tblSizes, NULL);

}

 

I chaged tblSizes as global variable and the machine begin to work as I expected..

I guess 
ZbInit(0U, &tblSizes, NULL) keeps using tblSizes variable after returning non-null zigbee stack pointer.

Here I write the answer to my question because I want other guys to see it avoiding same mistake.

Good luck.