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.

[参考译文] CC2538-CC2592EMK:使用 CC2538 + CC2592与 ZStack Linux 通信的十六进制文件

Guru**** 2592790 points
Other Parts Discussed in Thread: CC2592, Z-STACK, CC2538, CC2538-CC2592EMK, CC2531

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

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/649228/cc2538-cc2592emk-hex-file-to-communicate-with-zstack-linux-using-cc2538-cc2592

器件型号:CC2538-CC2592EMK
主题中讨论的其他部件:CC2592Z-stackCC2538CC2531

大家好、我正在开发一款将 CC2538与 CC2592结合使用的 Zigbee Hub。 我使用的软件栈是 Z-Stack Linux。 CC2538必须通过不带流控制的 UART 与我的 SoC 进行通信。

我有一个预编译的十六进制文件、该文件在某种程度上适用于 CC2538、但这不使用 CC2592 LNA、事实上我检查了具有示波器的 PA_EN 和 LNA_EN 行、两者都是低电平、这意味着我拥有的预编译十六进制绝对不会驱动它们。

此时、我决定启用 IAR for ARM (8.11.2)的试用版、并尝试自行编译 ZStack 3.0.1 for CC2538附带的 ZNP 应用程序。 遗憾 的是,当我使用后一个固件刷写 CC2538时,ZStack Linux 无法完全与 CC2538通信([Z_STACK/LSTN]错误:apicSendSynchData()无法获得响应)。


(仅供参考、这是我尝试编译 C:\Texas Instruments\Z-Stack 3.0.1\projects\Zstack\ZNP\CC2538的 ZNP 应用的完整路径、这是与 ZStack Linux 通信的正确路径吗?)。

由于我要启用 CC2592 LNA 和 UART 通信、我编辑了以下文件:

OnBoard.h (因此按照 JasonB 的建议使用 IAR 8.11进行编译)

…
#define CSTACK_BEGE ((uint8 const *)(_Pragma ("seger=\"CSTACK\")_segment _BEGIN ("CSTACK")))
//#define CSTACK_END (((uint8 const *)(_Pragma ("seger="CSTAC\")_END ("CSTACK")_END
("_CSTACK")_END) 

板载.c

…
//表示(ptr = CSTACK_END;ptr > CSTACK_Begg;ptr -)
表示(ptr = CSTACK_END、ptr -;ptr > CSTACK_Begg;ptr -)
....
//返回(uint16)(CSTACK_END - ptr + 1);
返回(uint16)(CSTACK_END - ptr);
... 


hal_board_cfg.h

…
#define HAL_PA_LNA
#define HAL_PA_LNA_CC2592
#define xHAL_PA_LNA_CC2590....

//基于加电 h/w 配置的值作为带有上拉的输入-不使用动态 cfg 的传输。
#define ZNP_CFG0_32K_XTAL 1 //已安装并使用32kHz 晶体*/
#define ZNP_CFG0_32K_OSC 0 /*未安装32kHz 晶体;内部示波器。 已使用*/
#define ZNP_CFG1_SPI 0 /* 1 */*使用 SPI 传输*/
#define ZNP_CFG1_UART 1 /* 0 */*使用 UART 传输*/
.... 


MT_UART.h

…
#if!define MT_UART_DEFAUDRATE
#define MT_UART_DEFAUDRATE HAL_UART_BR_115200 // HAL_UART_BR_38400 */
#endif
…… 


应禁用流控制、因为 ZNP_ALT 在选项部分(在 C/C++编译器-预处理器下)下定义、以及以下内容:

xHAL_UART_USB
xUSB_Setup_MAX_NUMBER_of_interfaces=5
xHAL_SPI=true
HAL_UART=true
BDB_Finding_Binding_Capacity_enable=0
TC_LINKKEY_join
ewarm
CC2538_USE_ALTERNAL_INTERRUPT_MAP=1 CC2538ZCL_CL_ALL_SAMPLINE_CL_SAMPLE_CL_SENSIMPLE_TRUST_ZCL_RSIMP_CL_CL_CL_RING_ZLDING_ZROL_CL_CL_RUM_CL_SENS_TRUT_ZROP_SENSEST_ZROP_SENS_RUST_ZROP_RATE_TRUT_CL_TRIPS_ZRO













我尝试的配置是 CC2538ZNP-WI-SBL、但我也尝试过 CC2538ZNP-WON-SBL、但没有成功(尚未尝试过 CC2538ZNP-Debug)。 我应该使用什么配置?

您可以建议解决方案、还是为启用了 UART 和 CC2592的 CC2538提供预编译的十六进制文件?  

如果有任何帮助,将不胜感激。

谢谢、

