错误控制子模块TZ是可选模块,它在系统出现问题或者发出制动信号的时候,强制ePWMA和ePWMB输出高电平、低电平、高阻态或者无响应,以满足系统要求。
针对TMS320F280049C来说,每一个ePWM模块有六个外部输出信号/TZ1-/TZ6.这些信号低电平有效,可以连结到任意一个PWM通道。当引脚上有制动信号产生的时候,这些输出信号不仅可以使得PWM产生相应的动作,而且可以实现一次性控制(One-Shot,OSHT)以支持短路或者过流保护等单次错误,或者实现周期性(Cycle-By_Cycle,CBC)控制以支持当先限定操作的周期性作物。另外,在任意引脚出现错误信号均可以引起中断,并且可以通过软件强制触发错误。
TZ模块的寄存器包括TZ选择寄存器TZSEL,控制寄存器TZCTL,中断允许寄存器TZEINT,错误标志寄存器TZFLG,错误清除寄存器TZCLR和错误强制寄存器TZFRC。
其中选择寄存器TZSEL为每一个ePWM通道选择TZ源;
控制寄存器TZCTL 规定发生错误时的ePWMxA和ePWMxB输出响应,
TZEINT用于允许OSHT和CBC中断;
TZFLG用于指示相应错误事件是否触发;
TZCLR用于清除错误标志;
TZFRC用于软件强制错误事件。
触发事件的来源
TZ1-TZ3由GPIO触发,通过对GPIO进行配置,当GPIO由高电平翻转为低电平时触发。TZ4由在那些带有EQEP模块的设备上的反向EQEPxERR信号触发;TZ5连结到系统时钟故障逻辑。TZ6连结到CPU的EMSTOP输出。
GPIO设置举例:
/硬件故障触发Enable Trip Zone input,PWM触发机制/
GpioCtrlRegs.GPAPUD.bit.GPIO7 = 0; // 将GPIO7设置为上拉模式
GpioCtrlRegs.GPAQSEL1.bit.GPIO7 = 3; // 设置输入量化,对外部输入信号进行采样识别
InputXbarRegs.INPUT1SELECT = 7; // GPIO7 = TZ1