GD32F350.串口速率问题

[复制链接]
1533|16
 楼主| xiaoqi000 发表于 2022-12-31 23:38 | 显示全部楼层 |阅读模式
 在最近使用GD32F350的时候需要将串口速率配置到4M并且是TTL电平下使用,查看数据手册发现当时钟频率为108MHz,过采样为8,最高速度可达6.75MBits/s,因此4M速率是可以达到的。

测试条件:GD32F350与STM32F103在4M下单字节通讯
问题现象:串口误码严重

最开始排查是否是传输线过长导致,缩短线距到5CM,问题没有得到解决
怀疑STM32F103这边问题,用两个STM32在4M下通讯完全没有误码现象

评论

———————————————— 版权声明:本文为CSDN博主「Mapoplus」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/qq_50660070/article/details/127989169  发表于 2022-12-31 23:40
 楼主| xiaoqi000 发表于 2022-12-31 23:42 | 显示全部楼层
问题指向GD32F350,串口通过总线APB2时钟来配置速率,根据需求的波特率、过采样值和外部时钟计算得出波特率分频系数,这是一个16位的数字,包含12位整数部分和4位小数部分。波特率发生器使用这两部分组合所得的数值来确定波特率。由于具有小数部分的波特率分频系数,将使USART能够产生所有标准波特率 去配置串口整数寄存器和小数寄存器。
  1. 计算式
  2. USARTDIV= PCLK / 过采样值 × Baud Rate
 楼主| xiaoqi000 发表于 2022-12-31 23:43 | 显示全部楼层
时钟树配置为:采用外部8M时钟经PLL倍频后产生108M主频,总线APB2默认最高54M,
查看发现4M串口速率不是54M的整数倍,分频系数必然产生小数部分;怀疑会导致波特率不准。

改进措施:更改主频到96M,二分频产生APB2时钟48M,满足整数倍关系。

再次测试没有出现误码情况。
hilahope 发表于 2023-1-5 17:55 | 显示全部楼层
你可以尝试3Mhz的频率。              
chenjun89 发表于 2023-1-5 23:33 来自手机 | 显示全部楼层
4MHZ的速率,只有芯片对芯片板上通信了。
hilahope 发表于 2023-1-6 18:37 | 显示全部楼层
这个串口的波特率这么大的吗?              
tifmill 发表于 2023-1-6 19:09 | 显示全部楼层
之前最大测试过1.5M的波特率。
51xlf 发表于 2023-1-6 20:51 | 显示全部楼层
这个好像达不到这么大频率呢              
tabmone 发表于 2023-1-6 21:21 | 显示全部楼层
4Mhz的频率有点牛了。              
tpgf 发表于 2023-2-1 09:31 | 显示全部楼层
咨询个问题 就是什么叫做串口的过采样呢
nawu 发表于 2023-2-1 10:42 | 显示全部楼层
tpgf 发表于 2023-2-1 09:31
咨询个问题 就是什么叫做串口的过采样呢

可以变相理解为ad采样 啊 也是为了怕通讯的时候电平读取错误
aoyi 发表于 2023-2-1 12:11 | 显示全部楼层
标准UART可以选16倍采样,也可以选64倍采样,个人觉得应该是方便分频设计
zljiu 发表于 2023-2-1 13:13 | 显示全部楼层
在t1时刻若检测到低电平,就开始对这个低电平进行连续的检测

2.  当检测了8个时钟周期后,到达t2,此刻,若前面的8个周期都是低电平,则认为检测到了起始脉冲。否则就认为是干扰,重新检测。

3.  在检测到起始位后,再计数16个采样时钟周期就到达了第一个数据位的时间中间点t3,在此刻采样数据并进行保存。

4.  然后再经过16个周期,就是第二个数据位的时间中间点,在此时刻进行采样;然后,再经过16个周期,就是第三个数据位的时间中间点, 在此时刻进行采样…..一直这样采样,直到把所有的数据位采样完毕。
gwsan 发表于 2023-2-1 13:28 | 显示全部楼层
标准UART的RXD前端有一个"1到0跳变检测器",当其连续接受到8个RXD上的地电平时,该检测器就认为RXD线出现了起始位,进入接受数据状态.在接受状态,接受控制器对数据位7,8,9三个脉冲采样,并遵从三中取二的原则确定最终值.采用这一方法的根本目的还是为了增强抗干扰,提高数据传送的可靠性,采样信号总是在每个接受位的中间位置,可以避开数据位两端的边沿失真,也可以防止接受时钟频率和发送时钟频率不完全同步引起的误差.
tfqi 发表于 2023-2-1 14:03 | 显示全部楼层
估计是波特率的配置出现了问题或者是时钟有问题
Jacquetry 发表于 2023-3-2 20:22 | 显示全部楼层
是不是波特率的问题啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

67

主题

821

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部