TQ2440 学习笔记—— 22、系统时钟和定时器

发布者:快乐舞蹈最新更新时间:2022-04-20 来源: eefocus关键字:TQ2440  系统时钟  定时器 手机看文章 扫描二维码
随时随地手机看文章

系统时钟和定时器

启动MPLL 需要设置的寄存器: LOCKTIME (LOCK TIME COUNT)、MPLLCON(Main PLL Control)、CLKDIVN(clock divider control)

若Fout = 200MHz则, Fout = 2 *m * Fin / (p * 2 ^ s)  = 2 * (92 + 8) * 12MHz / (3 * 2 ^ 2)  = 200MHz


m = 100, MDIV = 92


p = 3,     PDIV = 2


s = 2,     SDIV = 2


#define S3C2440_MPLL_200MHZ     ((0x5c << 12) | (0x01 << 4) | (0x02))

CLKDIVN  = 0x03;            // FCLK:HCLK:PCLK=4:2:1, HDIVN=1,PDIVN=1



/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * ** * * * * * 定 时 器 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

定时器输入时钟频率 = PCLK / (预分频值+1) / 分频值


如: timer0_clock = 100MHz / (99+1) / 16 = 62500Hz

#define S3C2410_MPLL_200MHZ     ((0x5c<<12)|(0x04<<4)|(0x00))

#define S3C2440_MPLL_200MHZ     ((0x5c<<12)|(0x01<<4)|(0x02))

/*

 * 对于MPLLCON寄存器,[19:12]为MDIV,[9:4]为PDIV,[1:0]为SDIV

 * 有如下计算公式:

 *  S3C2410: MPLL(FCLK) = (m * Fin)/(p * 2^s)

 *  S3C2440: MPLL(FCLK) = (2 * m * Fin)/(p * 2^s)

 *  其中: m = MDIV + 8, p = PDIV + 2, s = SDIV

 * 对于本开发板,Fin = 12MHz

 * 设置CLKDIVN,令分频比为:FCLK:HCLK:PCLK=1:2:4,

 * FCLK=200MHz,HCLK=100MHz,PCLK=50MHz

 */

void clock_init(void)

{

    // LOCKTIME = 0x00ffffff;   // 使用默认值即可

    CLKDIVN  = 0x03;            // FCLK:HCLK:PCLK=1:2:4, HDIVN=1,PDIVN=1

 

    /* 如果HDIVN非0,CPU的总线模式应该从“fast bus mode”变为“asynchronous bus mode” */

__asm__(

    "mrc    p15, 0, r1, c1, c0, 0n"        /* 读出控制寄存器 */ 

    "orr    r1, r1, #0xc0000000n"          /* 设置为“asynchronous bus mode” */

    "mcr    p15, 0, r1, c1, c0, 0n"        /* 写入控制寄存器 */

    );

 

    /* 判断是S3C2410还是S3C2440 */

    if ((GSTATUS1 == 0x32410000) || (GSTATUS1 == 0x32410002))

    {

        MPLLCON = S3C2410_MPLL_200MHZ;  /* 现在,FCLK=200MHz,HCLK=100MHz,PCLK=50MHz */

    }

    else

    {

        MPLLCON = S3C2440_MPLL_200MHZ;  /* 现在,FCLK=200MHz,HCLK=100MHz,PCLK=50MHz */

    }       

}

关键字:TQ2440  系统时钟  定时器 引用地址:TQ2440 学习笔记—— 22、系统时钟和定时器

上一篇:TQ2440 学习笔记—— 23、通用异步收发器 UART
下一篇:TQ2440 学习笔记—— 33、移植 Linux 内核【 准备 】

推荐阅读最新更新时间:2024-10-27 10:54

