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.

[参考译文] LAUNCHXL-CC26X2R1:LAUNCHXL-CC26X2R1

Guru**** 2487425 points


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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1174623/launchxl-cc26x2r1-launchxl-cc26x2r1

器件型号:LAUNCHXL-CC26X2R1

您好!

背景:我目前正在进行一个有关无线网络的课程项目。 我打算构建一个网络、其中中央节点将从分布在特定环境中的多个节点收集数据(例如电路板温度、RSSI)。 您可以将此网络的物理拓扑想象成星型。 目前、我处于研究如何通过裸机编程正确发送数据包的初步阶段、即我很少使用驱动程序和 API、而是使用无线电门铃模块直接与无线电通信。 我正在使用 prop 无线电执行任务、我正在使用的命令序列如下所示(用乡村伪代码编写此代码)

  HWREG (CMDR)= CMD_START_TIMER

  HWREG (CMDR)=  CMD_PROP_RADIO_DIV_SETUP

  while (CMD_PROP_RADIO_DIV_SETUP.STATUS!=完成)

  HWREG (CMDR)= CMD_FS

  while (CMD_FS.status!=完成)

  while (1){                    //永久发送

    HWREG (CMDR)= CMD_PROP_TX

    while (CMD_PROP_TX.status!=完成)

   }   

在此之前、我已经初始化了所有必要的外设、例如振荡器(选择了 HF xtal)、射频内核电源、时钟门控等 在这些行中、我观察到 CMD_PROP_TX 在 经过固定的 while 循环迭代后卡在活动模式(顺便说一下 、我打算传输的数据包大小仅为50字节)。 在这里、我观察到 RFHWIFG 寄存器的 SYNTH_NO_LOCK 域已被提升。 我发现我应该延迟下一 个 CMD_PROP_TX 命令的传输以避免发出此标志(我正在使用 CPUDELAY()来引入此延迟,而我只是在使用 参数的值)。 我认为这样做可以解决这个问题、但是、不可以、我发送的最后一条命令仍然处于活动模式。

我观察到的一点是、RFESOFT1和 RATCCH1也被提升(就技术手册所说的那样、由于通道5、6和7是唯一可供用户使用的通道、所以我无法控制该寄存器)。 这是否与命令卡在激活模式中有关? 比如、比如说、它进入了一个我不知道的中断处理程序? (首先、我没有启用任何与无线电相关的中断)。 我试图清除这些标志、看看这是否能解决问题、但显然、这不能解决?

可以帮帮我吗? 我只想连续传输数据包。 展望未来、我确信我将在接收端再次遇到此问题。  

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

    不建议在此器件上使用裸金属。 您也不会获得任何支持。 最低限度使用功率驱动器、因为让芯片处于所需状态所需的序列相当复杂。

    是否有充分的理由不使用驱动程序而是使用这种裸机?  

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

    我的印象是、在使用某些驱动程序时、我倾向于包含和使用一些我真正不需要的东西。  

    您能否详细说明我将如何使用功率驱动器来完成此任务?  

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

    "倾向于包含和使用某些我真正不需要的东西"的问题是什么? 根据您的项目描述、您应该有足够的闪存和 RAM 可用。  

    并且:对于大多数驱动程序:它们的大小是有原因的。 如果您尝试实施自己的方案、您最终将面临几乎相同的复杂性、并且会耗费大量时间。 使用 TI-RTOS/FreeRTOS 和驱动程序、并从 SDK 中的示例开始。 让您的应用正常工作。 如果您在该点有时间备件、请查看驱动程序代码、看看您是否可以删除代码的部分。 这应该可以通过射频驱动器作为一个示例来实现。 请注意、某些驱动程序包含可解决错误的代码。   

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

    我并不是真的想到一个固定长度的数据包的连续传输(以及最终的接收) 必须遵循一个"复杂"序列。 我要问的是 、它们是否是执行此任务所需的正确命令序列(可能还有需要注意的时序+寄存器)、方法是直接使用硬件、而不必越过另一个抽象层。  

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

    您好、Bryan、

    尽管您可以使用来避免抽象层、但参考 rflib API 和 no-RTOS prop_RF 示例 将会很有用  、以便更好地了解 RFCC26X2_MOD模式.c 如何使用 RFC Doorbell 通过 RFC.c 发送无线电操作、从而与射频内核进行进一步通信。  在直接尝试修改无线电寄存器时、可获得有限的支持。

    此致、
    Ryan