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.

[参考译文] TIDA-00484:电路板和固件调试

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

https://e2e.ti.com/support/tools/simulation-hardware-system-design-tools-group/sim-hw-system-design/f/simulation-hardware-system-design-tools-forum/905226/tida-00484-board-and-fw-debug

器件型号:TIDA-00484
主题中讨论的其他器件: CC1310

您好!

我正在调试 TIDA-00484克隆板。 下面是情况和我的问题。 感谢您的任何帮助。 让我提供完整的详细信息(很抱歉、长时间发帖时提供所有详细信息)

TIDA-00484板通过10引脚 ARM Cortex 调试连接器连接到 SmartRF06评估板、我可以看到该板在目标 TIDA-00484板上检测到 CC1310。 我已经编译了所有代码(全新构建)并通过 SmartRF06评估板通过闪存编程器刷入了十六进制文件。 我还可以通过 Code Composer Studio V6进行单步执行代码、并设置断点和单步执行完整固件(大部分)。 我使用 的是 CC1111 USB EVM 套件 868/915MHz,用于使用 SmartRFTm协议数据包监听器软件“监听”数据包,如设计指南中所建议。 我还在使用下载目录中的 PRS 文件。 我还会在单步执行期间看到温度传感器数据正常、并且在存储器中形成6字节射频数据包(04h、54h、63h、78h、6Ah、94h)(作为数据包缓冲器)、我可以在观察窗口和存储器窗口中显示这些数据包。 到目前为止都很差。

现在提出问题

问题1:如果我不应用筛选器并且我不应用筛选器、则监听器上不会看到任何捕获的数据包(除了具有 FCS 错误的噪声数据包)。  
当我单步执行时-在形成喂料器缓冲器后、我看到代码问题  

rfHandle = RF_OPEN (&rfObject、&RF_prop、(RF_RadioSetup*)&RF_cmdPropRadioDivSetup、&rfParams);

(此调用完成、但我尚未检查所有状态-但如您所知、固件代码不会测试任何返回状态)-但我看到 rfHandle 等已填充)

然后设置频率调用

rf_postCmd (rfHandle、(rf_Op*)&rf_cmdf、rf_PriorityNormal、NULL、NULL);

(此调用也完成了、但我尚未检查所有状态-但您知道、固件代码不会测试任何返回状态)-我看到0x393 (915MHz)进入变量等。 正在组装)

然后、它会发出以下问题:

RF_Event 结果= RF_runCmd (rfHandle、(RF_OP*)&RF_cmdPropTx、RF_PriorityNormal、NULL);
if (结果!= RF_EventCmdDone)

此呼叫挂起-当然、监听器不会监听任何数据包。 现在... 我也进行了单步执行这个调用、以下是我的观察结果:

第一。 我看到 rf.C 文件代码移到: rf_CmdHandle rf_postCmd (rf_handle h、rf_op* pop、rf_priority EPRI、rf_Callback PCB、rf_EventbmMask Event)  

并尝试发布此命令(就像前面的命令因任何原因而未完成一样)、代码最终会移至:

//命令尚未完成,用一个发布到信标的回调覆盖回调,并将转至:

//等待信号量
Semaphore_pend (Semaphore_handle (&h->state.semSync)、BIOS_wait_forever);

不会再回来了...  

Observation1:在我看来、无线电处理器不再处理命令、并且队列被填满(我还看到在单步执行/断点调试期间、通道编号从0上升到2)。 我同时安装了32kHz 和24MHz 晶体、但尚未检查无线电。 我检查了 VDDR、因为它的电压测量值为1.682伏、这非常接近 CC1310数据表宣传的1.7分钟。

Observation2:我尝试使用 RF Studio 命令 TIDA 目标板来操作无线电(通过 XDS 100v3和10引脚带状电缆路径)、并且我看到命令行 TXMIT、FS 等。 将空闲状态打印为状态,但打印状态为“确定”的“中止”命令除外。 因此、无线电似乎无法正常工作

感谢您的任何帮助。 提前感谢。