John

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

    在项目 CC2538ZNP-Without - SBL 中、是否尝试启用编译选项

    HAL_UART=true

    默认情况下、在宏定义的开始处使用一个"x"禁用此功能。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Luis、

    感谢您的帮助、是的、我已经尝试在 CC2538ZNP-Without SBL 中启用该功能、但遗憾的是、尚未解决该问题。

    谢谢、
    John
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果您使用 ZTool 连接到运行 ZNP 的 CC2538-CC2592、ZTOOL 能否识别它?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 YiKai、

    感谢您的帮助、我没有尝试过、因为我处于不同的时区、我在键入时没有板。 虽然我首先尝试连接到 ZTool、但我假设我应该使用 CC2538的调试器连接到 ZTool、对吧? 如果您可以建议更多选项或提供支持 UART 和 CC2592的十六进制文件、以便我可以为它们执行操作、也会非常有帮助。

    谢谢、
    John
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请问您使用的 CC2538-CC2592硬件是什么? 是您自己的定制设计还是 TI CC2538-CC2592EMK?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我的 CC2538-CC2592EMK 以及我自己的定制设计都有问题。

    谢谢、
    John
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您能否向我展示如何将 CC2539-CC2592连接到您的 PC? 是否使用串行转 USB 连接器?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我将在我有板后立即向您发送图片、但实际上没有什么新东西、我只使用 USB 转 UART cp210x、并将 GND 连接到 GND、p0_2连接到 TX、p0_3连接到 Rx (也尝试了另一种方法)、 115200bps (也尝试了38400)、没有流控制、但我不认为这是问题、因为它可以与我拥有的预编译十六进制文件(不是由我自己编译)一起正常工作、但 LNA 位除外、因为它不是在中编译的。

    谢谢、
    John

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您的意思是、如果您使用预编译十六进制文件、它可以正常工作、但当您自己编译 CC2538ZNP-without SBL 示例时、它不起作用?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    确实是这样。

    感谢您的帮助、
    John
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我只能建议您先使用 ZTool 来验证您的构建。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我一定会尝试、非常感谢您的帮助!

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

    您可能还需要在网关配置中禁用流控制。 打开文件夹/out/Precompiled/servers 中的文件 NPI_Gateway.cfg、并在[UART]配置的底部附近向下移动、默认设置为 flowcontrol=1。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    只需尝试使用 SBL 构建 CC2538并生成十六进制文件。 将其下载到 CC2538-CC2592EMK 后、ZTool 无法识别它。 我使用115200作为波特率并禁用 ZTool 上的流量控制。 以下是编译器选项中定义的选项。

    xHAL_UART_USB
    HAL_PA_LNA_CC2592
    xUSB_Setup_MAX_Number_of_interfaces=5
    xHAL_SPI=true
    HAL_UART=true
    BDB_Finding_Binding_Capability = 0
    TC_LINKKEY_JOIN
    ewarm
    CC2538_use_alternate_interrupt_map=1
    CC2538ZNP
    ZNP_ALT
    xPOWER_Saving
    Feature_system_stats
    Feature_reset_macro
    ZDNWKMGR_MIN_Transmissions = 0
    MT_UART_DEFAULT_O溢=假
    ASSERT_RESET
    xMAKE_CRC_Shdw
    假_CRC_Shdw
    SBL_CLIENT
    ZCL_READ
    ZCL_discover
    ZCL_WRITE
    ZCL_BASIC

    如果我在 CC2538ZNP-Debug 工程中使用相同的定义、则可以正常工作。 您能否检查这种情况的发生原因?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,YK,

    CC2538ZNP-WI-SBL 十六进制文件中包含引导加载程序。 启动器件时、启动应用程序启动、大约需要1分钟来释放 ZNP 应用程序、直到无法使用 Z-Tool 进行连接。
    请等待1分钟以上、然后尝试使用 Z-Tool 进行连接。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

     延迟1分钟? 这对我来说是难以置信的。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我尝试了1分钟的延迟、但 ZTool 仍然无法连接到我构建的 CC2538ZNP-WI-SBL hex。 但是、如果我使用 CC2538ZNP-Debug、它会立即工作。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在网关配置中、流控制被禁用、同时我也启用了 debugAll、并且我可以清楚地看到流控制读数为0。

    谢谢、
    John
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    今天、我编译了 CC2538ZNP-Debug、ZStack Linux 现在能够与 CC2538通信。 LNA 似乎也在工作。 非常困惑为什么 CC2538ZNP-With-SBL 和 CC2538ZNP-With-SBL 无法正常工作。

    无论如何、感谢大家的帮助。

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

    我已经验证了 Z-Tool 和使用 SBL 的 ZNP 之间的相互作用是否奇怪。
    正如我提到的、SBL 应用程序首先运行(大约27秒)、之后运行 ZNP 应用程序。 出于某种原因、如果您在此时间之前打开 Z-tool、则端口会卡住或发生某种情况、并且无论等待多少时间、都无法再访问 ZNP 应用程序、因此为了测试 Z-tool、请关闭 z-tool、关闭 ZNP 电源并等待30秒(超过27秒) 然后运行 z-tool、它应该与您已经在使用的串行通信参数连接。

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

    如果我使用预构建的 CC2538ZNP-with -SBL.hex、ZTool 可以在延迟30秒后识别我的 CC2538ZNP 以启动 ZNP。 但是、如果我自己构建 CC2538ZNP-WIT-SBL 示例、它仍然不起作用。 您是否尝试安装新的 Z-Stack 3.0.1并构建 CC2538ZNP-With SB 示例以进行测试?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我现在遇到另一个问题、当使用上面编译的 ZNP 固件(CC2538ZNP-Debug、使用我之前发布的相同编译标志和代码编译)时、任何加入的终端设备都将在大约25秒后从网络中启动 (我可以在 ubiqua 中看到一条离开消息、也会从示例应用程序中消失)。 我已经尝试过任何可能的安全设置、启用/禁用 TC_LINKKEY_JOIN 等。但这种情况仍在发生、我还强制使用`X`重置 Linux 网关。 例如、如果我使用具有预编译十六进制的 CC2531、则不会出现此问题。 有线索吗? (终端设备基于 ZStack 3.0.1)。

    谢谢、
    John
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您的器件是否也基于 Z-Stack 3.0.1?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是否可以附加监听器日志?