STM32 高级定时器互补输出带死区实验

 首先我们要知道互补输出以及死区是什么意思:

互补输出是指,在比较/捕获输出部分,有OCx和OCNx两条通道,两条通道可以输出互补的信号;

死区:当OCx的电平已经从0跳变为1时,OCNx的电平还未发生跳变,会产生一段时间的延迟后再进行跳变,这段延迟的时间我们称为死区时间,主要是为了克服电路中由于元器件产生的时间延迟,比如在H桥控制的正反转电机中。

同时在这个实验中,还使用了刹车/断路功能

使用断路功能时,根据其它控制位(TIMx_BDTR 寄存器中的 MOE、OSSI 和 OSSR 位 以 及 TIMx_CR2 寄存器中的 OISx 和 OISxN 位)修改输出使能信号和无效电平。任何情况下, OCx 和 OCxN 输出都不能同时置为有效电平。即当刹车(断路)功能介入时,OCx和OCNx电平直接变成初始化所设定的高电平或者低电平。

 一些寄存器的主要功能

 atim.h

tim_ctrldie_ocxn_init();

 HAL_TIM_PWM_Init():TIM1定时器的基础初始化

HAL_TIM_PWM_ConfigChannel():配置PWM模式、比较值、输出值

HAL_TIMEx_ConfigBreakDeadTime() :配置刹车功能

Msp函数:配置时钟,NVIC,GPIO

tim_deadtime_cp_pwm_set():设置死区时间和输出比较值

 

main.c  

 

其中死区时间的计算如下

 依据我们给的参数,arr=1000-1,psc=90-1,因此是以1khz为频率计数,并且死区计数为100,比较值为700-1,由此我们算出DT = 2.22us

 

最后由示波器观察波形

 大约是4us/2=2us

当刹车功能接入是,两个信号都变成低电平状态,可惜忘记拍图了。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值