TI中文支持网
TI专业的中文技术问题搜集分享网站

TMS320F28027: 为什么示波器测试串口频率,只有配置的波特率的一半?

Part Number:TMS320F28027Other Parts Discussed in Thread:C2000WARE

通信功能已经全部正常了。和PC端的“串口调试助手”通信,28027端和调试助手端分别用各种19200,38400,57600,115200都能正常工作。

#define LSPCLK_DIV 4  //低速线4分频=15MHZ

SysCtrlRegs.LOSPCP.all = LSPCLK_DIV/2;

EnableUartX(&SciaRegs, 15000000, 115200);

void EnableUartX(struct SCI_REGS *UART, u32 LSPCLK, u32 baud)

{

  UART->SCIHBAUD = LSPCLK/baud/8-1;    //  0x0F = 15MHZ/115200/8-1  
  UART->SCILBAUD = 0;

}

未波器20us一个格子,上升沿到下一个上升沿,比一个格子差一点,这不就是57600的频率吗?但PC和代码设置的BAUD就是比这个高一倍。

(顺便吐槽一下TI论坛的功能太LOW了,图片只能传链接,不能选本地文件系统的图片)

Green Deng:

额,你好,请问你是怎么计算波特率和频率的?

,

jiangtao zhou:

Deng老师您好,波特率我是以PC端的串口调试助手为准,它换别的BAUD会乱码。

频率则是我在TX脚上用示波器量的(选密集的高低跳变区域)

寄存器的值是这样的:

SciaRegs.SCIHBAUD = 15; //15M/BAUD115200-1= 15SciaRegs.SCILBAUD = 0;

使用的例程是:C:\ti\c2000\C2000Ware_4_01_00_00\device_support\f2802x\examples\structs\scia_loopback_interrupts

,

jiangtao zhou:

示波器我不好发图片,大约是18us(20us一个格子)完成了下降沿到下一个下降沿

,

Green Deng:

你的代码是基于其他工程修改的还是自己编写的?

前者容易把之前工程的时钟设置延用到新工程上,就可能导致比如之前的硬件晶振是20MHz的,而现在的晶振10MHz的,就有可能减半。

,

jiangtao zhou:

它用的内部10M,12倍频2分频=60M,LSPSP用的4分频15M,会不会是28027这个串口配置有BUG,你看它这个高低字节配置都是错的。正常应该先写在L字节上面吧?实际效果就是H字节写0X0F就可以跑出实际为115200的波特率,完全对不上。还有就是它实际可以跑出256000这么高的速率不出错,跟手册上的最高64K的速率也对不上。

,

Green Deng:

额,不行还是把图片上传一下吧。

论坛可以上传图片,直接把图片拖进输入框,或者你用输入框下面的“插入 – 图像/视频/文件”里面添加图片路径,甚至直接复制粘贴也可以添加图片。除非你的图片容量太大,有可能会无法添加,也没有提示。

,

jiangtao zhou:

,

Green Deng:

好的收到,我跟负责DCAN的工程师沟通一下后回复你

,

Green Deng:

你好,这个函数是你自己编写的吗?EnableUart()

因为我们这边没有在例程中找到这个函数

,

xuan wang:

请问这个问题解决了吗,我也遇到了相似的问题,实际波特率是配置值的一半

,

jiangtao zhou:

这个问题不再追了,波特率配置不但只一半,而且是配置在HBAUD上面,我当它是28027的BUG处理掉算了。现在我升级了一下芯片,感觉28027太古老了。

赞(0)
未经允许不得转载:TI中文支持网 » TMS320F28027: 为什么示波器测试串口频率,只有配置的波特率的一半?
分享到: 更多 (0)

© 2024 TI中文支持网   网站地图 鲁ICP备2022002796号-1