第10章  CLOCK

来源:互联网 发布:淘宝开个充值店怎么样 编辑:程序博客网 时间:2024/05/01 19:16

From Evernote:

第10章

10.1时钟体系及各类时钟部件
时钟控制逻辑给整个芯片提供3种时钟:
FCLK用于cpu核;HCLK用于AHB总线上设备,比如cpu核、存储器控制器、中断控制器、lcd控制器、DMA和USB主机模块等;PCLK用于APB总线上的设备如WATCHDOG、Ⅱs、i2c、pwm定时器、MMC接口、ADC、UART、GPIO、RTC、SPI
AHB(ADVANCED high PERFORMANCE BUS)总线主要用于cpu、DMA和DSP
APB用于低带宽的周边外设之间的连接UART/I2C
S3C2440/S3C2440有两个pll:mpll和upll,upll专用于usb设备,mpll用于设置fclk、hclk、plck

第10章 <wbr> <wbr>CLOCK
1.上电几毫秒,晶振输出稳定,flck=fin,nreset信号恢复高电平,cpu开始工作
2.可以在程序开头启动MPLL,设置MPLL的几个寄存器,需要等待一段时间。mpll的输出才稳定,这段时间内fclk停振,cpu停止工作;locktime的长短由寄存器LOCKTIME设定。
3.LoCKTIME 之后,MPLL输出正常,cpu工作在新的FLCK下。
fclk、hclk、pclk的比例可以改变,设置他们三者的比例启动MPLL只需要设置3个寄存器:
1.LOCKTIME寄存器
第10章 <wbr> <wbr>CLOCK

2.MPLLCON寄存器:用于设置FCLK与Fin的倍数
第10章 <wbr> <wbr>CLOCK
上表记录mdiv、pdiv、sdiv各种值组合是的输出频率


3.CLKDIVN寄存器:用于设置fclk、hclk、pclk三者的比例
第10章 <wbr> <wbr>CLOCK
4.camdivn寄存器
第10章 <wbr> <wbr>CLOCK
通过设置CLKDIVN和CAMDIVN来设置fclk、hclk、pclk的比例
第10章 <wbr> <wbr>CLOCK
s32440 pwm &定时器

1、5个16位定时器
2、0定时器是用于大电流设备的死角信号发生器,3定时器带pwm,4为内部定时器,没有输出引脚。
3.0和1定时共用一个8位的预分频器,2,3,4共用另一个8位预分频器。每个定时器自带一个时钟分频器(1/2,1/4,1/8,1/16和TCLK)。
4、编程→TCFG0和TCFG1寄存器→8位预分频器→各时钟分频器→定时器
5、TCNTBn(定时器计数缓冲寄存器),得到一个被装载到递减计数器的初始值,TCMPBn(比较寄存器)转载到比较寄存器中用来和递减数计数器值做比较的初始值。
每个定时器有一个自己的定时器时钟驱动的16位递减计数器。
6、TCMPBn的值用于脉宽调制,当递减计数器的值和定时器控制逻辑中的比较寄存器的值匹配,定时器控制逻辑改变输出电平,因此,比较寄存器决定了pwm输出的开启时间
第10章 <wbr> <wbr>CLOCK
自动重载和双缓冲功能
TCNTBN的下一个值被写入时不会影响当前计数值工作,当tcnt为零且auto-reload=1,从tcntbn载入值到tcntn中。

第10章 <wbr> <wbr>CLOCK


一个定时器的手动更新位和反相器位的定时器初始化
1、写初始值到TCNTBN和TCMPBN
2、设置相应定时器的手动更新位。
3、设置相应定时器的开始位开启定时器且清除手动更新位。


pwm
TCNTBn决定pwm的频率(因为定时器输出时钟频率=PCLK÷ (prescaler+1) ÷ divider=PCLK/16/8),TCMPBn决定pwm的值,TCMPBn减小,pwm增大,TCMPBn增大,PWM减小。
tcntn从TCNTBn读取初始值开始递减,当递减到与Tcmpbn值一样时,改变outn,直到tcntn递减为零,outn为零



输出OUTN控制
1.自动重载位置0,当TCNTn递减到0时,TOUTn变为高电平,定时器停止工作。
2.通过置定时器开始停止位=0来停止定时器,如果TCNT《=TCMPn,输出高电平,如果TCNTn>TCMPN,输出低电平。


定时器设置寄存器
第10章 <wbr> <wbr>CLOCK
经过预分频器出来的时钟频率为:PCLK/(precscaler+1)
第10章 <wbr> <wbr>CLOCK
第10章 <wbr> <wbr>CLOCK
inverter反转、需要设置手动更新位1以使TCNTBn/TCMPBn寄存器的值装入内部寄存器TCNtn、TCMPBn,下次如果还要设置这一位需要先清0。
第10章 <wbr> <wbr>CLOCK


10.1.3WATCHDOG定时器。
第10章 <wbr> <wbr>CLOCK

watchdog定时器可以用于产生周期性的中断,也可以用于发出复位信号的以重启失常系统。
watchdog需要通过三个寄存器来工作:
1.wtcon寄存器
第10章 <wbr> <wbr>CLOCK
watchdog定时器工作频率=PCLK/(PRESCALER VALUE+1)/(DIVIDER VALUE)
prescaler value=0~255 divider value=16、32、64、128
2.wtdat寄存器
第10章 <wbr> <wbr>CLOCK
保存当wtcnt=0时的重载值
3.wtcnt寄存器
第10章 <wbr> <wbr>CLOCK
初始计数值
原创粉丝点击