《arm资料学习教程.pptx》由会员分享,可在线阅读,更多相关《arm资料学习教程.pptx(25页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、7.1 S3C2440时钟系统7.1.1 时钟系统概述北华航天工业学院 房好帅 时钟源:产生固定频率的高低电平变化信号;MPLL为主时钟锁相环,UPLL为USB时钟锁相环;锁相环:时钟信号频率倍频变换电路,将低频变为高频信号;第1页/共25页北华航天工业学院 房好帅 MPLL:将时钟源输入倍频得到FCLK;时钟分频器:将FLCK、UPLL clock分频得到HCLK、PCLK与UCLK;UPLL:将时钟源输入倍频得到UPLL clock;产生的各时钟信号的作用:(1)FCLK:处理器CPU核作为系统时钟;(2)HCLK:高速总线(AHB)时钟信号;(3)PCLK:低速总线(APB)时钟信号;(
2、4)UCLK:USB接口时钟信号;第2页/共25页S3C2440时钟源可以接外部晶振(XTIpll、XTOpll引脚)或外部时钟(EXTCLK引脚),由OM3:2引脚选择时钟源:北华航天工业学院 房好帅 OM3:2MPLL状态状态UPLL状态状态MPLL时钟源时钟源UPLL时钟源时钟源00工作工作工作工作外部晶振外部晶振外部晶振外部晶振01工作工作工作工作外部晶振外部晶振外部时钟外部时钟10工作工作工作工作外部时钟外部时钟外部晶振外部晶振11工作工作工作工作外部时钟外部时钟外部时钟外部时钟第3页/共25页7.1.2 系统时钟初始化相关寄存器设置1、MPLLCON(MPLL控制寄存器)FCLK频
3、率计算如下:功能:设置MPLL倍频参数北华航天工业学院 房好帅 名称名称位位MDIV19:12PDIV9:4SDIV1:0第4页/共25页2、UPLLCON(UPLL控制寄存器)UPLL clock频率计算如下:功能:设置UPLL倍频参数北华航天工业学院 房好帅 名称名称位位MDIV19:12PDIV9:4SDIV1:0注意:要先设置UPLLCON,经过7条NOP指令时间再设置MPLLCON!第5页/共25页3、LOCKTIME(锁相环稳定时间寄存器)功能:设置锁相环开始时钟倍频到输出稳定需要的时间;若外接晶振12MHz,则:北华航天工业学院 房好帅 名称名称位位功能功能U_LTIME31:1
4、6设置设置UPLL稳定需要的时钟周期数(以时钟稳定需要的时钟周期数(以时钟源周期为单位,至少源周期为单位,至少300uS)M_LTIME15:0设置设置MPLL稳定需要的时钟周期数(以时钟稳定需要的时钟周期数(以时钟源周期为单位,至少源周期为单位,至少300uS)一般设置该寄存器为0 xFFFFFFFF即可;第6页/共25页4、CLKDIVN(时钟分频寄存器)功能:设置时钟分频参数;北华航天工业学院 房好帅 名称名称位位功能功能DIVN_UPLL3 0:UCLK=UPLL clock 1:UCLK=UPLL clock/2当当UPLL clock为为48MHz时设置时设置0,为,为96MHz时
5、设置时设置1;UCLK必须为必须为48MHzHDIVN2:1 00:HCLK=FCLK/1 01:HCLK=FCLK/2 10:HCLK=FCLK/4 11:HCLK=FCLK/3PDIVN0 0:PCLK=HCLK/1 1:PCLK=HCLK/2第7页/共25页7.1.3 S3C2440时钟初始化程序在2440init.s文件中初始化程序包含时钟初始化程序片段:ldrr0,=LOCKTIMEldrr1,=0 xffffffstrr1,r0ldrr0,=CLKDIVNldrr1,=CLKDIV_VALstrr1,r0mrc p15,0,r0,c1,c0,0orr r0,r0,#0 xc0000
6、000mcr p15,0,r0,c1,c0,0北华航天工业学院 房好帅 LOCKTIME为锁相环稳定时间寄存器地址CLKDIVN为时钟分频寄存器地址CLKDIV_VAL常量定义于option.inc:CLKDIV_VAL EQU 5FCLK=HCLK,CPU工作在fast bus mode(快速总线模式);FCLK与HCLK不等,要将CPU改为asynchronous bus mod(异步总线模式)第8页/共25页ldrr0,=UPLLCONldrr1,=(U_MDIV12)+(U_PDIV4)+U_SDIV)strr1,r0nopnopnopnopnopnopnopldrr0,=MPLLCO
7、Nldrr1,=(M_MDIV12)+(M_PDIV4)+M_SDIV)strr1,r0北华航天工业学院 房好帅 UPLLCON为UPLL寄存器地址MPLLCON为MPLL寄存器地址option.inc定义常量:M_MDIV EQU92M_PDIV EQU1M_SDIV EQU1U_MDIV EQU56U_PDIV EQU2U_SDIV EQU2UPLLCON后7条NOP再设置MPLLCON第9页/共25页7.2 S3C2440定时器7.2.1 定时器概述S3C2440有Timer0Timer4共5个定时器,Timer0Timer3可以通过TOUT0TOUT3引脚输出PWM波,Timer4没有
8、输出引脚;PWM(Pulse Width Modulation,脉宽调制)波即可编程控制高低电平比例的方波;北华航天工业学院 房好帅 编程时注意:引脚TOUT0TOUT3为GPB0GPB3;第10页/共25页Timer0也可产生一对可带死区的互补的PWM波,在TOUT0与TOUT1引脚输出:不带死区的互补PWM波:此时TOUT1引脚又记为nTOUT0,两个引脚上输出的波形相反;北华航天工业学院 房好帅 第11页/共25页此时TOUT0引脚记为TOUT0_DZ,TOUT1记为nTOUT0_DZ,灰色部分称为死区,使得互补波形高低转换时有一定时间间隔;北华航天工业学院 房好帅 带死区的互补PWM波
9、:第12页/共25页带死区的互补PWM波的典型应用:全桥逆变器(直流变交流)S1与S2不能同时导通,故两管的栅极需要互补PWM驱动进行开关,为严格保证两者不同时导通,实际要用带死区的互补PWM,死区时间大于2uS,如S1导通后2uS使得S2导通更安全;北华航天工业学院 房好帅 第13页/共25页定时器的计数时钟由PCLK经过分频得到:PCLK先经过预分频器0、1分频,之后由2级分频器分频为1/2、1/4、1/8、1/16频率;另外2级分频器同时也可从TCLK0与TCLK1引脚获得外部时钟信号;北华航天工业学院 房好帅 预分频器1预分频器02级分频器02级分频器12级分频器0输出信号供Timer
10、0、Timer1使用;2级分频器1输出信号供Timer2、Timer3、Timer4使用;第14页/共25页7.2.2 定时器相关寄存器1、TCFG0(定时器配置寄存器0)功能:配置预分频器的分频参数;北华航天工业学院 房好帅 名称名称位位功能功能Dead zone length23:16 死区计数值(有多少个计数周期)死区计数值(有多少个计数周期)Prescaler 115:8预分频器预分频器1分频值分频值Prescaler 07:0预分频器预分频器0分频值分频值第15页/共25页2、TCFG1(定时器配置寄存器1)功能:配置2级分频器的分频参数;北华航天工业学院 房好帅 名称名称位位功能功
11、能DMA mode23:16 设置为设置为000以中断方式使用定时器以中断方式使用定时器MUX 419:16 Timer4分频分频0000=1/2 0001=1/4 0010=1/8 0011=1/16 01xx=TCLK1MUX 315:12 Timer3分频分频0000=1/2 0001=1/4 0010=1/8 0011=1/16 01xx=TCLK1MUX 211:8Timer2分频分频0000=1/2 0001=1/4 0010=1/8 0011=1/16 01xx=TCLK1第16页/共25页定时器计数频率:PCLK/prescaler value+1/divider value北
12、华航天工业学院 房好帅 名称名称位位功能功能MUX 17:4Timer1分频分频0000=1/2 0001=1/4 0010=1/8 0011=1/16 01xx=TCLK0MUX 03:0Timer0分频分频0000=1/2 0001=1/4 0010=1/8 0011=1/16 01xx=TCLK0预分频值:prescaler value=02552级分频器:divider value=2,4,8,16第17页/共25页3、TCNTBn与TCNTn(如Timer0对应TCNTB0与TCNT0)TCNTBn:计数缓冲寄存器,TCNTn:计数寄存器;定时器每计数周期开始计数时会将TCNTBn
13、加载到TCNTn,将TCMPBn 加载到TCMPn;之后每个计数时钟TCNTn减1,其数值减到等于TCMPn时,TOUTn引脚上的电平发生反转,减至0触发INT_TIMERn中断;北华航天工业学院 房好帅 4、TCMPBn与TCMPn(如Timer0对应TCMPB0与TCMP0)TCMPBn:比较缓冲寄存器,TCMPn:比较寄存器;编程时向TCNTBn 和TCMPBn写数值;TCNTn当前值通过读取TCNTOn(计数观察寄存器)获取;第18页/共25页5、TCON(定时器控制寄存器)功能:控制定时器的启停、计数加载、电平反转等;此寄存器控制所有定时器,以4:0位对应Timer0为例:北华航天工
14、业学院 房好帅 名称名称位位功能功能Dead zone enable4 0:死区不使能死区不使能 1:死区使能死区使能Timer0 auto reload on/off3 0:单次模式,计数到单次模式,计数到0停止;停止;1:计数到计数到0,自动将,自动将TCNTB0 加载到加载到TCNT0,将,将TCMPB0 加载到加载到TCMP0,继,继续下一周期;续下一周期;第19页/共25页北华航天工业学院 房好帅 名称名称位位功能功能Timer 0 output inverter on/off2 0:开始计数时开始计数时TOUT0电平为高电平为高 1:开始计数时开始计数时TOUT0电平开始为低电平开
15、始为低Timer 0 manual update1 0:无操作无操作 1:将将TCNTB0 加载到加载到TCNT0,将,将TCMPB0 加载到加载到TCMP0Timer 0 start/stop0 0:停止停止 1:开始开始第20页/共25页7.2.3 定时器编程实例北华航天工业学院 房好帅 PWM控制蜂鸣器声音大小TOUT0输出的PWM波高电平比例大,则蜂鸣器声音大,反之声音小;第21页/共25页初始化函数:北华航天工业学院 房好帅 void timer0_init()/引脚功能初始化rGPBCON&=(30);rGPBCON|=(20);rGPGUP|=(10);/清除中断相关寄存器rSRCPND|=(110);rINTPND|=(110);/选择中断屏蔽rINTMSK&=(110);/安装中断处理函数pISR_TIMER0=(unsigned int)timer0_isr;第22页/共25页北华航天工业学院 房好帅 房好帅 unsigned short highval=12500;/timer0中断处理函数void _irq timer0_isr(void)rTCMPB0=highval;rSRCPND|=(110);rINTPND|=(110);主循环中修改highval即可更改高电压比例;第24页/共25页感谢您的观赏!第25页/共25页
限制150内