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.

[参考译文] CC2630:RF 的工作示例(或调试硬故障的帮助)

Guru**** 2380860 points
Other Parts Discussed in Thread: CC2630, SEGGER, CC2650, SIMPLELINK-CC13XX-CC26XX-SDK
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1073970/cc2630-working-example-of-the-rf-or-help-for-debugging-a-hardfault

部件号:CC2630
线程中讨论的其它部件: SEGGERCC2650TESTSIMPLELINK-CC13XX-CC26XX-SDKCC26XXWARE

我正在尝试为基于 CC2630的现有主板(即电子墨水架标签)编写自定义固件。

(是的,我知道它不推荐用于新设计,而是一种现有设计)。

不幸的是,我现在无法创造任何有用的东西。 TI 的文档中没有任何有用的信息。

无论如何,我已经能够使用 contiki-ng 编译和上载 hello-world 示例代码,但我不得不立即评论 Mac 初始化功能,否则将出现 cc2630硬故障。 挖掘一点,似乎硬故障(invstate)发生在 RF_scheduleCmd()关键部分的退出(在 contiki-ng/arch/CU/simplelink-cc13xx-cc26xx/lib/coresdk_cc13xx_cc26xx/source/ti/drivers/RF/RFCC26XX_multimplate.c)中)

实际调用栈类似于(来自 contiki-ng 根目录的路径):

-OS/contiki-main.c:97 netstack_init();
-  OS/net/netstack.c:90 NETSTACK_MAC.init();(NETSTACK_MAC 是此芯片的 CSMA_DRIVER)
-  OS/Net/Mac/CSMA/CSMA.c:169 ON ();
-     OS/Net/Mac/CSMA/CSMA.c:126返回 NETSTACK_RADIUS.ON();(此处为 NETSTACK_RADIO IEEE 模式)
-      ARCH/CU/simplelink-cc13xx-cc26xx/RF/IEEE-mode.c:666分辨率= netstack_sched_rx (真)
-ARCH/CU/simplelink-cc13xx-cc26xx/RF/sched.c     :512 RF_Cmd Handle TX_handle = RF_scheduleCmd ([...]);
-ARCH/CU/simplelink-cc13xx-cc26xx/lib/coresdk_cc13xx_cc26xx/source/ti/drivers/RF/RFCC26XX_multimple.c          :4347 Hwip_restore(key);

最后一次调用 Hwip_restore()时,出现硬故障(当使用 jlink JTAG 和 SEGGER 臭氧调试器逐步执行代码时)。

我已经编写了一个基于简化平台启动板/Cc2650的基本自定义板,使用正确的设备=CC2630瓦尔,禁用了尽可能多的设备(按钮,LED 等)

在我看来,此错误看起来像是错误初始化的 RF,以某种方式生成无效条件或事件(或者中断或异常处理程序的配置不正确?), 但我现在已经知道了如何进一步调试它。我甚至不能确定引起此 HardFault 的确切错误情况(这些异常寄存器位被设置为:HFSR. Forced,UFSR. INVSTATE,SHCSR. PENDSVACT 和 CCR.STCKALIGN)

(FTR,如果我在该调用栈中注释对'RF_scheduleCmd()'的调用,执行不会立即崩溃,但几秒钟后 RPL 尝试发送 DIS 时)。

所以我的问题(已经有人问过,但我没有看到任何有效的回答):是否有一个示例**正在运行**代码激活 CC2630的 RF 部分? 即使不是基于 contiki (我使用它是因为我发现它比 CCS 容易得多,我仍然不知道应该使用哪个“产品”来开始为这个 cc2630编译 hello-world 计划... 这些“旧但仍在生产中”芯片的开发人员文档状态非常令人沮丧;CC2630产品页面上没有实际可用的内容)。

感谢您的任何帮助/提示/建议,

