主题中讨论的其他部件:CC2592、 Z-stack、 CC2538、 CC2531
大家好、我正在开发一款将 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