Other Parts Discussed in Thread: C2000WARE
器件型号: TMS320F280039C
主题: C2000WARE 中讨论的其他器件
我正在使用 LaunchPad 上可用的 SCI 模块。
我设置了特定的波特率、并通过 LaunchPad 上的 SCI-TX 引脚发送数据、以便在逻辑分析仪中查看该数据。
我看到预期波特率与实际波特率有很大不同。
例如、假设我已将波特率设置为 9600 (SCIHBAUD 和 SCILBAUD 分别设置为 0x5 和 0x15)、SYSCLK 设置为 100MHz、LSPCLK 设置为 SYSCLK/1、从而使其为 100MHz、每帧字符长度为 8 位。
波形如下所示:(此处显示了标题's') 
第一个位是起始位 (0)、后跟从 LSB 首先发送到 MSB 的位形式 (01010011) 的“S",“,然后、然后是停止位 (1)。 未设置奇偶校验位。
一位的宽度决定了波特率、如上所示为 115us、当转换为波特率时、波特率变为 8695、而不是 9601(9%误差)。
当我使用该实际波特率 (8695) 转换回 SCI 模块中使用的 LSPCLK (8695 =(LSPCLK)/(BRR+1)/8、BRR 为 1301) LSPCLK 作为 90.5671MHz 输出、而不是 100MHz 集。
我知道实际 SCI 波特率不会与预期波特率完全相同、但这种大误差不符合预期。
即使 F28003x 的 TRM 规定、对于处于 100MHz 的 LSPCLK、如果波特率设置为 9600、预期波特率也是 9601、误差为 0.01%、如下所示: 
我也检查了其他波特率的相同值、其中每个波特率的误差都明显大于预期。
我开始想知道 LSPCLK 本身是否有问题、LSPCLK 本身是 SCI 模块用于发送数据的 CLK 源。 遗憾的是、我没有看到在 TRM 中查看其波形的方法(有一种方法可将 GPIO 用于其他时钟信号、例如 PLL 信号、但不能用于 LSPCLK)。
请告诉我您的看法、因为在其他地方(如 PuTTY)接收此数据时、设置正确的波特率变得非常困难、因为差异很大。
谢谢。此致、
Sumukh.
