单片机
返回首页

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

2022-04-20 来源:eefocus

系统时钟和定时器

启动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 */

    }       

}

进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • 用数字电路CD4069制作的万能遥控轻触开关

  • 红外线探测报警器

  • 短波AM发射器电路设计图

  • RS-485基础知识:处理空闲总线条件的两种常见方法

  • 带有短路保护系统的5V直流稳压电源电路图

  • 基于ICL296的大电流开关稳压器电源电路

    相关电子头条文章