S3C2410有5个16bit守时器。守时器0-3有脉宽调制功用(Pulse Width Modulation,PWM),守时器4是内部守时器,没有输出引脚。守时器0有Dead-zone发生器,能够确保一对反向信号不会一起改动状况,常用于大电流设备中。
守时器0-1共用一个8bit prescaler,守时器2-4共用其他一个。每个守时器有一个时钟分频器,能够挑选5种分频办法。每个守时器从各自的时钟分频器获取时钟信号。prescaler是可编程的,并根据TCFG0-1寄存器数值对PCLK进行分频。
当守时器被使能之后,守时器计数缓冲寄存器(TCNTBn)中初始的数值就被加载到递减计数器中。守时器比较缓冲寄存器(TCMPBn)中的初始数值被加 载到比较寄存器中,以备与递减计数器数值进行比较。这种双缓冲特色能够让守时器在频率和占空比变化时输出的信号愈加安稳。
每个守时器都有一个各自时钟驱动的16bit递减计数器,当计数器数值为0时,发生一个守时中止,一起TCNTBn中的数值被再次载入递减计数器中再次开 始计数。只要封闭守时器才不会重载。TCMPBn的数值用于PWM,当递减计数器的数值和比较寄存器数值相一起,守时器改动输出电平,因而,比较寄存器决 定了PWM输出的敞开和封闭。
S3C2410的PWM守时器选用双buffer机制,能够不中止当时守时器的情况下设置下一轮守时操作。守时器值能够写到TCNTBn,而当时守时的计数值能够从TCNTOn取得,即,从TCNTBn取得的不是当时数值而是下一次计数的初始值。
主动加载功用被翻开后,当TCNTn数值递减到0时,芯片主动将TCNTBn的数值拷贝到TCNTn,然后开端下一次循环,若TCNTBn数值为0,则不会有递减操作,守时器中止。
第一次发动守时器的进程如下:
-
- 一起,由上面的作业进程能够看出,经过ISR或其他办法写入不同的TCMPBn的数值,就能够调理输出信号的占空比,完成脉宽调制(PWM)。
Dead Zone首要用在操控外设的使能,其功用首要是在封闭一个设备和敞开另一个设备之间,刺进一个时间空隙,以避免两个设备一起改动状况。(有利于减小体系搅扰?)
守时器能够经过TCFG1寄存器的DMA形式位装备为DMA恳求源信号(nDMA_REQ)发生器,当守时器被这样装备后,它将nDMA_REQ信号一向 置低,直到接收到ACK信号。当守时器收到ACK信号,它将nDMA_REQ信号置高(无效)。当守时器被设置为DMA恳求形式时,不会发生中止恳求。只 能有一个守时器被装备为DMA恳求源。
- 一起,由上面的作业进程能够看出,经过ISR或其他办法写入不同的TCMPBn的数值,就能够调理输出信号的占空比,完成脉宽调制(PWM)。