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.

CC2650发送数据CC2530接收不到

Other Parts Discussed in Thread: CC2530, CC2650, Z-STACK, LAUNCHXL-CC26X2R1

CC2650是用simpleswitch程序修改的按键后发送数据,抓包如下图,但是CC2530那边没任何反应,收不到。请帮忙看看数据发送哪里不对?

  • 上传抓包文件。你先检查你的绑定成功了吗,demo里面有的是easy mode 去绑定的,你绑定了吗?
  • 非要绑定才能发么?发送不是可以随便发么?抓包数据如下。我感觉好像没有联网成功,协调器发网络状态,终端不发在网的状态信息。CC2650-01.psd

  • 沒有用绑定的話你得指定目的地的短地址及endpoint才能發送
  • 我刚入门,很多问题不懂,有些问题比较低级,请见谅!
  • 发给协调器短地址是0x0000,endpoint 在CC2530那边设置的是11,因此发送的时候设置的时0x0b,这些都设置了!
  • 发给协调器因此短地址是0x0000,endpoint 协调器那边设置的是11,所以这边发的时候是0x0b,这些都设置了!
  • 你的设备入网了,但是没有发送处理,把你Switch_SendToogle的程序发出来,包含你的dstaddr 填写贴出来。此外再1.22A里面的light 例程的SAMPLELIGHT_ENDPOINT是8
  • 我用的是SmartRF06 EB 和CC2650EM-4XS 程序用的simpleswitch
    按键up键触发
    if(keys == KEY_UP)
    {
    // Send the Toggle command through ZCL
    //Switch_sendToggle();
    SerialApp_DeviceConnect();
    Board_Led_control(board_led_type_LED3, board_led_state_BLINK);
    }

    这个SerialApp_DeviceConnect();是从CC2530程序里拷贝来的,如下:

    void SerialApp_DeviceConnect()
    {
    #if ZDO_COORDINATOR
    SerialApp_TxLen = 0;
    SerialApp_RxSeq = 0;
    #else

    //uint16 nwkAddr;
    uint16 parentNwkAddr;
    char buff[30] = {0};

    SerialApp_TxLen = 0;
    SerialApp_RxSeq = 0;

    //zb_GetDeviceInfo(ZB_INFO_SHORT_ADDR,nwkAddr);
    //zb_GetDeviceInfo(ZB_INFO_PARENT_SHORT_ADDR,parentNwkAddr);
    //nwkAddr = 0x99E8;
    parentNwkAddr = zswDstAddr.addr.shortAddr;

    SerialApp_TxAddr.addrMode = (afAddrMode_t)Addr16Bit;
    SerialApp_TxAddr.endPoint = SERIALAPP_ENDPOINT; //11
    SerialApp_TxAddr.addr.shortAddr = 0x0000;

    buff[0] = 0x55;
    buff[1] = 0xAA;
    // SERIALAPP_CONNECTREQ_CLUSTER = 3
    AF_DataRequest( &SerialApp_TxAddr, &SerialApp_epDesc,
    SERIALAPP_CONNECTREQ_CLUSTER,
    2,
    (uint8*)buff,
    &SerialApp_MsgID,
    0,
    AF_DEFAULT_RADIUS);

    #endif //ZDO_COORDINATOR
    }

    我用两个CC2530一个做终端一个做协调器,程序用的串口透明传输,调试没有问题。但是用CC2650做终端,CC2530就收不到数据。
    SmartRF06还不支持抓包功能,哎!几千块买的RF06还不如淘宝几十块的东西!
  • 你现在抓包文件里面只有一个设备,你自己去debug一下,你既然使用的SmartRF06有LCD显示的,显示入网了?
    如果你不会操作去看文档里面有如何操作demo的:
    C:\ti\simplelink\zstack_home_1_02_02a_44539\Documents\Z-Stack Home Sample Application User's Guide
  • 有LED显示不支持4xs的板子,哎!当初买设备的人脑子被驴踢了。怎么知道有几个设备呢?
  • 你要不要改買LAUNCHXL-CC26x2R1

  • static void Switch_processZStackMsgs(zstackmsg_genericReq_t *pMsg)
    {
        switch(pMsg->hdr.event)
        {
            case zstackmsg_CmdIDs_DEV_STATE_CHANGE_IND:
                {
                    // The ZStack Thread is indicating a State change
                    zstackmsg_devStateChangeInd_t *pInd =
                        (zstackmsg_devStateChangeInd_t *)pMsg;
    
                    // Only process the state change if it actually changed.
                    if(savedState != pInd->req.state)
                    {
                        // Save the new state
                        savedState = pInd->req.state;
    
                        if( (pInd->req.state == zstack_DevState_DEV_ZB_COORD)
                            || (pInd->req.state == zstack_DevState_DEV_ROUTER)
                            || (pInd->req.state == zstack_DevState_DEV_END_DEVICE) )
                        {
                            // The device is part of a network, get the device's
                            // network parameters.
                            pNwkInfo = zclport_getDeviceInfo(zswEntity);
    
                            // Update the display with network information
                            giSwScreenMode = SWITCH_MAINMODE;
                            Switch_updateLcdDisplay();
                            Board_Led_control(board_led_type_LED1,
                                              board_led_state_OFF);

    你就用一个ZC(CC2530),一个ZED(CC2650)去测试一下。

    或者去debug看一下是否能进入zstack_DevState_DEV_END_DEVICE,我在看了你的抓包文件发现只有一个ZED和一个ZC。

  • debug了,可以进入到入zstack_DevState_DEV_END_DEVICE,我现在就是用CC2530当ZC用CC2650当ZED,另外一个CC2530抓包。但是还是不行。
    CC2650这个TI就没有别的Zigbee的例程序么?我感觉这个程序改起来太慢,TI给的介绍太粗了,文档只是大概说了一下,很多细节没有讲到。
    参数ZSTACK_MANUAL_START 干啥的,在哪里讲了!?
  • 文档只是大概,但是你自己去看程序,几乎都有英文注释。
    MANUAL是手动人工,START是开始。类似于手动控制,去看那个宏定义在程序上有很多改变state的逻辑。
    CC2650 其他demo也是这个类似架构只是部分应用程序不同。
    我怀疑你是endpoint 的问题。