This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Z-Stack, resetting CC2430 programmatically?

Other Parts Discussed in Thread: Z-STACK

Hi,

Z-Stack 1.4.3-1.2.

I'm using the SystemReset() macro defined in OnBoard.h to force processor reset when a fault condition is detected.

The reset occurs and the device issues a beacon request. A coordinator and router in both reply with beacons but these are

ignored. The device just issues beacon requests repeatedly.

If I power the device down and up manually the device issues the same beacon request but this time follows it with an

association request and joins the network normally.

The SystemReset() macro uses a watchdog fail to force a reset. I'm wondering if this leaves the radio section in an unknown

state that can only be cleared by a hard reset.

Does anyone know what you need to do to get a 'clean' reset programmatically?

Thanks, Steve.

 

 

 

 

 

  • Hello Steve,

    Have you tried the following function to reset the radio?  It is found in mac_radio.c

    void macRadioReset(void)

    Cheers,

    Yoda

  • Hi Yoda,

    Yes I did try that and it made no difference.

     

    I've been tracing through the code in ZDApp.c and have found that that the problem is that the call

    to NLME_JoinRequest() is returning the code ZNwkNotPermitted. So it's not a hardware initialisation fault as I first thought.

     

    The problem seems to be that the two beacons that are emitted in response to the nodes beacon requests both

    have the same extended pan id but different 16-bit pan id's. If I change things so that the extended pan id's are different then the node rejoins

    correctly every time.

     

    I've looked at the Zigbee 2006 spec and cannot find anything that says extended and short pan ids must map one-to-one but it seems that this is

    the problem. The code for NLME_JoinRequest() is closed to I cannot investigate it further.

     

    Cheers, Steve.

     

     

     

     

     

  • I am also having this issue with routers trying to rejoin a network after I called SystemReset()

    Were you able to resolve this issue?

    If so, can you please advice the solution.