1、修改main.c程序,修改pwm_dir的赋值语句,即只控制COUT60,不再控制CC60:

#include "tle_device.h"



int adc1;

int adc2;





int main(void)

{

uint8_t pwm_dir;//定义pwm的方向



/*****************************************************************************

** initialization of the hardware modules based on the configuration done **

** by using the IFXConfigWizard **

*****************************************************************************/

TLE_Init();



CCU6_T12_Str_En(); //初始化 T12 定时器

CCU6_StartTmr_T12(); // 启动 T12 定时器

BDRV_Set_Bridge(Ch_LS_PWM, Ch_PWM, Ch_LS_PWM, Ch_PWM); //将PWM信号映射到 LS1, HS1, LS2 和 HS2四个H桥的桥臂 */



pwm_dir = CCU6_MASK_COUT60 ; //设置要用PWM调制的H桥桥臂:GL1,不再控制GH1

CCU6_Passive_Level_High_Sel(CCU6_MASK_CC61); //设置CC61信号为常高,即GH2常通





for (;;)

{

(void)WDT1_Service(); //看门狗服务



CCU6_T12_Modulation_En(pwm_dir); //设置CCU6的输出方向



CCU6_Ch0_Value_Set(adc1); // 设置通道1的占空比

CCU6_Ch1_Value_Set(adc2); //设置通道2的占空比

CCU6_T12_Str_En(); //初始化 T12 定时器

}

}

2、设置adc1为500,adc2为1000

因为CC61信号为常高,即GH2常通,所以adc2参数设置为多少,GH2都一直保持常通,所以adc2的值对功能没有任何影响,此处设置为1000.

此时GH2常通、GL1在PWM控制下进行开关,GH1仅仅只能保持导通状态

各引脚电压为:

V(gh1) = 5V, V(gh2) = 24V, V(gl1) = 5V, V(gl2) = 0V

V(sh1) = 5V, V(sh2) = 12V, V(sl) = 0V

各引脚的电压波形为:

 

GH2:

TLE9854使用MOSFET驱动电机(六):使用 PWM 驱动 MOSFET,且四个 H 桥桥臂都使用 PWM 驱动,方向一(正向),但只控制 GL1 的开关_引脚

 

SH2:

TLE9854使用MOSFET驱动电机(六):使用 PWM 驱动 MOSFET,且四个 H 桥桥臂都使用 PWM 驱动,方向一(正向),但只控制 GL1 的开关_初始化_02

 

GL2:

TLE9854使用MOSFET驱动电机(六):使用 PWM 驱动 MOSFET,且四个 H 桥桥臂都使用 PWM 驱动,方向一(正向),但只控制 GL1 的开关_sed_03

 

SL:

TLE9854使用MOSFET驱动电机(六):使用 PWM 驱动 MOSFET,且四个 H 桥桥臂都使用 PWM 驱动,方向一(正向),但只控制 GL1 的开关_初始化_04

 

GL1:

TLE9854使用MOSFET驱动电机(六):使用 PWM 驱动 MOSFET,且四个 H 桥桥臂都使用 PWM 驱动,方向一(正向),但只控制 GL1 的开关_引脚_05

 

 

TLE9854使用MOSFET驱动电机(六):使用 PWM 驱动 MOSFET,且四个 H 桥桥臂都使用 PWM 驱动,方向一(正向),但只控制 GL1 的开关_初始化_06

GL1引脚的电压峰值为10V,但是高电平的时间占信号所有的时间为50%,所以用万用表量出来GL1引脚电压为5V。

adc1值设置为500,占空比的总周期为1000,所以设置的占空比为50%,程序参数与示波器采集到的波形相符合。

 

SH1:

TLE9854使用MOSFET驱动电机(六):使用 PWM 驱动 MOSFET,且四个 H 桥桥臂都使用 PWM 驱动,方向一(正向),但只控制 GL1 的开关_sed_07

 

SH1引脚的电压峰值为12V,但是高电平的时间占信号所有的时间为50%,且这50%的时间并不都是维持在12V,所以用万用表量出来SH1引脚电压为5V。

 

GH1:

 

TLE9854使用MOSFET驱动电机(六):使用 PWM 驱动 MOSFET,且四个 H 桥桥臂都使用 PWM 驱动,方向一(正向),但只控制 GL1 的开关_sed_08

GH1引脚的电压峰值为12V,但是高电平的时间占信号所有的时间为50%,且这50%的时间并不都是维持在12V,所以用万用表量出来GH1引脚电压为5V。

 

3、分析测试结果,可以看出将

 

pwm_dir =  CCU6_MASK_COUT60 | CCU6_MASK_CC60;

修改为:

pwm_dir =  CCU6_MASK_COUT60;

即PWM只控制GL1的导通和关闭,而不再控制GH1的导通和关闭,会导致GH1、SH1的引脚电压维持在5V,而不是原来的GH1为12V,SH1为6V。

  因为只是想要控制GH2、GL1通路的导通,所以GH1的通路打开并没有必要,而且还有可能造成GH1和GL1的同时导通,导致MOSFET管子短路,所以只用PWM控制GL1的导通和关闭,而不再控制GH1的导通和关闭,一定程度上避免了该问题,且可以降低GH1端的电压,从而降低MOSFET的整体功耗,且不会对MOSFET的GH2、GL1通路的导通造成任何影响,所以建议实际项目使用PWM控制MOSFET时使用该方案。

 

另一个方向也是类似的。