打印
[STM32F1]

STM32F103VET6的芯片,PWM输出,设置空闲态为低电平,在低电平刹车时,出现异常短暂脉冲

[复制链接]
365|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jcky001|  楼主 | 2023-5-29 11:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
单通道PWM输出时(设定低电平时间为600us,设定空闲状态为低电平),在PWM低电平500us时,来了一个刹车信号,发现PWM波形出现了一个短暂的异常脉冲,然后才一直为低。(理论上不应该刹车信号来了之后就会一直变成低电平吗?)这个异常脉冲是什么原因?
程序配置如下:
/PWM模式配置/ //配置为PWM模式1 TIM_OCInitStructure.OCMode = TIM_OCMODE_PWM1; TIM_OCInitStructure.Pulse = ChannelPulse;//初始 50% TIM_OCInitStructure.OCPolarity = TIM_OCPOLARITY_LOW; TIM_OCInitStructure.OCIdleState = TIM_OCIDLESTATE_RESET; //初始化通道1输出PWM HAL_TIM_PWM_ConfigChannel(&TIM_TimeBaseStructure,&TIM_OCInitStructure,TIM_CHANNEL_1); / 自动输出使能,断路、死区时间和锁定配置 / TIM_BDTRInitStructure.OffStateRunMode = TIM_OSSR_ENABLE; TIM_BDTRInitStructure.OffStateIDLEMode = TIM_OSSI_ENABLE; TIM_BDTRInitStructure.LockLevel = TIM_LOCKLEVEL_1; TIM_BDTRInitStructure.DeadTime = 11; TIM_BDTRInitStructure.BreakState = TIM_BREAK_ENABLE; TIM_BDTRInitStructure.BreakPolarity = TIM_BREAKPOLARITY_LOW; TIM_BDTRInitStructure.AutomaticOutput = TIM_AUTOMATICOUTPUT_ENABLE; HAL_TIMEx_ConfigBreakDeadTime(&TIM_TimeBaseStructure, &TIM_BDTRInitStructure); / 定时器通道1输出PWM / HAL_TIM_PWM_Start(&TIM_TimeBaseStructure,TIM_CHANNEL_1);


使用特权

评论回复
沙发
香水城| | 2023-5-29 15:24 | 只看该作者
严格地说,刹车后输出的空闲状态电平,这个电平跟你当初的配置是有关系的。

我看你已经开启了死区配置。以OCx为例,首先它在死区时间内按照CCxP的配置位来输出,

然后输出之前配置的OCx空闲状态的输出电平。

结合你目前的代码配置,你的极性选择控制是低有效,即CCxp=1.

这样看来是可能出现你反映的情况的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1477

主题

4231

帖子

6

粉丝