大卫

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

    您可以尝试在 dev.ti.com/.../node 上参考 RF 示例

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

    大卫,你好。

    如果 选择了支持的无线电 PHY,则可以直接在 CC2630上使用 CC2650射频无线电示例,而无需进行任何修改。  另一个需要考虑的选择是评估 TIMAC。  如果  您对硬件性能有任何疑问,建议您测试多个主板(如果可能),并将您的定制主板设计提交至 SIMPLELINK-2-4GHz-设计评审。 如果发现 Contiki-NG 解决方案存在问题,则可以进一步咨询 Contiki-NG 社区。  

    此致,
    瑞安

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

    非常感谢你们的帮助。

    我想在所有这些方面找到一条路,但这是相当困难的。

    我正在使用 Debian Linux 工作站。

    我尝试使用 CCS (11)为启动板2650编译 RF 示例(rfCarierWave),但我甚至无法使用资源管理器(非常慢,非常差,显示不正确,sysconf 或 AppCenter 的问题相同, 似乎是任何嵌入式应用程序(实际上是 Web 应用程序/页面):

    因此我安装了独立版本的 TI-RTOS,并在 Examples 目录中找到:

    $ cd /opt/ti/tirtos_cc13xx_cc26xx_2_21_01_08/examples/TI/CC2650_LAUNCHXL/rfCarrierWave
    $ make
    Running Configuro...
    /bin/sh: 1: c:/ti/xdctools_3_32_00_06_core/xs: not found
    make: *** [makefile:53: rfExamples/linker.cmd] Error 127
    

    所以我修复makedef了这个文件,因为“c:/ti/”在 Linux 上没有多大意义...

    然后:

    $ make
    make
    Running Configuro...
    making package.mak (because of package.bld) ...
    js: "/opt/ti/tirtos_cc13xx_cc26xx_2_21_01_08/products/bios_6_46_01_38/packages/ti/targets/arm/elf/IArm.xs", line 79: Error: template generation of 'compiler.opt' failed: Error: Cannot find compiler in /opt/ti/ccsv6/tools/compiler/ti-cgt-arm_15.12.1.LTS. Please check compiler path.
        "./package.bld", line 54
    gmake: *** Deleting file `package.mak'
    gmake: *** No rule to make target `.configuro'.  Stop.
    js: "/opt/ti/xdctools_3_32_00_06_core/packages/xdc/tools/Cmdr.xs", line 51: Error: xdc.tools.configuro: configuration failed due to earlier errors (status = 2); 'linker.cmd' deleted.
    make: *** [makefile:55: rfExamples/linker.cmd] Error 1
    

    因此,独立的 TI-RTOS 实际上依赖于 CCS v6 (!) 安装在某个位置。

    我想我需要搜索哪个文件需要另一个修复程序才能使用我当前安装的 ccs11 (它是否起作用?),但是,这个生态系统是一场噩梦。

    我通常将平台用于嵌入式开发(我已将平台用于 AVR,STM32和支持32个 CPU,使用 Arduino,Mbeb-OS 或本地 ESP-IDF 框架),每天都有...

    很抱歉,这是一个消极的因素,但目前在 TI 开发生态系统方面的体验非常令人沮丧。

    由于我终于可以在 CCS11中导入 rfWaveCarrier 示例,我将再试一次。 以下是 CCXML 编辑器的外观,以供记录:

    无论如何,我会继续战斗,但是的,到目前为止,这不是一次很好的经历……

    大卫

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

    我理解您的沮丧情绪,因为 CC2630资源多年来一直没有更新或投入使用。  《TI-RTOS 发行说明 》确实指定 CCS 6.1.3和 Windows 7/8或 Ubuntu 10.04-13.04等。  您可以在旧版 XDCTools 的“下载”页面上找到它们,尽管这种带有 CCS 11的环境尚未经过测试。  近年来,TI 的生态系统  一直关注 SIMPLELINK-CC13XX-CC26XX-SDK ,我知道,由于现有主板的依赖性,您无法采用该软件。  为了获得更好的未来项目体验,迁移将是值得的。

    此致,
    瑞安

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

    当前状态:

    我终于能够编译上面的 rfCarrierWave,将 MCU 设置为 CC2630,但使用了原始 RF_parameters (我必须为此修复 cc26x0f128.cmd 文件),并上载固件。 我现在还没有检查它是否有任何作用(需要靠近频谱分析仪检查信号)。

    但我怀疑这不会有多大作用,因为示例代码使用专有的 RF 配置(2630 IIRC 不支持该配置),所以我需要找到更合适的 RF 配置。

    为此,我下载了 SmartRFStudio (该软件仅用于窗口,但通过葡萄酒至少可以正常工作)。

    我已经做了一个简单的配置(恒定的2.4 GHz 载波),但生成的文件无法编译,因为编译器找不到 RF_Patchs/RF_patch_CPE_IEEE.h 事实上,在/opt/ti/tirtos_cc13xx_cc26xx_2_21_01_08/products/cc26xxware_2_24_03_17272/rf_patches 中,我有一些 rf_path_cpe_xxx.h 文件(ble,ble_privr 和 genfsk),但没有 IEEE...

    因此,我怀疑 SmartRFStudio 预期的00.elink/Cc26xxware/something 版本不是 TI-RTOS 提供的版本(代码导出器声明“应用的模板与 tirtos_simplelink_2_21_00兼容”,我现在有 tirtos_cc13xx_cc26xx_2_21_01_08,因此看起来可以下载2.06;现在只需下载21.i 即可)。

    更多陷阱。

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

    谢谢瑞安

    我知道这是一种旧产品,但我已经有了板,所以我更愿意像现在一样重复使用它们,而不是重新设计新产品(这只是为了一个爱好项目 TBH)。

    令人沮丧的是,人们需要到处寻找不一致和过时的信息,事实上,这些芯片被广告宣传为仍在生产,并得到许多工具的支持,但实际上,由于它没有经过测试,它不再起作用(你好,CI)。

    尽管如此,自从我上次能够让该主板发出提示音以来,我已经取得了进步:

    我从 contiki 的源代码 repo 中窃取了丢失的 rf_patch_ieee.h 文件,并且只对代码进行了微小的修改,它就被编译了,甚至看起来是有效的。

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

     rf_patch_cpe_ieee.h 似乎存在于早期版本的 SimpleLink SDK 中: https://e2e.ti.com/f/1/t/801640 

    此致,
    瑞安