Sham Datta。

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

    在单步执行代码时、您能否查看不同命令的状态?

    RF_cmdPropRadioDivSetup.status

    rf_cmdfs.status

    RF_cmdPropTx.status

    这可能会指示出出现了什么问题

    Siri

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

    谢谢、Siri -快速回复。 我们很快就会尝试、并随时为您发布。

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

    Siri、

    下面是测试运行结果的详细信息(请参阅随附的文本文件)。 我在文本文件中插入了我的评论,以解释或记录我的谦逊观察。 如果您由于某种原因无法读取我的文件、请告诉我、我可以找到其他方式来发送数据。  

    请仔细查看并建议我采取后续步骤以找出问题的根源。  

    提前感谢、

    SHAM Datta.e2e.ti.com/.../ShamsRFCmdStatus_5F00_05_2D00_16_2D00_2020_5F00_ver0.txt

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

    Siri、

    下面是测试运行结果的详细信息(请参阅随附的文本文件)。 我在文本文件中插入了我的评论,以解释或记录我的谦逊观察。 如果您由于某种原因无法读取我的文件、请告诉我、我可以找到其他方式来发送数据。  

    请仔细查看并建议我采取后续步骤以找出问题的根源。  

    提前感谢、

    Sham Datta

    e2e.ti.com/.../8524.ShamsRFCmdStatus_5F00_05_2D00_16_2D00_2020_5F00_ver0.txt

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

    恐怕我不明白您在日志中显示的内容。 我只是关注一下状态。

    此设计的代码非常旧、不使用我们的 SDK。 遗憾的是、我甚至无法构建代码。

    我想让您注释掉与传感器相关的代码、只需测试无线电。 您应该修改 txTaskFunction 以仅发送虚拟数据包。 如果对讲机正常、您将看到设置命令和 TX 命令的状态为0x3400 (PROP_DONE_OK)、且 FS 命令的状态为0x0400 (DONE_OK)。

    我在使用我们最新的 SDK 运行相同的无线电代码、然后在第一次发送数据包后卡在 while 循环中:

    原因是对讲机报告 RF_EventLastCmdDone、而不报告 RF_EventCmdDone。

    如果代码的无线电部分正常运行、 但您仍然无法接收任何粗糙的数据包、我怀疑问题可能与射频相关(您自己制作了电路板吗?、您是否可以测试更多电路板?、您是否密切关注参考设计?)

    Siri

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

    Siri、

    感谢您的快速回答。 让我对你提出的每一个项目进行评论,以便你能更好地帮助我。

    第一。 您提到的设计代码非常旧(您无法构建它)。  

    问题1:您是否可以仅获取 hex 文件(来自 TIDA-00484 rev3设计)并在 SDK 环境中运行无线电部分。 我之所以要求这样做、只是为了确保"旧 TIDA 设计中下面的所有无线电库代码都是可靠的、因此建议不要对此进行任何改进或保持稳健性"。  

    通过查看您发送给我的无线电代码片段、它与 TIDA main.c 源代码完全相同、但最后一个 Send Packet 调用会将结果处理为"RF_EventMask Resource"而不是"RF_Event Result "。 因此、代码是相同的(但 SDK 中的基础无线电库代码可能都更新)。 IMHO、这几乎不会产生任何影响-因为在我的设置/板上、此调用永远不会返回。

    不正确的是、我基本上还是在我的设置中测试无线电、因为每次运行时-数据包构建正常(换句话说、传感器代码读取全部正常)。

    我将再次运行我的代码(其他所有代码都已取出)并检查状态0x3400和0x400。 您将在这个上发帖。

    问题2:在我的设置中、正如我之前提到的-"SMART RF06EB"板 正在驱动我的 TIDA 卡10引脚 JTAG、这是设计指南的建议。 在此设置中、是否仍可以使用 RF06EB 器件控制面板发送数据包和测试无线电(我是说此 PC 程序将通过 JTAG 命令 CC1310来运行无线电)-或者此设置不适用于测试无线电? 我的意思是、Smart RF06EB 只能驱动 JTAG 进行 CCS 调试、但无法通过 JTAG 操作 CC1310? 由于我在发送数据包后看到空闲状态--我想知道,因为这是测试电路板无线电的另一种方法,而不是电路板上的闪存代码。

    问题3:  

    我正在进行的当前电路板测试是通过" TI 在网上自由开发的所有 PCB Altium 文件"来完成的。 因此、它是一个精确的克隆。 我想让它运行、并通过 GPIO/I2C (为它们添加代码支持)向它添加更多传感器、然后在我清除了参考板硬件和代码的所有障碍后、为我的应用制作增强型电路板。 因此、在一天结束时、电路板是一个克隆板-但我可以进行更多的硬件调试(电路板是由俄勒冈州当地的 PCB 服务完成的)。

    我将在执行所有代码调试后(正如您建议的那样)投入更多的硬件调试时间。  

    但由于无线电全部包含在 TI 芯片上-我认为代码应该运行到完成、即使包装程序监听器可能无法检测到它(由于射频侧硬件)。 这是不是正确的吗? 或者、您是否认为、除非所有射频侧硬件(线圈、电容器和天线)都是 Dandy TX 代码可能挂起。 我认为它仍会在 TX 引脚上输出数据并将状态为"正常"(这不是正确的吗?) 长射频时钟和电源以及此类基本配置是可以的(例如1.7V 等的 VDDR)。

    再次感谢。 请告诉我您对这些问题的看法。 我将继续在我这边再进行代码调试、并随时向您发布。

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

    你(们)好

    1:

    我看不出如何测试任何这样的操作。 我没有所需的硬件、因此我想、一旦代码尝试读取任何传感器(没有)、就会出现问题。

    2:

    您可以尝试在您的 PC 上下载 SmartRF Studio、看看是否能够以这种方式与 CC1310联系。

    3:

    在接收端、最好使用续内的 SmartRF Studio。 RX。 您可能能够确认您的电路板正在传输数据包、即使您无法正确接收数据包(您将看到无线信号)

    BR

    Siri

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

    Siri、

    只需进一步澄清、这样您就可以更好地帮助我。

    第一。 Siri >我看不出如何测试这种情况。 我没有所需的硬件、因此我想、一旦代码尝试读取任何传感器(没有)、就会出现问题

    SHAM >我了解该部分。 对我的要求进行一些澄清。 我知道(从您上一篇文章中得知)您在 SDK 上运行的 TIDA 00484"无线电命令序列"与 TIDA 00484在源代码中运行的"无线电命令序列"几乎完全相同、并且从无线电软件的角度来看已经完成。 我想知道的是:当您运行 TIDA-00484更高级别的"无线电发送命令序列"- SDK 环境中的底层无线电代码库"如 rf.c 等"是否相同?  换句话说、我想他的 SDK 环境中的低级无线电代码是否与我使用的 TIDA 00484源代码库不同。  

     

    #2:ON 2:

    Siri> 您可以尝试在您的 PC 上下载 SmartRF Studio、看看您是否能够以这种方式与 CC1310联系

    SHAM >我这么做了。 正如我在一封冗长的电子邮件中所说的那样- SmartRF Studio 会将"空闲"报告为发送序列中每个命令(Divsetup、FS 和 Txdata)的状态。 但不确定它是否通过10引脚 JTAG 成功与片上射频 RAM 通信并执行此操作。 我问这个问题、因为- TIDA 文档宣传了使用 RfStudio 作为与 TIDA 00484进行闪存编程的方法、而这只是一种方法。  因此、我不确定是否有人通过 JTAG 使用 SmartRF 来测试 CC1310无线电。 让我知道、这种测试方法是否可行。 即使是 SmartRF06手册也只讨论作为评估模块插入 SmartRF06的电路板的射频调试和评估、而不是通过 JTAG 进行的

    我甚至建议/请求 TI -如果执行射频测试的 JTAG 路径有效-开发人员在其中添加一个部分并专门说明执行无线电调试的 JTAG 路径会非常有帮助。

    3:开3:

    Siri > 在接收端、最好使用连续的 SmartRF Studio。 RX。 您可能能够确认您的电路板正在传输数据包、即使您无法正确接收数据包(您将看到无线信号)

    SHAM >对此有疑问: 我的理解是:如果我在 CONT 中配置 SmartRF Studio。 RX -它基本上将 TIDA 00484上的 CC1310配置为"续" RX 模式"(前提是它可以通过 JTAG 来实现)。  所以... 以下断言是否正确?

    (a)如果我采用这种配置、SmartRF06将配置位于 TIDA-00484上的 CC1310来执行"发送和接收数据包"。 我之所以提出这一问题、是因为我认为 SmartEF06板本身没有任何无线电芯片(据我从其文档中了解)。 无论如何-让我尝试一下、然后提出更多问题。

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

    1号)

    也许不是。 此 TI 设计是使用 TI-RTOS 2.14.03.28 (自2015年起)进行的、我使用最新的 simplelink_cc13x0_sdk_4_10_00_10进行了测试。 我想、自那时以来、射频驱动器已经做了许多更改/改进。

    2)

    我不确定我是否理解。 无法使用 SmartRF Studio 进行任何闪存编程。 为此、您将使用 SmartRF FlashProgrammer。

    我刚刚采用了 SmartRF06EB、并将10引脚 ARM Cortex 调试连接器连接到了我的 CC1310LP。 然后、我能够从 Studio 运行 PacketTX、验证了我的外部板(在我的情况下、是 LP)上的 CC1310是否正常工作。 从 Studio 传输1个数据包会导致执行以下4条命令:

     已执行>CMD_PROP_RADIO_DIV_SETUP

    >状态:0x3400 DONE_OK

    >CMD_FS 已执行

    >状态:0x400 DONE_OK

    已执行>CMD_PROP_TX

    >状态:0x3400 DONE_OK

    >CMD_ABORT 已执行

    >状态:0x1 DONE_OK

    3号)

    您应该能够从 Studio 进行传输和接收、如#2中所述。

    Siri

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

    Siri、

    首先、我们提供了出色的支持。 非常感谢您对我的长期问题的所有回答。 感谢您的支持。 请以这种颜色查看我在下面的评论/问题

    SIRI >>#1)

    也许不是。 此 TI 设计是使用 TI-RTOS 2.14.03.28 (自2015年起)进行的、我使用最新的 simplelink_cc13x0_sdk_4_10_00_10进行了测试。 我想、自那时以来、射频驱动器已经做了许多更改/改进。

    SHAM >确定。 我知道。 我可以尝试使用新代码(如果它易于编译、我知道、可能不会编译)来查看它是否为我提供了更多见解。 大家可能已经知道,我正试图根本解决这个问题(硬件或固件),这样我就可以在我的下一个使用 CC1310的定制板中修复所有这些问题,从而使其在生产中保持稳定。

    2)

    Siri >>我不确定自己是否理解。 无法使用 SmartRF Studio 进行任何闪存编程。 为此、您将使用 SmartRF FlashProgrammer。

    SHAM >哦。。 我不太清楚。 当然。 我使用的是 SmartRF 闪存编程器软件。 它成功地通过 SmartRF06板的10引脚 ARM Cortex JTAG 进入 TIDA - 00484板载 CC1310的闪存控制器。 供参考、闪存擦除、编程、验证-一切正常

    SIRI >>我刚刚采用了 SmartRF06EB、并将10引脚 ARM Cortex 调试连接器连接到了我的 CC1310LP。 然后、我能够从 Studio 运行 PacketTX、验证了我的外部板(在我的情况下、是 LP)上的 CC1310是否正常工作。 从 Studio 传输1个数据包会导致执行以下4条命令:

    SHAM >>这证明了 SmartRF06EB 能够将命令下载到射频 RAM 中并运行射频控制器。 谢谢。 我知道、它在我的中不起作用(就像 FW 代码不起作用)。 我将进行更多调试、并尽快为您发布。 同样、我建议/请求在下一版 SmartRF06EB 手册(XDS100部分)中添加注释、以明确告知读者可使用 JTAG 路径发送无线电命令、这种方法应该正常(希望它能帮助开发人员阅读手册)。

     已执行>CMD_PROP_RADIO_DIV_SETUP

    >状态:0x3400 DONE_OK

    SHORT>>目前我获得状态:空闲(屏幕上)。 让我在这里进行更多调试。

    >CMD_FS 已执行

    >状态:0x400 DONE_OK

    SHAM >>与上述相同。 到现在为止、我获得状态:IDLE (在屏幕上)。 让我在这里进行更多调试。

    已执行>CMD_PROP_TX

    >状态:0x3400 DONE_OK

    SHAM >>与上述相同。 到现在为止、我获得状态:IDLE (在屏幕上)。 让我在这里进行更多调试。

    >CMD_ABORT 已执行

    >状态:0x1 DONE_OK

    SHAM >>惊讶于此命令报告统计数据正常(我认为)-让我对这些进行更多调试。

    3号)

    您应该能够从 Studio 进行传输和接收、如#2中所述。

    Siri

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

    如果您在尝试从 Studio 中运行 PacketTX 并连接电路板后、可以发布 SmartRF Studio 的屏幕截图、这可能会很有用。 确保显示所有输出消息。

    Siri

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

    Siri、大家好

    实验1:这里是(请参见下面)- SmartRFStudio 的屏幕截图。  

    实验2:

    此外、我发现命令的状态: RF_cmdPropRadioDivSetup.status 从0x00更改为0x02 (在代码执行最后一个调用后执行(它不返回))。 执行 setup 和 RF_CMDF 后、它保持在0x0、然后更改0x2h。

    请告诉我、 RF_cmdPropRadioDivSetup.status 的含义是什么

    //__________________  

    SmartRFStudio 的屏幕截图粘贴如下:

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

    将屏幕截图作为文件发送。

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

    Siri、

    大家好、再说一次。 我进行了更多调试。 已使用 CC1310 Launch Pad 检查我的所有工具设置。 一切都很好。 最后、我强烈怀疑这一点(基于所有调试输入)是硬件问题、并且 CC1310芯片可能无法从晶体获得良好的24MHz I/p 时钟。  

    将其带到当地的 PCB 商店并检查了 PCB、他们发现24MHz 晶体封装确实是反向的(安装不正确)。 一旦、我将其固定下来-电路板工作正常、我正在修改电路、添加更多传感器并根据我们的要求进行定制。

    再次感谢所有支持。 我正在标记问题已解决。

    此致、