MKW2xDxxx maximum number of hops

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

MKW2xDxxx maximum number of hops

1,070 Views
ruggerorusso
Contributor I

Dear Freescale community,

I'm analyzing the actual commercial MCUs that integrate ZigBee communication in order to use the best solution in our system. It's characterized by a deep network topology: a controller, a series of daisy chained (or a mesh of) routers and about 30 end-points for each router. What's the maximum number of hops MKW2xDxxx microcontrollers can handle to route the end-point data to the controller and how many devices can be connected to the network? We don't have low latency requirements.

Thanks for the hints.

Tags (3)
0 Kudos
Reply
1 Reply

900 Views
AngelC
Senior Contributor I

Dear Ruggero,

Freescale ZigBee SW stack “BeeStack” is very flexible. You may change these settings depending on your application requirements. Now, changing these settings affect directly to the performance of your network indeed.

I have seen customers building networks of around 500 nodes but low latency and low duty cycle was not an issue. However, it is mandatory that you characterize the behavior of the NWK for the specifics of your application. This means latency, duty cycle, and of course environment variables like obstacles, and node distribution.

Having 30 end-devices for each router, you need to change the gNwkMaximumChildren_c to ~35 and then gNwkMaximumRouters_c to 4 or 5. The maximum hop s is set by default to 30, but you should expect to see relevant latency drops after 5 hops.

You need to increase also the gApsMaxAddrMapEntries_c (on both routers and coordinator) and gApsMaxSecureMaterialEntries_c (only on coordinator), if you are using security. gApsMaxLinkKeys_c requires to be increased if you need to have multiple link keys for multiple devices. ZHA does not require this. For ZigBee SE gApsMaxLinkKeys should be equal to gApsMaxSecureMaterialEntries.

Now, if all the nodes in your network will be only reporting data to the controller (many-to-one communication), then I would recommend you to use Source routing by enabling the concentrator feature on the controller device. However, if you also need to send message from the controller to the rest of the devices, source routing becomes more of a problem than a solution, so normal routing is recommended.  Some of the variables involved when using source routing are the following:

gConcentratorFlag_d  , gNwkHighRamConcentrator_d , gNwkInfobaseMaxSourceRouteTableEntry_c , gTotalSmallMsgs_d, gConcentratorDiscoveryTime_c ,  gNwkInfobaseMaxRouteTableEntry_c.                   

Regards,

AngelC

0 Kudos
Reply