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.

[参考译文] CC2530EM:如何使用 Z-Tool 将 CC2530 EM 配置为终端器件。

Guru**** 2826755 points

Other Parts Discussed in Thread: ENERGYTRACE, CC2530, Z-STACK, CC2530EM, CC2531EMK, CC2531

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

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/651031/cc2530em-how-to-configure-cc2530-em-as-end-device-using-z-tool

器件型号:CC2530EM
主题中讨论的其他器件:CC2530Z-STACKMSP432P401R、ENERGYTRACE CC2531EMKCC2531

大家好、

我正在尝试将 CC2530 EM 配置为终端设备。 我不知道如何将终端设备绑定到协调器或路由器。 我需要知道这两者。 我需要使用 AF_DATA_REQUEST 或其他命令在它们之间进行通信(路由器与终端设备和协调器与终端设备)。 我使用 Z-Tool 和两个 CC2530 EM 在协调器和路由器之间进行了通信。 请帮助您了解如何将 CC2530配置为终端设备以及如何将其绑定到路由器或协调器。  

谢谢你。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    SampleLight 和 SampleSwitch 在 SOC 模式下工作、这意味着它将 ZAP 和 ZNP 组合在芯片上、如果 nV 中存储了网络信息、它们会在下电上电后调用 BDB 启动佣金。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    请参阅本文档第节  1.3.2. e2e.ti.com/.../Z_2D00_Stack-Sample-Applications.pdf

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我确信我非常熟悉这份文档、您确切地说什么意思?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请参阅“已成功加入网络的设备可以“恢复网络”一行(而不是通过无线方式进行改革)
    消息)、即使在断电或电池后也是如此"。 即使断电后、器件也会在上电时恢复网络。 那么、为什么您说我们必须手动启动器件?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Z-Stack 样片 Applications.pdf 适用于在 SOC 模式下运行的 SampleLight/SampleSwitch 等示例。 它不适用于 ZAP-ZNP 模式。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    好的。 是否有仅 ZNP 模式?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    无法理解您的问题。 您能详细说明吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我的意思是可以单独使用 CC2530来运行我的应用吗?我必须自己编写代码吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、您可以将 CC2530单独用于您的应用、您可能需要添加一些您自己的应用代码。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    好的、感谢您提供的宝贵信息。 :)。 我会再次问问题、您是否有兴趣回答!!!

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

    能否在 ZNP 中添加一些代码以开始重新加入的调试?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这应该是有可能的。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我必须在哪个函数中添加修补程序、您能给我提供什么帮助吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我想您可以在 ZNP init 函数中执行它。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在哪个文件中?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果我正确地记住了 ZNP 源代码,您可以在位于 ZNP_APP.C.的 npInit()中执行它
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您说的是在加电时启动 z 堆栈?、但我只需要重新加入自动启动选项。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。


    您之前说过、如果 NV 中存储了网络信息、示例应用(示例灯-终端设备)将调用 bdb 开始调试。 您能在项目中展示一下吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可以尝试以下代码

    networkStatenv = ZDApp_ReadNetworkRestoreState();

    if (networkStateNV == ZDO_INITDEV_REASE_NETWORK_STATE)

    //开始调试

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

    在我必须添加此代码的哪个文件中,我可以使用 bdb_StartCommissioning()函数。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我想你可以在 znpInit()的末尾执行它。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我感到困惑的是、有两个函数1。 BDB_StartCommissning_2. BDB_startResumeCommissioningProcess。 我可以在这里使用哪一个?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    BDB_StartCommissning
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我无法正确启动器 件、我添加了代码部分并连接到 COO、然后对 CC2530进行下电上电、然后使用 UTIL_GET_DEVICE_INFO 检查器件状态。 该状态现在为"DeviceState:DEV_init (0x1)"。 在添加代码之前、下电上电后的状态将为 DEV_HOLD。  下面是我刚才所说的添加代码部分。 将添加'+'后面的行。

    + uint8 ZDApp_ReadNetworkRestoreState (void);
    + void bdb_StartCommissioning (uint8模式);
    
    void znpInit (uint8 taskId)
    {
    znpTaskId = taskId;
    (void) osal_set_event (
    
    readId、Znp_secondary、npnp);+ taskrat_rategr_ratured_r_rategr= znp_trad_rat_rate+ znpnpnpnpnpnpnpnp_taskId=taskId=taskategrat_rate_rate_rat_rate_ratured_taskId=task_ratured_en_rategrat_rate=znpnp_rate=znpnp_ratured_taskId=task_taskId=task_rate_rate_
    
    
    
    
    
    
    
    
    

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尝试使用"bdb_StartCommissioning (0);"而不是"bdb_StartCommissioning (BDB_commissioning_mode_NWK_Steering);"
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    相同的结果。 复位或下电上电后、器件状态为 DEV_INIT
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果您打开监听器、您是否在重启时看到设备发送信标请求?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    没有 YK,我只能看到 COO 的数据包
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    可能会尝试启动计时器事件、以便在3或5秒后调用启动佣金。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    有没有相关功能?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可以使用 API osal_start_timerEx 来实现它。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我不理解该函数的工作原理。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可以在 ZNP 示例中搜索 ZNP_PWRMGR_SAVE_EVENT、以了解有关其工作原理的更多信息。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在该函数中,uint8 osal_start_timerEx (uint8 taskID、uint16 event_id、uint32 timeout_value)当计时器过期事件被设置时,使用任务 ID 对其进行调用?我是否可以将函数而不是 taskID 作为参数?然后在5秒后调用该函数。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可以使用 ZNP_PWRMGR_SAVE_EVENT 使用的相同任务 ID、并克隆 ZNP_PWRMGR_SAVE_EVENT 事件以处理 bdb 启动佣金。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    设置事件时如何调用 bdb_start_commissioning?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    只需在事件中输入"bdb_StartCommissioning (0);"即可。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    然后函数将与以下函数类似:OSAL_START_timerEx (znpTaskId、bdb_StartCommissioning (0)、5000)。 对吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    不可以、第二个参数应该是已定义的事件、如 ZNP_PWRMGR_SAVE_EVENT。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这是我感到困惑的地方、那么 bdb_StartCommissioning 函数将如何调用?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尝试引用 sunmaysky.blogstoe.tw/.../how-to-create-periodic-event-for.html 以在 Z-Stack 中创建事件、并在事件中调用 bdb_StartCommissioning (0)。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我在 znbinit ()中添加了此函数: OSAL_START_timerEx (taskId、PERIODCEVNT、5000);PERIODCEVNT 为0x0001。  然后、我在 ZDUP_EVENT_LOOP 中添加了下面所示的代码。

    if (事件和 PERIODCEVNT)

      if (ZDO_INITDEV_RERESITE_NETWORK_STATE == ZDApp_ReadNetworkRestoreState ())
      {   
       BDB_StartCommissioning (0);
      }

    我的操作是否正确?、我运行了此代码 、但看起来不起作用。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    不、这是不正确的。 应使用 znpTaskId 并将事件代码放入 znpEventLoop ()。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    哦,非常感谢你,这家酒店很棒!!!! 但是、当我在 ETRX 模块中给出 AT+DASSL 和 AT+EN 以形成新网络时、CC2530就会进入以下状态:DeviceState:DEV_NWK_ALALOAD(0xA)。 我不更改 ETRX 中的任何其他值、但 CC 未加入新网络。 我是否必须像处理循环通电问题那样在代码中执行此操作?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我想当器件变为 DEV_NWK_孤立 状态时、您必须调用 bdb 启动佣金。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    但是、如果设备处于孤立状态后没有网络、情况会怎样。 只要有开放的网络,我就需要终端设备加入自己。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果启用 NV_RESTORE 并且器件进入孤立状态、则无法加入其他开放的 Zigbee 网络。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    但 COO 是一样的。 我用同一个 COO 建立了一个新网络。 当然、需要 NV_RESTORE。 那么、终端设备如何才能加入新网络?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果是新网络,则必须将设备恢复出厂设置才能加入新网络。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    恢复出厂设置意味着正确清除 NV 存储器?、这适用于新网络、但当 COO 关闭时、终端设备变为孤立状态。 一段时间后、COO 上电、那么终端设备不会重新加入同一网络、原因是什么?