LAUNCHXL-CC26X2R1: How change the communication channel?

Part Number: LAUNCHXL-CC26X2R1
Other Parts Discussed in Thread: SYSCONFIG

Tool/software:

Good morning,

I'm trying to change the communication channel without a success.

I found this information in the sdk documentation:

In my syscfg I selected my primary channel as 12.

Then I built the change and checked in the file if my changes was made with success:

Everything seems to be ok but when I execute the code, the channel used by the sink is the 11, not 12.

What am I missing?

Thanks again,

Cristiane Bellenzier Piaia

  • Good day Cristiane,

    Make sure that you erase all device memory (including NV memory) and re-program, or factory reset the device, before commissioning.  Otherwise the device will retain its existing Zigbee network settings regardless of SysConfig Zigbee settings.

    Regards,
    Ryan

  • Hi Ryan,

    thanks for your quick answer.

    I will tried that, but that will brings me to another question. I can not change the channel after starting my application, without re-program/factory reset?

    Thanks again,

    Cristiane Bellenzier Piaia

  • It isn't popular in Zigbee Protocol to change channels without updating the existing network, as other neighbor and associated devices will remain on the previous channel without proper notification.  However there are contingencies available through the Network Manager that handle channel changes due to channel interference.  Thus code is provided change channels during run-time if desired, but this is not recommended without first going through the proper means of notifying other devices.

      if ( events & ZDNWKMGR_CHANNEL_CHANGE_EVT )
      {
        // Switch channel
        _NIB.nwkLogicalChannel = ZDNwkMgr_NewChannel;
        ZMacSetReq( ZMacChannel, &ZDNwkMgr_NewChannel );
    
        // Our Channel has been changed -- notify to save info into NV
        ZDApp_NwkStateUpdateCB();
    
        // Reset the total transmit count and the transmit failure counters
        _NIB.nwkTotalTransmissions = 0;
        nwkTransmissionFailures( TRUE );
    
        return ( events ^ ZDNWKMGR_CHANNEL_CHANGE_EVT );
      }

    Regards,
    Ryan