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.

[参考译文] CC1311P3:具有 UART 写入功能的连续 RX 模式、导致数据完整性问题

Guru**** 2563960 points
Other Parts Discussed in Thread: CC1311P3

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1572799/cc1311p3-continuous-rx-mode-with-uart-write-causing-data-integrity-issues

器件型号:CC1311P3


工具/软件:

我目前正在使用 CC1311P3 简化版原理图 uartbridge 示例。 我已经修改了射频内核以在其下运行 连续 RX 模式 使用runcmd rx/rxAdv命令。 在此设置中、我使用读取传入的射频数据 部分缓冲区读取 在每个 RX_DONE 中断时(63 字节)。

  • 系统配置为 连续射频接收

  • 传入数据存储在中 循环缓冲器

  • 在每个 RX_DONE 中断时、我都想 通过 UART 发送接收到的数据 使用。 UART_write

  • 但是、由于连续 RX 模式、我观察到这一点 不会切换到主线程的上下文 、并且我无法直接在 RX 中断中通过 UART 发送数据。

  • 为了处理这个问题、我创建了一个 软件中断 (SWI) 和 A 时钟计时器回调

  • 计时器定期发布 SWI、在这里我检查循环缓冲区并启动UART_write

  • UART 的工作频率 75000 波特 、基于 DMA 的典型写入需要 63 字节 6ms (使用 DMA 完成回调测量)。

  • RX_DONE 中断周期约为 26.7ms

观察到的行为:

  • 当时钟计时器配置为采用时 35ms 或 45ms 间隔 我观察到 数据完整性问题 在 UART 输出中(数据丢失或损坏)。

  • 但是、如果我将计时器间隔增加到 300ms 、则 UART 输出数据完整性正确。

  • 何种应用 时间敏感 而且我们不能承受 UART 写入之间如此长的延迟。

什么是 推荐/最佳方法 抖动要大得多 连续射频 RX 数据接收 及时的 UART 传输 (没有数据丢失或损坏)、前提是:

  1. 射频内核正在运行 连续 RX 模式

  2. UART 写入需要频繁发生 (~每 26ms–35ms)。

  3. 射频内核引起的上下文切换或延迟似乎会阻止及时的 UART 运行。

有任何关于改善数据完整性、优化 UART 写入时序或结构调整以满足实时要求的建议会非常有用?

谢谢、
专题 B


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

    尊敬的 Theiv:

    CC1311P3 上有单独的射频内核。 因此、在派送 RX 命令后、M4 可以在无线电接收时执行其他操作。 当无线电返回中断时、M4 将切换回处理中断(接收到的数据包/字节或错误状态)。

    您使用哪个 API 来发送 RX 命令? (RF_RunCmd 是阻塞的、而 RF_scheduleCmd 不是。)

    谢谢、

    Marie H