WirelessUART(ZC) for MC13237 (Question 1)

cancel
Showing results for 
Search instead for 
Did you mean: 

WirelessUART(ZC) for MC13237 (Question 1)

598 Views
ming_
Contributor I

1. On the main(), BeeAppinit.c

  

    NlmeSetRequest(gNwkIsConcentrator_c, FALSE);

          It setup gNwkIsConcentrator_c of Nwk Info Base to FALSE. what this mean? what this code do?

2. Endpoint is identification number of each funcion of node.

    ex: A light dimming function : endpoint number 1

        same light's on/off function:    endpoint number 2

    Question : what is different between clusterID and endpoint?

            if it has cluster ID, why it need endpoint?

        

3. On the EndPointerConfig.c

    const zbSimpleDescriptor_t Endpoint1_simpleDescriptor = {

      1, /* Endpoint number */

      0x21, 0xC0, /* Application profile ID */

      0x0, 0x0, /* Application device ID */

      0, /* Application version ID */

      2, /* Number of input clusters */

      (uint8_t *) Endpoint1_InputClusterList, /* Input cluster list */

      2, /* Number of output clusters */

      (uint8_t *) Endpoint1_OutputClusterList, /* Output cluster list */

    };    

    Is any rule to define the Endpoint number?

    how to define Application profile ID and device ID? can I set on the BeeKit?

4. If we want to use multiple endpoint, What I have to change?

    On the BeeAppInit(void), BeeApp.c

    /* Only one endpoint is needed for this application. but if we need

    multiple endpoint, what we have to change here? */

    appEndPoint = endPointList[0].pEndpointDesc->pSimpleDesc->endPoint;

    I think we need add here also.    on the EndPointConfig.c

    /*- Endpoint list Start-*/

    const endPointList_t endPointList[1] = {

  {&Endpoint1_EndPointDesc, &gNoDeviceDef},

  {&Endpoint2_EndPointDesc, &gNoDeviceDef},    //I don't understand about '&gNoDeviceDef'...    

    };

5. On the BeeAppInit(void), BeeApp.c

    what below code do?

    mBaudRateDisplayTimerID = TMR_AllocateTimer();

    mUartRxTimerID = TMR_AllocateTimer();

    mTxZigBeeDataRetryTimerID = TMR_AllocateTimer();

    mTxZigBeeThrottleTimerID = TMR_AllocateTimer();

Labels (1)
Tags (1)
0 Kudos
1 Reply

381 Views
AngelC
Senior Contributor I

Dear Min,

I will try to address all of your questions below. However, most of them involve a basic knowledge of ZigBee protocol implementation. Reading the ZigBee specification is usually mandatory, but I understand it is very difficult for a ZigBee beginner. Because of this, I strongly recommend you to read the book "ZigBee wireless networking" by Drew Gislason. This book puts everything in a simple way. It is the best way to start.

You may also refer to the BeeStack documentation folder included in BeeKit.  There you may find the Freescale BeeStack Software Reference Manual for ZigBee 2012 and 2007 among other useful documents.

1. From BeeStack Software Reference Manual:

ZigBee defines a gateway as a “concentrator”. The concentrator sends out a many-to-one route request to establish in-bound mesh routes. This only adds one route entry in the route tablesso nodes can communicate with the concentrator. This greatly reduces the over the air messages requiredto establish routes from all the devices that want to communicate with the concentrator because normal route discovery is no longer required.

You may learn more about source routing in the post https://community.freescale.com/message/461933

2. Cluster ID and endpoint are two separate things. From ZigBee Cluster Library specification:

A cluster is a related collection of attributes and commands, which together define a communications interface between two devices.

The cluster ID is simply an enumeration that uniquely identifies a cluster within an application profile.  For example, the Home Automation Profile uses the On/Off cluster (ID  0x0006). Such cluster contains both attributes (on or off) and commands (set on, off or toggle) that affect the on/off attributes of the light.

Endpoints are logical extensions added to a single ZigBee radio which permits support for multiple applications, addressed by the Endpoint number.

Please refer to BeeStack Freescale BeeStack Software Reference Manual for ZigBee 2012 and 2007 – chapter 2.10 Application Elements. There you will find further details about a cluster, endpoint, attributes, etc.

3. The endpoint number is up to the application. BeeKit application templates normally use endpoint 0x08 by default, but actual number may change.

The application profiles depend in the final application itself. They cover areas such as Home Automation, Commercial Building Automation, Smart Energy and Telecom applications as defined by ZigBee Alliance. They could be either public (as the ones mentioned) or private. All application profiles utilize the ZigBee Cluster Library Specification.

4. You may add endpoint directly in code but it will involve modifying several files and variables. I would recommend you to do it from BeeKit solution explorer instead. You should simply right-click on Endpoints and select “Add Software Component”, then simply select the endpoint to add.


Capture222.JPG.jpg

Capture3333.JPG.jpg


5. Timers must be allocated before they can be started or stopped. The TMR_AllocateTimer() function is used for this purpose. For further details about Timers implementation in 802.15.4 solutions please refer to Freescale Platform Reference Manual for ZigBee 2007 – chapter 3 Timer.

I would still recommend you to take some time and read the different documents available inBeeKit. It will help you to get familiar with ZigBee specification and its implementation.

Regards,

AngelC

0 Kudos