你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32f4定时器TIM1输出的PWM占空比快速变化时,导致串口2接收的数据频繁出错是为什么?

[复制链接]
isbool 提问时间:2022-2-26 21:33 / 已解决
收藏 评论5 发布时间:2022-2-26 21:33

举报

5个回答
isbool 最优答案 回答时间:2023-6-7 08:46:11
isbool 发表于 2022-3-7 16:01
[md]程序是电机FOC控制方面的,串口2用的是空闲中断+DMA的方式接收位置编码器的数据,rs485通信(2.5M波 ...

[md]其实就是PCB地线对串口数据造成的干扰,硬件问题排的脑瓜子嗡嗡的
xmshao 回答时间:2022-2-28 10:03:11
你说占空比快速变化时影响到串口2的接收,言外之意,占空比不变时没问题,是这个意思吧。如果是这样,你所说的接收频繁出错
具体怎么个错法,数据坏掉还是数据丢失?


如果说是数据坏掉,即接收到的数据跟发送的数据相比出现数据位的混乱,若是这样,有点费解。
因为修改占空比按理影响不到UART的正常接收。这点基于你的软硬件做现场测试确认可能更方便点。


如果说是数据丢失或覆盖,会不会是因为修改占空比而未能及时处理UART的接收呢?这样的话,我们可以
将UART接收改为DMA验证下。
butterflyspring 回答时间:2022-2-28 11:43:00

量测一下串口2数据的波形,推测多半是空间干扰影响的。如果是,就需要改善一下PCB走线或布局。

xmshao 回答时间:2022-3-3 09:56:04

你说占空比快速变化时影响到串口2的接收,言外之意,占空比不变时没问题,是这个意思吧。如果是这样,你所说的接收频繁出错具体怎么个错法,数据坏掉还是数据丢失?

如果说是数据坏掉,即接收到的数据跟发送的数据相比出现数据位的混乱,若是这样,有点费解。

因为修改占空比按理影响不到UART的正常接收。这点基于你的软硬件做现场测试确认可能更方便点。

如果说是数据丢失或覆盖,会不会是因为修改占空比而未能及时处理UART的接收呢?这样的话,我们可以将UART接收改为DMA验证下。

还有,具体用到哪些管脚,你说的PWM占空比快速变化是如何实现的?

isbool 回答时间:2022-3-7 16:01:27

xmshao 发表于 2022-3-3 09:56
你说占空比快速变化时影响到串口2的接收,言外之意,占空比不变时没问题,是这个意思吧。如果是这样, ...

[md]程序是电机FOC控制方面的,串口2用的是空闲中断+DMA的方式接收位置编码器的数据,rs485通信(2.5M波特率),定时器1是6路PWM输出。定占空比的时候没有发现错误,但是编码器返回的角度快速变化时,经FOC运算后写CCR值,计算出占空比也在快速变化(FOC是20khz频率),这时发现在串口中断接收的数据,经过CRC校验有很多错误数据(相对于20kH,就是几万个数据里面出现一个,也不算多,但是会影响电机运行),但是在RS485芯片接收引脚测量波形读出来的数据是没有错误的。

经过几天的排除,软件基本确定没有问题,软件这边确定的现象是关闭U相的下管PWM后,错误明显减少了。硬件部分电源开关等各种噪声都排除了,不存在空间电磁干扰,串口2选的PA16,17,定时器1选的PA8,9,10和PB13,14,15,两者距离比较远,最大的可能性是输出pwm的驱动部分有一路走线靠近晶振,但是跳线后错误也还是一样,示波器又抓不到晶振的波形,不好确定;最后把各个地都割了,pwm出来只有一个功率地,错误少了一点,猜测可能是地的原因,

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版