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.

[参考译文] CC2530:请帮助我获取 CC2350ZNP 与 CC2592 PA 的有效固件

Guru**** 2589275 points
Other Parts Discussed in Thread: CC2592, CC2530, CC2590, Z-STACK, CC2531EMK, CC2531

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/678588/cc2530-please-help-me-a-working-firmware-of-cc2350znp-with-cc2592-pa

器件型号:CC2530
主题中讨论的其他器件:CC2592CC2590Z-stackCC2531EMKCC2531

您好!

我厌倦了编译 ZStack 3.0、使用 ZTools 进行测试、使用外部 MCU 进行测试...请提供完整的工作映像十六进制文件。

CC2592连接到 CC2530、如文档第13页(P1.0、P1.1、P0.7):  

http://www.ti.com/lit/ds/symlink/cc2592.pdf

非常感谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    CC2530+CC2592没有预构建的 ZNP 十六进制映像。 您必须自己构建它。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、我构建了它、但不起作用。 它也无法连接到 Z-Tool (端口0.2、0.3上的 UART)。 我可以通过接口 SPI 连接到它、配置 ZC 和 ZED。 ZC 正常、状态为0x9。 但 ZED 是不好的。 它的状态始终为0x2、从不转至0x6。

    这是 E18-MS1PA1-IPX by Ebyte 模块。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    下面是"Defined Symbol" IAR:
    ===
    BDB_Finding_Binding_Capability = 0
    TC_LINKKEY_JOIN
    NWK_MAX_DEVICE_LIST=10
    ZDSECMGR_TC_DEVICE_MAX=30
    disable_GREENPOWER_basic_proxy
    省电
    Feature_system_stats
    MT_GP_CB_FUNC
    ASSERT_RESET
    假_CRC_Shdw
    ZTOOL_P1 =>添加了
    添加了 MT_APP_FUNC =>
    添加了 MT_SYS_FUNC =>
    MT_ZDO_FUNC =>添加了
    ===
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这是我通过 SPI (使用 CC2592完全构建)的 ZED 接口的日志。 ZED 恰好处于此状态、即0x45c0、状态2。
    ===
    ###执行 SYS_RESET_REQ ...
    正在等待 SYS_RESET_IND...
    正在等待 SRDY 变为高电平...
    Len:6;Cmd:0x4180
    数据:2 2 0 2 7 1结束 SRDY:0
    ###正在设置 StartupOptions...
    Len:1;Cmd:0x6605;状态:0
    ###设置为终端设备
    Len:1;Cmd:0x6605;状态:0
    ###注册应用程序
    Len:1;Cmd:0x6400;状态:0
    ###使用 AFZDO 启动应用程序
    Len:1;Cmd:0x6540;状态:0

    Len:5;Cmd:0x4180
    数据:2 2 0 2 7 1
    Len:0;Cmd:0x45c0
    数据:2.
    Len:2;Cmd:0x4f80
    数据:1 2 4
    Len:0;Cmd:0x45c0
    数据:2.
    ===
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您还需要将 HAL_PA_LNA_CC2592添加到编译器选项预定义符号中。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我去做。 我进行了如下修改(遵循此论坛上的指南)

    文件 hal_board_cfg.h 中
    #define HAL_PA_LNA_CC2592

    /*------ 电路板初始化--- *
    #if defined (HAL_Board_CC2530EB_REV17)&&!defined (HAL_PA_LNA)&&!defined (HAL_PA_LNA_CC2590)&&
    !defined (HAL_PA_LNA_SE2431L)&&!defined (HAL_PA_LNA_CC2592)

    #define HAL_Board_init () st \
    ( \
    uint8 vOSC_32kHz = OSC_32kHz; \
    uint16 i; \
    \
    SLEEPCMD &=~OSC_PD; /*打开16MHz RC 和32MHz XOSC */ \
    while (!(SLEEPSTA 和 XOSC_STB)); /*等待32MHz XOSC 稳定*/ \
    asm ("NOP"); /*芯片故障解决方法*/ \
    对于(i=0;i<504;i++) asm ("NOP"); /*所有版本都需要63us 延迟*/ \
    CLKCONCMD =(CLKCONCMD_32MHz | vOSC_32kHz);//选择32MHz XOSC 和32K 时钟的源*/\
    while (CLKCONSTA!=(CLKCONCMD_32MHz | vOSC_32kHz));//等待更改生效*\
    SLEEPCMD |= OSC_PD; /*关闭16MHz RC */ \
    \
    /*打开高速缓存预取模式*/ \
    prefet_enable(); \
    )

    #Elif defed (HAL_Board_CC2530EB_REV13)|| Defined (HAL_PA_LNA)|| Defined (HAL_PA_LNA_CC2590)|| Defined (HAL_PA_LNA_CC2592)

    /*------ LED 的--- *
    #if defined (HAL_Board_CC2530EB_REV17)&&!defined (HAL_PA_LNA)&&!defined (HAL_PA_LNA_CC2590)&&!defined (HAL_PA_LNA_CC2592)

    (笑声)
    #Elif defed (HAL_Board_CC2530EB_REV13)|| Defined (HAL_PA_LNA)|| Defined (HAL_PA_LNA_CC2590)|| Defined (HAL_PA_LNA_CC2592)

    ===
    在 ZNP_app.c 中(添加 ZMacSetTransmitPower)
    ===

    静态空 npInit (空)

    IF (ZNP_CFG1_UART == znpCfg1)

    halUARTCfg_t uartConfig;

    uartConfig.configured =真;
    uartConfig.波特 率 = ZNP_UART_BAUD;
    #ifdef ZNP_ALT
    uartConfig.FlowControl =错误;
    其他
    uartConfig.FlowControl =真;
    #endif
    uartConfig.flowControlThreshold = HAL_UART_flow_threshold;
    uartConfig.Rx.maxBufSize = HAL_UART_RX_BUF_SIZE;
    uartConfig.TX.maxBufSize = HAL_UART_TX_BUF_SIZE;
    uartConfig.idleTimeout = HAL_UART_IDLE_TIMEOUT;
    uartConfig.intEnable =真;
    uartConfig.callBackFunc = npUartBack;
    HalUARTOpen (HAL_UART_PORT、uartConfig);
    MT_UartRegisterTaskID (znpTaskId);
    #ifdef HAL_PA_LNA_CC2592
    ZMacSetTransmitPower (TX_PWR_PLUS_19);
    其他
    ZMacSetTransmitPower (TX_PWR_PLUS_4);
    #endif

    其他

    /* npSpiInit()由 hal_spi.c 调用:HalSpiInit()。*/


    ===
    在 ZNP_SPI.c 中(添加 ZMacSetTransmitPower)
    ===

    #IF 定义 CC2530_mK
    void npSpiInit (void)// TODO -针对 USART0 alt1 SPI 的硬编码。

    IF (ZNP_CFG1_UART == znpCfg1)

    返回;


    /*将位顺序设置为 MSB */
    U0GCR |= BV (5);

    /*将 UART0 I/O 设置为 P1引脚上的备用1个位置。 *
    //PERCFG |= 0x02;// U1CFG */

    /*模式选择 UART1 SPI 模式作为从器件。 *
    U0CSR = NP_CSR_MODE;

    /*在 I/O 引脚上选择外设功能。 *
    P0SEL |= 0x3C;/* SELP0_[5:2]*/

    /*将 UART1优先于 Timer3。 *
    //P2SEL &=~0x20;// PRI2P1 */

    /*将 RDY 设置为高电平无效。 *
    NP_RDYOut = 1;

    /*在 I/O 引脚上选择通用。 *
    P1SEL &=~(NP_RDYOUT_BIT);/* P1.0 SRDY - GPIO *
    P2SEL &=~(NP_RDYIn_BIT);/* P2.0 MRDY - GPIO *

    /*选择 GPIO 方向*/
    P1DIR |= NP_RDYOUT_BIT;// P1.0 SRDY - OUT *
    P2DIR &=~NP_RDYIN_BIT;// P2.0 MRDY - IN *

    /* P2引脚上的下降沿触发中断。 *
    PICTL |= BV (3);// P2ICON */

    /*在 MRDY 输入上触发中断。 *
    P2IFG &=~NP_RDYIN_BIT;
    P2IEN |= NP_RDYIn_BIT;
    IEN2 |= 0x02;

    dmaInit();

    U0CSR |= csr_re;
    #ifdef HAL_PA_LNA_CC2592
    ZMacSetTransmitPower (TX_PWR_PLUS_19);
    其他
    ZMacSetTransmitPower (TX_PWR_PLUS_4);
    #endif


    其他
    空 npSpiInit (空)

    IF (ZNP_CFG1_UART == znpCfg1)

    返回;


    /*将位顺序设置为 MSB */
    U1GCR |= BV (5);

    /*将 UART1 I/O 设置为 P1引脚上的替代2个位置。 *
    PERCFG |= 0x02;// U1CFG */

    /*模式选择 UART1 SPI 模式作为从器件。 *
    U1CSR = NP_CSR_MODE;

    /*在 I/O 引脚上选择外设功能。 *
    P1SEL |= 0xF0;/* SELP1_[7:4]*/

    /*将 UART1优先于 Timer3。 *
    P2SEL &=~0x20;// PRI2P1 */

    /*将 RDY 设置为高电平无效。 *
    NP_RDYOut = 1;

    /*在 I/O 引脚上选择通用。 *
    P0SEL &=~(NP_RDYIn_BIT);/* P0.3 MRDY - GPIO *
    P0SEL &=~(NP_RDYOUT_BIT);/* P0.4 SRDY - GPIO *

    /*选择 GPIO 方向*/
    P0DIR &=~NP_RDYIN_BIT;/* P0.3 MRDY - IN *
    P0DIR |= NP_RDYOUT_BIT;/* P0.4 SRDY - OUT *

    P0INP &=~NP_RDYIN_BIT;/* MRDY 输入的上拉/下拉使能。 *
    P2INP &=~BV (5); /*上拉所有 P0输入。 *

    P0引脚上的下降沿触发中断。 *
    PICTL |= BV (0);/* P0ICON *

    /*在 MRDY 输入上触发中断。 *
    P0IFG &=~NP_RDYIN_BIT;
    P0IEN |= NP_RDYIn_BIT;
    P0IE = 1;

    dmaInit();

    U1CSR |= csr_re;
    #ifdef HAL_PA_LNA_CC2592
    ZMacSetTransmitPower (TX_PWR_PLUS_19);
    其他
    ZMacSetTransmitPower (TX_PWR_PLUS_4);
    #endif


    #endif
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    也可以在 hal_board_cfg.h 中查看此内容

    /*------ 射频前端连接初始化--- *
    #if defined HAL_PA_LNA || defined HAL_PA_LNA_CC2590 || defined HAL_PA_LNA_CC2592
    extern void MAC_RfFrontendSetup (void);
    #define HAL_Board_RF_F前端_Setup() MAC_RfFrontendSetup()
    其他
    #define HAL_Board_RF_前端 设置()
    #endif
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您是否在 C/C++编译器选项的预处理器中的"定义符号"中添加 HAL_PA_LNA_CC2592。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Yikai、

    我将其添加到文件 hal_board_cfg.h 中 2个位置之间是否存在差异?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我不确定是否所有使用 CC2592的 Z-Stack 文件都包含 hal_board_cfg.h、因此我建议您将其放入 C/C++编译器选项的预处理器中的"定义符号"中。 顺便说一下、您是否使用 Ubiqua 协议分析器来检查 ZED 尝试加入网络时会发生什么情况?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我不使用 Ubiqua。 我只是 Zigbee ZStack 的初学者。 我现在将进行检查。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可以附加监听器日志、以便我可以检查发生了什么情况。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢 Yikai。

    我已安装它。 但现在我不需要监听器硬件。 我只有 CC 调试器。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您必须购买 CC2531EMK 才能使其正常工作。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Cuong:

    您能进一步描述一下您的系统吗? 您的协调器和终端设备的硬件和软件是什么? 由于您不熟悉 TI 的 Z-Stack 解决方案、我建议您评估推荐的工作系统并缓慢开始整合您所需的更改。

    此致、
    Ryan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Ryan、

    我的设计很简单。 CC2530由外部 MCU 通过 SPI 接口进行控制、在本例中为 ESP32。

    我想通过制作一个 ZC、另一个 ZED 来学习 ZB。 我遵循 CC2530ZNP 迷你套件中的示例。

    - ZC 来自 Example_basic_comms_Coordinator sapi.c

    - ZED 来自 Example_basic_comms_end_device_afzdo

    模块 CC2530F256来自 Ebyte: http://www.cdebyte.com/en/product-view-news.aspx?id=123

    PA 前端是 CC2592。

    我尝试通过一些修改来构建 ZStack 3.0.1、以支持 CC2592。 构建固件正常、但不确定是否正常。

    ZC 板唯一的优点是可以。 从0x45c0开始的状态为0x9。

    但 ZED 是不好的。 从0x45c0开始的状态始终为0x2、不会更改为0x6 (ZED)。

    也请参考我的另一个主题。

    e2e.ti.com/.../2498920

    我对 Zigbee 的了解有限、接下来的调试工具也有限。 因此、接下来我无法继续。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否启用允许在协调器上加入以允许 ZED 在 ZED 启动时加入?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Yikai、

    我不知道是否允许加入。 我进行了 google 操作、但尚未找到启用它的方法。 请告诉我吗?

    谢谢。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可以参阅 Z-Stack 监控和测试 API.pdf 中的第3.12.1.22节 ZDO_Mgmt_permit_join_Req。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢 Yikai。

    这意味着在 ZC 上、我需要针对特定 ZED 执行此命令 ZDO_Mgmt_permit_join_Req、以允许 ZED 加入网络?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    否、您在 ZC 上发送 ZDO_Mgmt_permit_join_Req、并在自身上启用允许加入以允许 ZED 加入。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Yikai、

    我在 ZC 节点上进行了测试。

    我在 ZC 上添加了允许加入(ZDO_Mgmt_permit_join_Req)、其中包含以下信息:长度0x4、cmd 0x2536、DstAddr (0x4567)(在 TI 示例迷你套件中遵循)、持续时间0xff、TCSignificance 0x1。

    返回0xC2。

    这是我在 ZC 节点上的日志。
    ===
    ###执行 SYS_RESET_REQ ...
    正在等待 SYS_RESET_IND...
    正在等待 SRDY 变为高电平...
    Len:6;Cmd:0x4180
    数据:2 2 0 2 7 1结束 SRDY:1
    ###正在设置 StartupOptions...
    Len:1;Cmd:0x6605;状态:0
    ###设置为协调器
    Len:1;Cmd:0x6605;状态:0
    ###启用回叫
    Len:1;Cmd:0x6605;状态:0
    ###注册应用程序
    Len:1;Cmd:0x660a;状态:0
    ###正在启动应用程序
    Len:0;Cmd:0x6600
    在网络上!
    ###读取网络信息
    Len:5;Cmd:0x6604
    数据:0x0 0x83 0x2 0xff 0xff
    ###允许加入
    Len:1;Cmd:0x6536;状态:0xC2

    轮询 Zigbee 以获取消息...
    轮询...
    Len:6;Cmd:0x4180
    数据:2 2 0 2 7 1
    轮询...
    Len:1;Cmd:0x45c0
    数据:8.
    轮询...
    Len:1;Cmd:0x45c0
    数据:9.
    轮询...
    Len:1;Cmd:0x4680
    数据:0
    轮询...
    ===
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    应将 DstAddr 设置为0x0000、这是 ZC 的短地址。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在迷你套件示例中、当应用寄存器时、ZC 地址也是0x4567 (DeviceID 字段)。

    对于 ZDO_Mgmt_permit_join_Req、我遵循您的建议、将 DstAddr 设置为0x0000、但也返回0xC2。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    也许可以尝试在 ZC 和 ZED 上使用 APP_CNF_BDB_START_TING 来使它们配对。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我看到不同的 ZDO_Mgmt_permit_join_Req 版本。 这在文档 SWRA198版本1.14中。

    长度= 0x05 Cmd0 = 0x25 Cmd1 = 0x36 AddrMode DstAddr 持续时间 TCSignificance

    我使用的是文档 SWRA198修订版本1.4中的内容
    长度= 0x04 Cmd0 = 0x25 Cmd1 = 0x36 DstAddr 持续时间 TCSignificance

    那么1.4版是最新版本吗?

    我在此论坛上发现,返回状态为 ZNWK_INVALID_REQUEST (0xC2),这意味着我发送了错误的命令?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、版本1.4是最新版本、您应该使用"长度= 0x04 Cmd0 = 0x25 Cmd1 = 0x36 DstAddr 持续时间 TCSignificance "
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    至 APP_CNF_BDB_START_TUSING、我应该使用哪个值? 是否为0x08 (查找和绑定)?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    应使用值为0x02的 APP_CNF_BDB_START_TUSING。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我在 ZC 和 ZED 上添加了 APP_CNF_BDB_START_TUSING。 命令 return 成功(Cmd:0x6f05;状态:0x00)
    下面是我在 ZED 上的日志:
    ===
    ###执行 SYS_RESET_REQ ...
    正在等待 SYS_RESET_IND...
    正在等待 SRDY 变为高电平...
    Len:6;Cmd:0x4180
    数据:2 2 0 2 7 1结束 SRDY:1
    ###正在设置 StartupOptions...
    Len:1;Cmd:0x6605;状态:0
    ###设置为终端设备
    Len:1;Cmd:0x6605;状态:0
    ###注册应用程序
    Len:1;Cmd:0x6400;状态:0
    ###使用 AFZDO 启动应用程序
    Len:1;Cmd:0x6540;状态:0

    ###APP_CNF_BDB_START_TINGING
    Len:1;Cmd:0x6f05;状态:0x00

    ###等待切换到 DEV_END_DEVICE

    Len:5;Cmd:0x4180
    数据:2 2 0 2 7 1
    Len:0;Cmd:0x45c0
    数据:2.
    Len:2;Cmd:0x4f80
    数据:1 2 4
    Len:0;Cmd:0x45c0
    数据:2.
    ===

    这是我在 ZC 上的日志:
    ===
    ###执行 SYS_RESET_REQ ...
    正在等待 SYS_RESET_IND...
    正在等待 SRDY 变为高电平...
    Len:6;Cmd:0x4180
    数据:2 2 0 2 7 1结束 SRDY:1
    ###正在设置 StartupOptions...
    Len:1;Cmd:0x6605;状态:0
    ###设置为协调器
    Len:1;Cmd:0x6605;状态:0
    ###启用回叫
    Len:1;Cmd:0x6605;状态:0
    ###注册应用程序
    Len:1;Cmd:0x660a;状态:0
    ###正在启动应用程序
    Len:0;Cmd:0x6600
    在网络上!
    ###读取网络信息
    Len:5;Cmd:0x6604
    数据:0x0 0x83 0x2 0xff 0xff
    ###APP_CNF_BDB_START_TINGING
    Len:1;Cmd:0x6f05;状态:0x00

    ###允许加入
    Len:1;Cmd:0x6536;状态:0xC2

    轮询 Zigbee 以获取消息...
    轮询...
    Len:6;Cmd:0x4180
    数据:2 2 0 2 7 1
    轮询...
    Len:1;Cmd:0x45c0
    数据:8.
    轮询...
    Len:3;Cmd:0x4f80
    数据:2 0 0
    轮询...
    Len:1;Cmd:0x45c0
    数据:9.
    轮询...
    Len:3;Cmd:0x4f80
    数据:D 0 0
    轮询...
    Len:1;Cmd:0x4680
    数据:0
    轮询...
    ===


    允许加入仍然失败。
    存在 APP_CNF_BDB_TUSESING_NOSTICATION (0x4f80)、其中返回数据为0xd、0x0、0x0。 我也不明白这一点。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我无法有效判断通过这些日志发生了什么。 在启动 ZED 并使用值0x02调用 APP_CNF_BDB_START_TING 之前、是否启用允许加入或使用 ZC 上的值0x02调用 APP_CNF_BDB_START_TUSING? 此外、您是否为监听器购买了 CC2531EMK? 我认为、您可以提供监听器日志以更好地了解您的问题将会更好。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我很抱歉弄错了。 上次、我在模式0x00下运行 APP_CNF_BDB_START_TUNING。

    现在、我以模式0x02运行。 和 APP_CNF_BDB_TUSESCING_NOSTICATION (0x4f80)以及数据2 (BDB_TUSCING_NO_NETWORK)、1、0。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    它现在是否起作用?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    还不是:(

    ZED 未切换到 DEV_END_DEV (0x6)。 在 ZC 上、允许加入仍然不成功(命令:0x6536;状态:0xC2)

    我该怎么做...
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我认为正确的允许加入命令应为"Length = 0x05 Cmd0 = 0x25 Cmd1 = 0x36 AddrMode DstAddr Duration TCSignification"、并且您应该使用 AddrMode=2、DstAddr=0x0000、DstAddr =0xB4和 TCSignificance=0。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这是我发送到 ZNP ZC 的命令数据。

    SPI.transfer (0x05);//长度
    SPI.transfer (0x25);// cmd0
    spi.transfer (0x36);// cmd1
    SPI.transfer (0x02);// AddrMode
    SPI.transfer (0x00);// DstAddr
    SPI.transfer (0x00);// DstAddr
    spi.transfer (b4);//加入持续时间
    SPI.transfer (0x00);

    但仍然失败。 允许加入命令:0x6536;状态:0xC2。

    ZNP 固件是否存在问题? 编译固件时是否有任何与允许加入相关的选项定义?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果在编译选项中定义了 MT_ZDO_Mgmt、则将包含允许加入命令。 默认情况下、应在 ZNP 项目中添加 MT_ZDO_Mgmt。 无论如何、您可以检查它。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我刚刚检查过它。 "定义的符号"中没有此选项。 因此、我将 MT_ZDO_Mgmt 添加到此列表中。
    但是在重新刷写 ZNP 之后、ZC 命令允许加入也失败了、使用相同的代码0xC2。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    想法不好。 我只能建议您在 MT_ZdoCommandProcessing 中的"Case MT_ZDO_Mgmt_permit_join_Req:"上设置断点以对其进行调试。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我现在不可能深入了解堆栈固件:(
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Yikai、

    我通过使用 AFZDO 而不是简单 API 更改为协调器。 然后允许加入成功(ZDO_Mgmt_permit_join_RSP 0x45b6、状态0)。
    因此、对于 ZC、一切都很好。

    但 ZED 仍然停留在0x2、未更改为0x6 (DEV_END_DEV)

    这是我在 ZC 节点上的日志。
    ===
    ###执行 SYS_RESET_REQ ...
    正在等待 SYS_RESET_IND...
    正在等待 SRDY 变为高电平...
    Len:6;Cmd:0x4180
    数据:2 2 0 2 7 1结束 SRDY:1
    ###正在设置 StartupOptions...
    Len:1;Cmd:0x6605;状态:0
    ###设置为协调器
    Len:1;Cmd:0x6605;状态:0
    ###注册应用程序
    Len:1;Cmd:0x6400;状态:0
    ###使用 AFZDO 启动应用程序
    Len:1;Cmd:0x6540;状态:0

    ###等待切换到 DEV_ZB_COord

    Len:5;Cmd:0x4180
    数据:2 2 0 2 7 1
    Len:0;Cmd:0x45c0
    数据:8.
    Len:2;Cmd:0x4f80
    数据:1 2 4
    Len:0;Cmd:0x45c0
    数据:8.
    Len:0;Cmd:0x45c0
    数据:8.
    Len:0;Cmd:0x45c0
    数据:9.
    在网络上!
    ###读取网络信息
    Len:5;Cmd:0x6604
    数据:0x0 0x83 0x2 0xff 0xff
    ###APP_CNF_BDB_START_TINGING
    Len:1;Cmd:0x6f05;状态:0x00
    ###允许加入
    Len:1;Cmd:0x6536;状态:0x00

    轮询 Zigbee 以获取消息...
    轮询...
    Len:3;Cmd:0x4f80
    数据:0 2 0
    轮询...
    Len:3;Cmd:0x45b6
    数据:0 0 0
    轮询...
    Len:3;Cmd:0x45b6
    数据:0 0 0
    轮询...
    Len:3;Cmd:0x4f80
    数据:0 1 0
    轮询...

    轮询...

    轮询...

    轮询...

    轮询...
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    此外、ZED 也有微小变化、

    APP_CNF_BDB_TUSCING_NOSTICATION (0x4f80)、数据1、2、6与最后一次(使用 ZC 简单 API)数据1、2、4

    我不理解这种差异。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在观察到许多情况后、我发现、如果 ZED 关闭(处于硬复位状态)、那么在 ZC 侧、APP_CNF_BDB_TUSING 通知(0x4f80)始终具有数据0、2、0。

    如果 ZED 处于开启状态、则在 ZC 侧、APP_CNF_BDB_T调试 通知具有数据0、1、0。 在某些情况下、它有数据0、2、0 (也许 ZED 被暂停或其他某些情况、由于我发送 SYS_RESET、它不响应)

    通过这些观察、我认为 ZB 无线电通过 CC2592 PA 正常工作。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    不知道如何提供帮助。 我建议您设置监听器、以检查无线传输过程中发生的情况。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Cuong:

    我看不到 ZC APP_CNF_BDB_START_TING 表单(0x04)或转向器(0x02广播管理许可加入 ZDO 帧)网络的位置。 我也不知道路由器是如何执行网络转向的。 根据黄金推荐、使用 CC2531 USB 软件狗作为数据包监听器将极大地帮助您实际了解设备之间正在进行的通信。 以下是您可能已经了解的有关 CC2530迷你套件示例的教程 Wiki 页面: processors.wiki.ti.com/.../Tutorial_on_the_Examples

    此致、
    Ryan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Cuong:

    请向我们更新您的进度以及您的问题是否已解决。

    编辑:关闭此主题、直至获得更多反馈。

    此致、
    Ryan