
Developer Community
匠芯创M6800系列芯片是用于高精度电机控制任务的微控制器,可广泛应用于工业、汽车和消费电子领域。M6800系列芯片中的EPWM(脉冲宽度调制)快速保护功能是为了实现电机控制和电源转换应用中的系统可靠性。EPWM快速保护模块通常用来在检测到错误或者潜在危险操作条件时,迅速关闭输出,从而保护电路免受损害。
一、特点与功能
M6800系列芯片中EPWM快速保护模块的特点和功能通常包括:
Trip-Zone 输入:这些是专用的输入,可以连接到外部故障信号。当检测到故障(比如过流、过压、温度超限等)时,Trip-Zone输入会触发保护机制。
模拟信号比较器:比较器可以用来实时监控模拟信号(比如电流或电压),当这些信号超出预设的阈值时,比较器输出信号可以直接触发EPWM的快速保护。
数字逻辑:可以将来自多个源的保护信号通过数字逻辑电路进行组合,以实现复杂的保护策略。
死区控制:在不同的EPWM信号之间提供时间延迟,以防止如电桥中的上下管同时导通导致的短路。
自动断开:在检测到故障时,EPWM输出会自动断开,防止错误传播,减少系统损伤。
软件干预和恢复:一旦触发保护并自动断开EPWM输出后,系统可以通过软件干预来判断故障情况,执行必要的故障处理流程,并在问题解决后恢复正常工作。
保护模式配置:用户可以配置快速保护反应的行为,例如立即关闭EPWM通道或设置成特定的状态。
这些特性使得M6800系列芯片的EPWM快速保护模块非常适合用在需要高可靠性和快速响应故障保护的场合,比如电动机驱动器、开关电源、逆变器等。
二、实现路径
由外部故障硬件信号连接到EPWM_FLTx引脚,用户配置错误联防操作,外部信号保护事件输入,触发EPWMxA/B动作,关断控制的MOSFET桥臂,实现限流与跳闸保护。
三、原理图与详细说明
故障指示输入,包括可恢复故障指示输入和不可恢复故障指示输入。故障指示的输入源来自管脚GPIO、内部比较模块CPM和内部SDFM模块,具体如下图所示,这三类的输入信号经过OR逻辑可以得到EPWM_RFLT_ALL和EPWM_NRFLT_ALL信号,分别触发进入可恢复故障模式和不可恢复故障模式。
① EPWM可恢复故障指示输入:
②EPWM不可恢复故障指示输入:
EPWM_FLTx可以配置或高或低,需注意CPM的故障输入以及SDFM的故障输入信号,固定为高电平有效,不可配置。
③故障操作:
当故障指示输入有效,那么EPWM强制执行故障操作,EPWM输出信号的故障操作包括:
EPWM强制输出高电平
EPWM强制输出低电平
EPWM强制输出高阻态
④无操作:
另外,软件可以通过寄存器设置,强制EPWM输出执行故障操作。
⑤故障模式:
EPWM快速保护模块可以同时支持两种类型的故障模式,一种为可恢复的故障模式,另一种为不可恢复的故障模式。
⑥可恢复故障模式:
此模式下,当EPWM_RFLT_ALL有效,EPWM模块立即执行故障操作,如果有使能中断模式,则产生EPWM_RC_FALT_INT中断。当计数器计数复位至0,若EPWM_RFLT_ALL信号变回无效状态吗,那么EPWM的故障操作解除,EPWM可以继续正常工作。
⑦不可恢复故障模式:
此模式下,当EPWM_NRFLT_ALL有效,EPWM快速保护模块立即执行故障操作,如果有使能中断模式,则产生EPWM_NRC_FALT_INT中断。当出现不可恢复的故障,那么此时EPWM一直处于故障操作的状态,不能修改。不可恢复故障的消除,只能通过软件写寄存器消除此状态,才可以使得EPWM再次正常工作。
⑧故障中断:
故障中断,由可恢复故障中断EPWM_RC_FALT_INT与不可恢复中断EPWM_NRC_FALT_INT进行或逻辑所得EPWM_FALT_INT信号。
⑨设计举例:
程序初始化:
//配置GPIOA02输入引脚 Fault2
gpio_enable(GPIO_GRP_A, 2, 1, GPIO_FUN_6);
//EPWM 初始化:初始化PWMA/B的GPIO管脚
epwm_pinmux_init(num);
//EPWM时钟初始化配置
pwmcs_cmu_init();
//内部供电配置使能
glb_hpwm_dll_ldo_en();
//使能EPWM时钟
epwm_clk_en(num);
//不用HPWM模块
epwm_hpwm_bypass(num);
//配置EPWM输出
PWM_OUT_CNF(num,4999,2500);
#ifdef REC_FAULT //可恢复故障
FAULT_REC_INIT(num);
#endif
#ifdef NON_REC_FAULT //不可恢复故障
FAULT_NREC_INIT(num);
//故障中断
epwm_fault_irq_register(FAULT_IRQ);
void FAULT_NREC_INIT(u32 num)
{
(*EPWM[num]).PWM_FAULT_IN.bit.FAULT2_POL = FAULT_HIGH; //故障信号极性,高电平有效
(*EPWM[num]).PWM_FAULT_IN.bit.NREC_FAULT2_EN = P_ENABLE; //使能不可恢复的故障信号2
(*EPWM[num]).PWM_FAULT_INT.bit.NREC_FAULT_INT_EN = P_ENABLE; //不可恢复故障中断使能
}
void FAULT_NREC_INIT(u32 num)
{
(*EPWM[num]).PWM_FAULT_IN.bit.FAULT2_POL = FAULT_HIGH; //故障信号极性,高电平有效
(*EPWM[num]).PWM_FAULT_IN.bit.NREC_FAULT2_EN = P_ENABLE; //使能不可恢复的故障信号2
(*EPWM[num]).PWM_FAULT_INT.bit.NREC_FAULT_INT_EN = P_ENABLE; //不可恢复故障中断使能
欢迎通过我司对外邮箱(sales@artinchip.com)获取官方文档、技术手册与应用笔记等,深入了解M6800系列芯片EPWM快速保护模块的架构、编程方法、使用案例以及配置工具的操作指导,获取更多产品有效信息。