首次发帖、不周之处请指正! 先描述下问题,最近在做120度霍尔BLDC的控制,用STM32F103 TIM1产生六路PWM时出现问题。 想要实现的控制状态是可以控制六个通道中任何一个通道的PWM输出与关断,不用互补、不需要死区 选用引脚: TIM1配置如下图 主函数: 软件仿真: 我想要6路PWM的,但是只产生四路 PB0与PB1只在刚开始有输出 而且,当我把CH1设置为Disable时,CH1N仍然是Enable 仿真结果如下,CH1与CH1N不输出、其他四路输出正常 由此产生了几个问题 1、CH1的设置 会对PB0(CH2N) PB1(CH3N)产生影响? CH1 Enable,CH2N、CH3N不输出,CH1 Disable CH2N、CH3N输出 2、CH1由Enable变为Disable 对CH1N的输出产生了影响,CH1 的失能与使能时CH1与CH1N的总开关?我之后使能CH1、失能CH1N,除CH1N以外的其余五路输出 怀疑是库函数的原因、尝试用寄存器写 手册与配置 仿真结果如下图 想要的输出状态是上图红线标注的 CH通道关闭 CHN通道输出,百度过这种输出状态,有人说可以实现但是没讲方法 这样配置六路均有输出、但是PB0、PB1不正常 而且也不是我想要的输出状态,可能是配置问题,很少用寄存器,不清楚这么对不对,请指正 前边都是截图,补一下TIM1配置部分、main部分代码 [code] int main(void) { delay_init(); |
My_BLDC-try1.rar
下载3.44 MB, 下载次数: 577, 下载积分: ST金币 -1
æç代ç
【MCU实战经验】基于STM32F103C8T6的hart总线调试器设计
求教STM32F103进入STOP模式后用外部中断唤醒的问题
基于STM32F103RCT6的无源蜂鸣器音乐播放(生日快乐歌)
STM32F103c8t6有没有DAC 功能?
STM32F103x中文数据手册
新手求教,为何在我电脑上找不到STM32F1Xx.h文件
金龙107例程汇总(STM32F107)
万利STM32F107VC 原理图
STM32F103 ADC多通道检测必须要DMA吗?
【官方例程】STM32F107以太网官方例程
代码部分没贴上去,补一下
谢谢
关于如何输出六路互补带死区PWM波形,请关注“单片机STM32”公众号,里面有一篇文章“STM32定时器TIM1输出六路带死区互补PWM波形(一)”描述。
感兴趣可以下载源文件看哈
最后驱动无刷使用的H_ON L_PWM的方式,只用了三路输出PWM,其余三路直接拉高拉低IO口
折腾了几天我的结论是 CH1的Enable与Disable是CH1与CH1N的总开关,无论寄存器还是库函数
引脚映射会对PWM输出产生影响,所以建议在最初调的时候先用原输出脚仿真
还有。。。有感无刷使用PWM方波驱动时有多种方式,六路互补输出不是必要的,而且也有论文指出六路PWM驱动的无刷会有MOS换相频繁、力矩波动的问题
感谢
感谢
感谢分享