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-CC1310:在 CC1310 上自动捕获 RX 数据包和 UART 转储

Guru**** 2862450 points

Other Parts Discussed in Thread: CC1310

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1623819/launchxl-cc1310-automating-rx-packet-capture-and-uart-dump-on-cc1310

器件型号: LAUNCHXL-CC1310
第 10 个主题中讨论的其他器件:CC1310

我正在使用 CC1310 LaunchXL 在 433MHz 上接收射频数据包。 目前我可以在 SmartRF Studio 中观察射频活动、但我想在固件中实施自动接收过程。

我的目标是:

  1. 配置自定义同步字。

  2. 设置固定或可变的数据包长度。

  3. 自动连续接收数据包。

  4. 将接收到的数据包字节转储到 UART 以进行记录/分析。

任何示例代码或建议的工作流程来实施具有 UART 数据包转储的连续 RX 都将非常有帮助。

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

    尊敬的 Ravi:

    对于我们的新器件、我们制作了一个描述方式的示例、即射频 UART 桥接器示例。 遗憾的是、我们在 CC1310 上没有它。 不过、在 CC1310 上复制该示例应该相当容易。

    https://dev.ti.com/tirex/explore/node?isTheia=false&node=A__ABi4khaY-AjqueYxdXCy8A__com.ti.SIMPLELINK_CC13XX_CC26XX_SDK_PROPRF_MODULE__BSEc4rl__LATEST 

    如果您需要同步字或其他器件方面的任何帮助、敬请告知。

    谢谢、

    Marie H

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

    我在导入工程时遇到问题。 编译器版本 GNU 9.2.1 当前未安装、因此无法导入工程。

    当您提到复制示例时、您是指我应该将 main.c 和 uart.c 与一起复制到我的工程中uart.syscfg、还是需要进行任何其他更改?

    此外、我是否有任何发送命令的方式与在 Code Composer Studio(某些控制台窗口)中的方式类似

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

    尊敬的 Ravi:

    链接的示例适用于 CC1312。 我们有一个 TI Clang 编译器选项、我认为该选项可以正常工作、无需任何进一步安装。

    谢谢、

    Marie H

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

    尊敬的 Ravi:

    请先从 CC13x0 SDK 导入 rfPacketRx 示例。 以下是对代码更改的建议:

    步骤 1:包括所需的标题

    #include <ti/drivers/UART.h>

    步骤 2:声明变量

    static UART_Handle uartHandle;
    static UART_Params params;

    步骤 3:初始化 UART 驱动程序

    我会在初始化射频驱动程序之前执行此操作。  

    UART_Params_init(&params);
    uartHandle = UART_open(Board_UART, &params);

    步骤 4:传输数据

    您可以在“RF packet successfully received“回调中添加此项。

    uint8 txbuf[] = {0,1,2,3,4};
    UART_write(uartHandle, txbuf, 5);

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

    需要有关根据 SmartRF Studio 同步字和设置波特率的帮助

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

    当直接使用 smartrf_settings.c 和 smartrf_settings.h 时、会收到这些错误

    ...

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

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

    为什么在从另一个 LaunchPad 发送 Packet TX 来手动检查时无法获得数据包 Rx、该过程在 4.2Kb 上运行、但在 8.4kb 上无法正常工作

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

    尊敬的 Ravi:

    我猜是 SmartRF Studio 产生的对象与您的应用程序使用的对象具有不同的名称。

    谢谢、

    Marie H

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

    此处有任何要更新的内容  

    /********************************************************************************************
    * 文件名:   rf_queue.c
    /*标准 C 库*/
    #include
    #include

    /*应用程序头文件*/
    #include “RFQueue.h"</s>“
    #include
    include DeviceFamily_constructPath (driverlib/rf_data_entry.h)

    /*接收条目指针以跟踪已读项目*/
    RFC_dataEntryGeneral_t* readEntry;

    //************************************************************************************************
    //
    //! 获取当前 DataEntry
    //!
    //! \return RFC_DataEntry*
    //
    //************************************************************************************************
    RFC_dataEntryGeneral_t*
    RFQueue_getDataEntry()
     return (readEntry);
    }

    //************************************************************************************************
    //
    //! 移至下一个 DataEntry
    //!
    //! \Return None
    //
    //************************************************************************************************
    uint8_t
    RFQueue_nextEntry()
     /*将状态设置为待处理*/
     readEntry->status = data_entry_pending;

     /*将读取条目指针移动到下一个条目*/
     readEntry =(RFC_dataEntryGeneral_t*)readEntry->pNextEntry;

     返回 (readEntry->status);
    }

    //************************************************************************************************
    //
    //! 定义队列
    //!
    //! \param dataQueue 是指向要使用的队列的指针
    //! \param buf 是要使用的预加载字节缓冲区
    //! \param buf_len 是预分配的字节数
    //! \param numEntries 是要将缓冲区拆分成的 dataEntries 数
    //! \param length 是每个 DataEntry 中的数据长度
    //!
    //! \return uint8_t
    //
    //************************************************************************************************
    uint8_t
    RFQueue_defineQueue(dataQueue_t *dataQueue、uint8_t *buf、uint16_t buf_len、uint8_t numEntries、uint16_t 长度)

     if (buf_len <(numEntries *(length + rf_queue_data_entry_header_size + rf_queue_align_padding (length)))))
     {
      /*队列不适合缓冲区*/
      返回 (1);
     }

     /* 4 字节对齐需要填充? */
     uint8_t pad = 4-((length + RF_queue_data_entry_header_size)%4);

     /*设置数据条目通用配置*/
     uint8_t *first_entry = buf;
     int i;
     对于 (I = 0;I < numEntries;I++)
     {
      Buf = first_entry + i *(rf_queue_data_entry_header_size + length + pad);
      (((RFC_DataEntry_t*)buf)->status    = data_entry_pending;    // Pending - starting state
      ((RFC_DataEntry_t*)buf)->config.type = data_entry_type_GEN;   //常规数据输入
      ((RFC_DataEntry_t*)buf)->config.lenSz = 0;             //数据中没有长度指示符字节
      ((RFC_DataEntry_t*)buf)->length    = length;           //数据字段的总长度

      (((RFC_dataEntryGeneral_t*)buf)->pNextEntry =&(((RFC_dataEntryGeneral_t*)buf)->data)+length+pad;
     }
     /*使循环最后一个。下一步->第一个*/
     ((RFC_DataEntry_t*)buf)->pNextEntry = first_entry;

     /*创建数据输入队列并配置循环缓冲区数据条目*/
     dataQueue->pCurrEntry = first_entry;
     dataQueue->pLastEntry = NULL

     /*将读取指针设置为第一个条目*/
     readEntry =(RFC_dataEntryGeneral_t*)first_entry;

     返回 (0);
    }、我的数据包含标头 65A6、我使用它作为 syncword、它确实包括 seq no 和任何包含数据长度的字节
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    从 RFStudio 导入了相同的设置、其中我正在获取数据 、但没有串行进行任何 LED 切换或数据打印、当我从另一个 LaunchPad 读取数据包时、在 4.2kb 上工作正常、但在 8.4kbaud 速率下不工作

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

    尊敬的 Ravi:

    是否能够在 SmartRF Studio 中工作?

    顺便说一下、如果不使用 TI 表征 PHY、我建议您查看此应用手册。

    https://www.ti.com/lit/swra682

    谢谢、

    Marie H

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

    要解决这个问题,唯一的问题是有时数据似乎是位移..  

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

    我可以为我的 RFpacket 添加 RSSI 值吗? 有关如何实现这些目标的任何工程示例

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

    尊敬的 Ravi:

    请查看此主题: CC1310:获取上次收到的消息的 RSSI — 低于 1GHz 论坛 — 低于 1GHz - TI E2E 支持论坛

    谢谢、

    Marie H

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

    可以在生产中部署 PacketRX 示例、或者存在任何长期问题、无法将其持续置于 PacketRX 模式。  

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

    尊敬的 Ravi:

    是的、如果您将无线电长时间保留在 RX 中、我们有勘误表。 请参阅勘误表中的公告 8 和 9。

    https://www.ti.com/lit/swrz062

    谢谢、

    Marie H