Hi,
I searched this forum but couldn't find the answer to this question: I am using two CC2530 custom development boards with Z-Stack and trying to bind those two boards and use SampleLight and SampleSwitch example applications. One of the boards is the Coordinator (sample light) and one is an End-Device (sample switch). I am starting end-device binding on both devices, but the end-device doesn't receive any answer. Is it possible to use the Coordinator for this, since it is also the one to coordinate the end-device binding process ?
I have studied the problem and looks like:
- it should be possible to bind to a Coordinator, because it is also a Router
- the real problem now is that the ED doesn't receive ZDP responses, even if it registered for callback.
I have tried with IEEEAddrReq and with MatchDescReq, I have seen that the Coordinator receives the request, but the reply doesn't reach the ED. Which is the first entry point that I should check to see if the message arrives ? I don't have a sniffer available (yet) to see what is the message sequence.
Investigating further with a sniffer, I see the message doesn't leave the Coordinator, although the debugger shows the message was sent successfully to AF layer, and has the fields set correctly. Could somebody point me to the right direction ? I cannot debug below the APSDE_DataReq function, which return SUCCESS...
Use this function in coordinatorZDP_BindReq()
ZDP_BindReq( zAddrType_t *dstAddr, byte *SourceAddr,byte SrcEP, byte ClusterID, byte *DestinationAddr, byte DstEP, byte SecuritySuite );
where dstAddr is an end device address. SourceAddr is also your ED address (they are different type!)srcEP is the endpoint where the switch is configured to in ED. Cluster is switch's cluster ID in EDdestinationAddr is coordinator Addr. Security u can disable dy default...And in end device process this with the function ZDP_BindRsp()More in Z-Stack API document
Thank you Sven, I will try that when I get to it.
Now trying to get an IEEE response from the Coordinator, but the response doesn't leave the device. Please see the description of the problem in my third post on this topic. Do you have an idea why that happens ?
hard way to make the device leave is:find out the IEEEaddrrsp functioninclude OSAL_Nv.h fileand write in that function osal_nv_reset();Device erases network data makes reset and bang! gone :)
Sorry, I wasn't clear in my question. I don't want the device leave the network, but I started with trying to get a Match Descriptor reply from the Coordinator, without success. I then tried getting an IEEE Address response, still without success. I can see the request is transmitted on the air, the Coordinator sends the response to the MAC, but nothing is sent back. It makes no sense, because the packet structure is correct and loaded with correct data...
Does anybody have an idea why APSDE_DataReq would return SUCCESS but nothing would be transmitted ? Packet req is:
d6 16 0b 00 0b 80 bc 7d 02 00 00 20 06 01 80 00 00 0c 00 9d 05 04 00 02 01 1e 8e 02
I seem to ask the wrong questions or is really nobody reading these forums ? I was expecting that some support engineers from TI will be reviewing all questions, and answer to them. I am stuck with this problem, and it's a showstopper :(
Found the cause for why the message doesn't leave the Coordinator: it waits for the ED poll to send the message (RX_ON_WHEN_IDLE set to FALSE). If I set it to TRUE, the message is sent right away. Now the problem is different: no polling from ED, although defining NWK_AUTO_POLL and having POLL_RATE set to 5000. Any help on that ?
Suggest you can check if zgPollRate is set to 5000 after your ED joins ZB network of coordinator. zgPollRate should be the same as your POLL_RATE setting. If zgPollRate is not equal to your POLL_RATE setting or equals to zero, there must be something wrong.
Regards!
YK Chen