主题: SysConfig 中讨论的其他器件
工具/软件:
我的客户正在尝试在 CC2340R5 上开发高性能 UART 转 BLE 桥接器应用。 设计目标是在 460800 波特率下稳定工作。 为了提高环形缓冲器用于存储接收到的 UART 数据的性能、BLE 应用将从该环形缓冲区重试数据并通过 BLE 通知发送到对等设备。
应用程序在 115200 波特率下运行正常、但当波特率增加到 460800 时、UART Rx 端会显示缺少的字节。
- 这些字节直接从 UART Rx 缓冲区丢失。 CC2340 UART 从不接收这些字节。 这是通过 UART 回调中接收的字节计数进行验证的。
- 如果未使用 BLE 和环形缓冲器(仅接收 UART 数据但未将其放入环形缓冲区)、则不会发生问题。
- 如果使用环形缓冲器但未使用 BLE(将接收到的数据放入环形缓冲器,但不通过 BLE 通知发送)、则问题仍然发生。
客户有一个项目要重现此问题(请离线联系我以处理该项目)。 要重现此问题、请按照以下步骤操作:
- 在 CC2340R5 LaunchPad 上运行工程。
- 连接到手机。
- 从电话请求 247 字节的 MTU。
- 启用电话通知。
- 使用 460800 波特率打开 UART 终端 (hTerm)。
- 通过 UART 向 CC2340 发送文件(我创建了一个 100KB 示例文件,如下所示)。
- 在 CCS 监视窗口中观察 uart_received_bytes。
重复步骤 6 和 7 并观察 uart_received_bytes 变量、每次 UART 终端向 CC2340 发送 100,000 个 字节、每次 UART_received_bytes 都比发送的字节少一个或两个字节。
e2e.ti.com/.../test_5F00_100kb.bin


这个问题看起来与中断优先级或 DMA 传输有关、但我在找到问题的确切位置时遇到了问题。 我已经尝试调整 UART HWI 优先级和 UART 振铃缓冲区大小、但两者都没有区别。 请帮助找出根本原因吗? 谢谢。
此致、
Shuyang