TQ2440 学习笔记—— 22、系统时钟定时器
系统时钟和定时器 启动MPLL 需要设置的寄存器: LOCKTIME (LOCK TIME COUNT)、MPLLCON(Main PLL Control)、CLKDIVN(clock divider control) 若Fout = 200MHz则, Fout = 2 *m * Fin / (p * 2 ^ s) = 2 * (92 + 8) * 12MHz / (3 * 2 ^ 2) = 200MHz m = 100, MDIV = 92 p = 3, PDIV = 2 s = 2, SDIV = 2 #define S3C2440_MPLL_200MHZ ((0x5c 12) | (0
[单片机]
<font color='red'>TQ2440</font> 学习笔记—— 22、<font color='red'>系统</font><font color='red'>时钟</font>和<font color='red'>定时器</font>
TQ2440定时器中断0——volatile关键字的重要作用
近日,在学习《ARM处理器裸机开发实战 机制而非策略》一书,在TQ2440开发板上,按照书中实例以及光盘配套程序源代码进行Timer0中断试验,编译成功后烧写到开发板上,没有任何反应,反复检查代码,一直没有找出哪里有问题,就是到开发板上没有预期效果。(让人纠结的很) 最终参考了 TQ2440之定时器中断0 的程序代码,编译成功后,烧写到板子上,惊喜出现了。绝对是久旱逢甘霖的感觉,在这里对 TQ2440之定时器中断0 的原创作者表示感谢。 后来,经过代码对比,发现两个可疑的地方: (1)之前的Timer0的初始化中没有rTCMPB0 = 0;这条语句。 而后来参考 TQ2440之定时器中断0 中的代码是有这条语句的。
[单片机]
<font color='red'>TQ2440</font>之<font color='red'>定时器</font>中断0——volatile关键字的重要作用
TQ2440开发板学习纪实(3)--- 设置时钟频率,让CPU运行的更快
0 原理 0.1 时钟源自哪里 所谓的时钟,就是电压高低的变化,只有不断的0,1交替变化,CPU才能被驱动运行。S3C2440支持多种时钟源,这通过CPU针脚OM3和OM3来选择。对于QT2440板子来说,OM3和OM2均直接接地,这就意味着时钟源来自针脚XTIpll和XTOpll,这两个针脚在TQ2440的核心板上被连接上了一个12MHz的晶振。 0.2 S3C2440的时钟原理与设置 CPU、RAM、UART等不同的设备运行时需要不同的时钟频率,这些不同的频率需要通过变频电路来提供,在电子行业这个变频电路叫做PLL(Phase Locked Loop)。作为软件出身的程序员,不太可能精通电路设计,只需要知道这个PLL可以把
[单片机]
TQ2440的FCLK,HCLK,PCLK,UCLK时钟频率设置
S3C2440有两个PLL(phase locked loop)一个是MPLL,一个是 UPLL 。MPLL用于CPU及其他外围器件,UPLL用于USB。用于产生 FCLK , HCLK, PCLK三种频率,这三种频率分别有不同的用途: FCLK是CPU提供的时钟信号。 HCLK是为AHB总线提供的时钟信号, Advanced High-performance Bus,主要用于高速外设,比如内存控制器,中断控制器,LCD控制器, DMA 等。 PCLK是提供给用于外设如WDT,IIS,I2C,PWM,MMC/SD,ADC,UART,GPIO,RTC,SPI的APB总线的时钟。 从S3C2440的 DATASHE
[单片机]
TQ2440国嵌学院gboot-时钟初始化
TQ2440国嵌学院gboot-时钟初始化: 1:设置lock time寄存器 2:设置分频系数(FCLK:HCLK:PCLK) 3:设定CPU到异步模式(通常FCLK不等于HCLK) 4:设置FCLK 首先了解下CPU的时钟分类: 同样在S3C2440中找到CLOCK第7章这一章如下: 从上面的文字中,可以得到FCLK主要是CPU核的工作时钟,HCLK是AHB总线(LCD,DMA)的工作时钟,PCLK是APB总线(UART,GPIO)工作时钟。 下面是CPU内部时钟电路结构图 其次是CPU的启动时钟时序: 从上图可以看出,在上电后,nRESET会拉高,clock开始起振输出时钟信号,
[单片机]
三、s3c2440 裸机 系统时钟定时器的设置
三、系统时钟和定时器的设置 ⑴系统时钟原理分析 时钟决定2440执行速度,2440可以使用外部提供的时钟源,也可以使用外部的晶振然后通过内部的晶振获得时钟频率;具体选择使用哪一个时钟源看下图: 开发板一般吧引脚M2和M3连接的GND,所以说全部使用的是晶振(crystal) 除此之外,2440提供了3个时钟源FCLK(用于cpu核),HCLK(advancedhigh performance bus,用于AHB总线设备,比如cpu核,dma,usb等),PCLK(advanced performance bus,用于外围设备,比如看门狗,pwm定时器,adc等等),对于锁相环,2440拥有两种PLL其中一个为UPL
[单片机]
三、s3c2440 裸机 <font color='red'>系统</font><font color='red'>时钟</font>和<font color='red'>定时器</font>的设置
STM32学习笔记(3):系统时钟和SysTick定时器
1.STM32的时钟系统 在STM32中,一共有5个时钟源,分别是HSI、HSE、LSI、LSE、PLL (1)HSI是高速内部时钟,RC振荡器,频率为8MHz; (2)HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围是4MHz – 16MHz; (3)LSI是低速内部时钟,RC振荡器,频率为40KHz; (4)LSE是低速外部时钟,接频率为32.768KHz的石英晶体; (5)PLL为锁相环倍频输出,严格的来说并不算一个独立的时钟源,PLL的输入可以接HSI/2、HSE或者HSE/2。倍频可选择为2 – 16倍,但是其输出频率最大不得超过72MHz。 其中,40kHz的LSI供独立看门狗IWDG使用,另
[单片机]
STM32 系统时钟和SysTick定时器
1.STM32的时钟系统 在STM32中,一共有5个时钟源,分别是HSI、HSE、LSI、LSE、PLL (1)HSI是高速内部时钟,RC振荡器,频率为8MHz; (2)HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围是4MHz – 16MHz; (3)LSI是低速内部时钟,RC振荡器,频率为40KHz; (4)LSE是低速外部时钟,接频率为32.768KHz的石英晶体; (5)PLL为锁相环倍频输出,严格的来说并不算一个独立的时钟源,PLL的输入可以接HSI/2、HSE或者HSE/2。倍频可选择为2 – 16倍,但是其输出频率最大不得超过72MHz。 其中,40kHz的LSI供独
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved