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.

[参考译文] CC2340R5:通信过程中发生错误"ZB_ZDO_DEVICE_UNAVAILABLE"。

Guru**** 2763595 points

Other Parts Discussed in Thread: CC2340R5, LP-EM-CC2340R5, SYSCONFIG

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

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1604326/cc2340r5-the-error-zb_zdo_device_unavailable-occurred-during-the-communication-process

器件型号: CC2340R5
主题中讨论的其他部件:sysconfig

目前、在终端和协调器之间的通信过程中、终端设备将发送“ZB_ZDO_DEVICE_UNAVAILAB"信号“信号。 之后、终端和协调器之间将无法进行通信。 应如何处理这种情况? 我正在使用最新的 SimpleLink 低功耗 F3 内核 SDK。 我使用的是 onoff 示例。 目前、终端每 5 秒发送一次数据。 另一种情况是、一旦协调器连接到终端、就会立即表明终端已与网络断开连接。 应如何处理这一问题? 原因是什么? 是天线问题还是软件应用程序层无法正确处理?

132c88bf4cc0fe0c0f120230300d6d60.png

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

    Hi Shan、

    以下是 ZBOSS 用户指南中的 ZB_ZDO_DEVICE_UNAVAILABLE、供您参考。

    CC2340R5 的哪个节点是协调器和/或终端?  终端是 Zigbee 路由器还是终端设备?  您是否使用了开关或照明示例、是否对项目进行了任何更改?  您 是否为 SimpleLink F3 SDK 安装了所有正确的依赖项?  您是否使用 LP-EM-CC2340R5 LaunchPad、第三方 EVM 或定制硬件?  您能否提供一个 监听器日志 来演示无线网络行为?  您是否有可提供的其他调试屏幕截图?  行为发生的频率如何、调试后的时间范围如何?  该行为在一段时间后或 CC2340R5 复位或下电上电时是否正确?

    “NO_APS_ACK" 和“和“UNAVAILABLE_SHORT_addr = 00“表示 Zigbee 协调器不响应来自“终端“的数据包、该终端将是“孤立的“终端设备或丢失的相邻设备、具体取决于终端的 Zigbee 角色。  一个或两个器件上的天线性能可能较差、具体取决于物理距离和 TX 输出功率设置等因素(在 CC2340R5 上、可以在 SysConfig 无线电设置中增大此值)。  如果不了解更多信息、就很难了解更多信息。

    此致、
    Ryan

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

    协调器和终端均为 LP-EM-CC2340R5 开发板。 两个电路板之间的距离小于 2 米、信号强度约为–50。 此 ZB_ZDO_DEVICE_UNAVAILABLE 信号出现的时间是不可预测的。 有时它在启动后不到 10 秒内发生,有时它直到 20 分钟后才出现(距离保持不变)。 终端器件以 5 秒的间隔向协调器发送数据。 在 onoff 示例中、我没有修改其内容。 我只添加了 APS 发送和接收的基础上. 出现 ZB_ZDO_DEVICE_UNAVAILABLE 信号后、我们应如何处理它以恢复通信? 我尝试使用 ZB_bdb_Initiate_tc_rejoin 重新连接协调器以确保连接成功、终端器件还显示“查找和绑定完成“、但仍然无法正常通信。 为什么会这样? 只有当我打开设备时、通信才会恢复。

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

    尊敬的 Bin:

    您所说的 RSSI 在 2 米的距离内不是很好、也不足以导致设备之间的数据包丢失。  此外、对于加载了演示示示例的 CC2340R5 LaunchPad、从 10 秒到 20 分钟的时间短得多。  您引用的是哪个版本的 SimpleLink F3 SDK?  您能否更改 SysConfig 文件(在两个工程中)中的 Zigbee 通道以确定前一个通道的噪声是否太大、无法进行通信?  您是从 XDS110 为 LP 提供 3V3、还是使用外部电源(以及电压是多少)?  您是否有多个 LP-EM-CC2340R5 器件进行测试、以确认其中一个或两个器件未损坏?

    您可以尝试 bdb_start_top_level_commissioning(ZB_BDB_network_steering);重新加入网络。  “查找和绑定完成“是 ZB_BDB_Signal_finding_and_binding_initiator_finished 的返回 、除非 F&B 超时已过期或已取消、否则我不确定您在此实例中观察它的特定原因。

    如果可能、请查看捕获监听器日志、因为这将有助于调试并协助您进行进一步的开发工作。  另外、请告诉我终端是 ZR 节点还是 ZED 节点。

    此致、
    Ryan

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

    是否有任何工具可用于捕获 cc2340R5 的日志? 我注意到、该官员提供的工具都用于其他芯片。 我已经尝试将 SysConfig 中的 Zigbee 通道更改为 15 –2425MHz、并使用 XDS110 的 3V3 为 LP 电源供电。 我有一个协调器和一个终端 Zed 器件。 出现信号状态“ZB_ZDO_DEVICE_UNAVAILAB"。“。 我的应用层的逻辑是否存在影响 MAC 层和 APS 的问题?

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

    这是我使用的发送函数。 除了 Zigbee 的 MAIN_TASK_FUNCTION、我创建了一个新线程、并在此线程上执行所需的逻辑。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是否有任何工具可用于捕获 cc2340R5 的日志? 我注意到该官员提供的工具都用于其他芯片

    您是否提到了 日志记录 SLA 和 日志 TI 驱动程序 API

    影响 MAC 层和 APS 的应用层逻辑是否有问题?

    是的、当没有对默认工程进行任何更改时、是否会发生该问题?  您可能需要进行迭代更改以发现问题。

    这是我使用的发送函数。 我已从 Zigbee 的 MAIN_TASK_FUNCTION 创建了一个新线程、并在此线程上执行所需的逻辑。

    您可以使用 Insert -> Code 工具将代码段置于 E2E 响应中。  似乎从 Zigbee 基本工程开发对 SEND_APS_PAYLONG 函数进行采样 、这很好、在调度 SEND_APS_PAYLONG 回调之前确保 ZB_buf_GET_OUT 返回有效是一种很好的做法。 请注意、zb_hal_utils.h->ti_f3_main.c 文件中有 Zigbee 存储器 API(ZB_memcpy->ZB_memcpy 等)。  

    我假设  SEND_APS_PAYLOAD_CB 是您获得传输状态的位置、在缺少 APS ACK 之前似乎它们已成功。  您可以通过将  ZB_APS_SEND_USER_PAYLOAD 中的第三个到最后一个参数设置为 ZB_FALSE 来禁用 APS ACK 要求、但我不确定它是否与 ZB_ZDO_DEVICE_UNAVAILABLE 直接相关 。  在任何情况下、您的 AP 回调都需要释放参数。

    我没有新线程背后的背景、但您可以禁用此线程并仅测试 Zigbee 任务、以确定问题是否仍然存在、从而找到问题区域。

    如果要创建一个通过绑定向其父级报告的温度传感器设备、可以进一步考虑以下因素

    ZCL HA 温度传感器
    ZCL 属性报告
    配置报告命令发送和解析

    此致、
    Ryan

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

    谢谢你。 我已经解决了这个问题。