系统时钟和定时器
启动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 学习笔记—— 23、通用异步收发器 UART
下一篇:TQ2440 学习笔记—— 33、移植 Linux 内核【 准备 】
推荐阅读最新更新时间:2024-10-27 10:54
设计资源 培训 开发板 精华推荐
- LT3971-3.3、12V 降压转换器的典型应用电路
- LT1109CS8 演示板,+5V 至 +12V 闪存 Vpp 发生器
- BD9060HFP-C 1Ch 降压型开关稳压器负载响应应用电路
- 具有欠压锁定功能的 LT1317BCS8 2 节电池至 5V DC/DC 转换器的典型应用电路
- EVAL-AD5621EBZ,用于 AD5621 12 位、串行输入、VOUT NanoDAC 的评估板
- LT1764EQ-2.5 SCR 预稳压器的典型应用可提供跨线路变化的效率
- 使用 NXP Semiconductors 的 TDA8932B 的参考设计
- 基于bq4050的锂电池电量计与保护板模块
- 使用 Analog Devices 的 LT1121IS8-5 的参考设计
- 16 位、1GSPS、2CH 用于无线基础设施