8XC196MC通过由重置寄存器(WG?RELOAD)中读入数据来确定周期的长短。而用户程序可以在任何时候通过写入重置寄存器的方法改变周期值。16位时基计数器每一个状态周期都要作一次加1/减1运算。以中心调节脉宽输出工作方式为例,计数器(WG?COUNTER)先从WG?RELOAD装入的数开始,先作减1运算,待减到0001H时,再作加1运算,直至等于WG?RELOAD,如此循环往复。
控制寄存器负责允许或禁止计数器工作,确定计数方向,控制工作方式并为全部三相信号确定死区时间。输出寄存器对管脚的输出进行设置,确定输出极性(高有效或低有效),以及控制对寄存器的刷新是立即改变还是由事件驱动同步进行数据更新。
另外,WG单元另设一个保护电路监测EX-TINT输入端,该输入端一般接到智能功率模块IPM的异常指示端FO上,当IPM由于过热、过流、短路以及其它原因使得FO由高变低,通过EXTINT输入到80C196MC中,80C196MC使WG输出关断信号停止IPM继续工作,同时通过中断通知用户程序对该异常情况进行处理。
在电机调速过程中,载波周期和信号占空比需要不断变化,一般在初始化程序中对波形发生器的各工作寄存器进行设置。初始化完成后,在用户程序中可随时通过重置这些寄存器来改变WG输出波形的周期以及占空比。当WG?COUNTER=WG?RELOAD中的值时,WG?RELOAD寄存器中的值被刷新,WG?COUNTER寄存器从WG?RELOAD寄存器中装入数值,同时,波形发生器触发一次WG中断,允许中断服务程序重置各寄存器的缓冲区,这样,新装入的数将在下一个事件到来时发生作用。波形发生器还支持对各寄存器的立即重置,不过,为了保持PWM信号的同步和完整性,在对初始化波形发生器后,一般采用同步刷新的方式。为以上叙述的图解表示,设初始化程序中将RELOAD中置A,COMPARE中置B,t0时刻RELOAD=COUNTER,COUNTER中被重置为A后,WG进入中断服务程序,假设在中断服务程序中对RELOAD重新赋值为A1,COM-PARE中数值不变,此时A1值并没有被立即写入到RELOAD中,而是被保存在一个暂存器中,在t1时刻当RELOAD的值再次与COUNTER值相等时,RELOAD被置为A1,COUNTER被置成RELOAD的值A1后,进入中断服务程序更新RELOAD暂存器。t为死区时间,由死区时间计数器值决定。