基于S3C2440A的直流电机转速控制系统设计
3 系统的软件设计
S3C2440A有5个16位的定时器。定时器0,1,2,3有脉宽调制功能。定时器4有一个没有输出引脚的内部定时器,定时器0有一个用于大电流设备的死区生成器。
定时器0和1共用一个8位预分频器,定时器2,3,4共用另一个8位预分频器。每个定时器有1个时钟分频器,可以生成5种不同的分频信号:1/2,1/4,1/8,1/16和TCLK。每个定时器模块从时钟分频器接收自己的时钟信号,其分频器从相应的8位预分频器接收时钟。8位预分频器是可编程的并且根据装载的值来分频PCLK,它的值存储在TCFG0和TCFG1寄存器。
3.1 定时器工作方式
在S3C2440A中,每个定时器都有自己的16位减法计数器,由定时器时钟驱动。当定时器使能,定时器计数缓存寄存器(TCNTBn)得到一个被装载到递减计数器中的初始值。定时器比较缓存寄存器(TCMPBn)有一个被装载到比较寄存器中用来和递减计数器的值作比较的初始值。TC-NTBn和TCMPBn的双缓存特点使得当频率与负荷比发生改变时,定时器可以有1个稳定的输出。
定时器的启动步骤如下:
(1)写初始值到TCNTBn和TCMPBn。
(2)设置对应定时器的手动更新位,反相器设置为off状态。
(3)设置对应定时器的启动位开启定时器,同时清除手动更新位。
此时定时器开始倒数,当定时器计数器为0时,定时器发出中断请求,通知处理器定时结束。此时,对应TCNTBn的值将自动载入计数器,从而可以进入下一个操作。如果定时器已经停止,清除TCONn中的定时器使能位,则TCNTBn中的值将不会被载入到计数器中。
3.2 PWM脉宽调制
对于定时器来说,其时钟源输入频率一般不变。电动机的转速与电机两端的电压成正比,而电机两端的电压与控制波形的占空比成正比,因此电机的速度与占空比成正比,占空比越大,电机转速越快。而S3C2440A系统中PWM频率由TCNTBn决定,PWM脉冲宽度由TCMPBn决定,占空比即为TCMPBn/TCNTBn。
如果使电机转速下降,可以减少TCMPBn的值;相反可以增加TCMPBn的值。由于双缓冲的特性,为了获得下一个正确的PWM周期,可以在当前PWM周期的任意点通过ISR或其他程序来写TCMPBn。
S3C2440A设置PWM的流程图如图3所示。
分频器相关文章:分频器原理
评论