1、查看BDRV_Set_Bridge()函数的参数的相关配置
右键点击BDRV_Set_Bridge()函数的参数Ch_LS_PWM,然后选中”Go To Definition Of ‘Ch_LS_PWM’”,进行跳转
可以看到H桥的LS桥臂有四种设置状态,H桥的HS桥臂也有一样的四个状态
Ch_LS_Off = 0u, /*桥臂非使能 */
Ch_LS_En = 1u, /*桥臂使能 */
Ch_LS_PWM = 3u, /*桥臂使用PWM(CCU6生成)驱动*/
Ch_LS_On = 5u /*桥臂使能并且静态打开*/
用PWM驱动H桥桥臂,BDRV_Set_Bridge()函数的四个参数分别设置为:
Ch_LS_PWM, Ch_PWM, Ch_LS_PWM, Ch_PWM
现在想要直接打通H桥,而不再使用PWM,则四个参数要进行调整,修改要打通的H桥桥臂的参数为:Ch_LS_On或Ch_On
2、根据BDRV_Set_Bridge()函数参数的相关配置进行修改程序
查看BDRV_Set_Bridge()函数定义
可以看到BDRV_Set_Bridge()函数四个参数分别控制LS1、HS1、LS2、HS2四个桥臂,现在想要打通HS2、LS1,关断HS1、LS2则需要将BDRV_Set_Bridge()函数修改为:
BDRV_Set_Bridge(Ch_LS_On, Ch_En, Ch_LS_En, Ch_On);
3、完整的修改后的main.c程序为:
4、此时GH2、GL1常通、GH1、GL2常闭
各引脚电压为:
V(gh1) = 0V, V(gh2) = 24V, V(gl1) = 10V, V(gl2) = 0V
V(sh1) = 0V, V(sh2) = 12V, V(sl) = 0V
各引脚的电压波形为:
GH2:
SH2:
GL2:
SL:
GL1:
SH1:
。
GH1:
5、分析测试结果,可以看出
使用直接控制H桥桥臂打开的方式,相较于使用PWM的方式代码简洁了许多,而且GH1、SH1端点的电压在GH2、GL1导通时保持为0,。
但是GL1端的电压从5V变成了10V,并且电机一直以最大速度运行,没有办法调节电机的转速,所以相较于PWM控制,无法调速是一个很大的劣势。