历史上的今天
今天是:2025年03月08日(星期六)
2020年03月08日 | 【ARM裸板】S3C2440 时钟设置与分析
2020-03-08 来源:eefocus

由时钟树分析,时钟源通过选择器接入给MPLL(Main PLL)与UPLL(USB PLL)
经过MPLL得到FCLK提供给CPU[ARM920T]
FCLK分别通过HDIVN与PDIVN分频得到HCLK与PCLK
HCLK接入给AHB总线,再给各种高速设备(Nand Flash、内存控制器、中断控制器…)
PCLK接入给APB总线,再给各种低速设别(I2C、PWM、GPIO、UART…)
1.时钟源最大值

2.时钟源
2.1 两种时钟源
1.晶振
2.外部引脚时钟输入
2.2 选择时钟源
通过改变OM[3:2]引脚来选择时钟源

JZ2440 OM[3:2]接入GND,则主时钟源与USB时钟源都选择外部晶振

3.上电时钟分析

复位等待, 等待电源稳定,复位芯片才输出高电平

2.根据OM[3:2]的值,FCLK=晶振
3.PLL锁存OM[3:2]的值
4.设置PLL(Lock Time中 CPU停止)
5.PLL工作
6.FCLK=PLL输出新的时钟,CPU运行
4.编程控制时钟速度
主要通过设置MPLLCON与CLKDIVN两个寄存器来控制时钟速度
外设时钟使能寄存器CLKCON,可以使得功耗更低(低功耗)
编程目标:FCLK=400MHz、HCLK=100MHz、PCLK=50MHz
4.1 时钟计算公式

4.2 MPLLCON寄存器
PDIV=1,SDIV=1,由公式可得MDIV=92
/* 设置MPLLCON(0x4C000004) = (92<<12) | (1<<4) | (1<<0)
* m = MDIV+8 = 92+8 =100
* p = PDIV+2 = 1+2 =3
* s = SDIV = 1
* FLCK = (2*m*Fin)/(p*(2^s)) = (2*100*12M)/(3*2^1) = 400M
*/
ldr r0, =0x4C000004
ldr r1, =(92<<12) | (1<<4) | (1<<0)
str r1,[r0]
//一旦设置PLL,就会锁定LOCK TIME直到PLL输出稳定,然后CPU工作

4.3 CLKDIVN寄存器
目标:FCLK=400M、FCLK=100M、PCLK=50M
则HDIVN设置为10(因为CAMDIVN默认值为0,所以无需关注),PDIVN设置为1
/* CLKDIVN(0x4C000014) = 0x05,fFCLK:fHCLK:fPCLK = 8:4:1 */
ldr r0, =0x4C000014
mov r1, #0x05
str r1,[r0]

5.注意事项
设置异步模式
如果HDIVN不是0,需要设置为异步模式,否则CPU会使用HCLK
#R1_nF:OR:R1_iA = 0xC0000000

5.1 注释
MRC指令将协处理器的寄存器中数值传送到ARM处理器的寄存器中
MCR指令将ARM处理器的寄存器中的数据传送到协处理器的寄存器中
c:co-process 协处理器、r:寄存器
汇编版本
mrc p15,0,r0,c1,c0,0
orr r0,r0,#R1_nF:OR:R1_iA
mcr p15,0,r0,c1,c0,0
C版本
__asm{
mrc p15, 0, r1, c1, c0, 0 /* 读取CP15 C1寄存器 */
orr r1, r1, #0xc0000000 /* 设置CPU总线模式 */
mcr p15, 0, r1, c1, c0, 0 /* 写回CP15 C1寄存器 */
}
6.S3C2440默认时钟频率
由芯片手册可知MPLLCON默认初始值为:
MDIV = 0x96 = 150
PDIV = 0x03
SDIV = 0
即:
m = MDIV+8 = 158
p = PDIV+2 = 5
s = SDIV = 0
可以推出:Fclk = (2 * m * Fin)/(p*(2^s)) = (2 * 158 * 12M)/(5 * 2^0) = 379.2M
史海拾趣
|
前言 FPGA(现场可编程门阵列)是由掩膜可编程门阵列和PLD(可编程逻辑器件)演变而来的,并将二者的特性结合在一起,使FPGA既有掩膜可编程门阵列的高逻辑密度和通用性,又有PLD的可编程特性。FPAG技术的发展使得单个芯片上集成的逻辑门数越来越多 ...… 查看全部问答> |
|
提到TI,不得不说,缘分还真近,听我从头说起。 其实我的专业是网络工程,这个专业其实与电类专业没啥交集,能有点关系的就是计算机体系结构的基础课程—数字电路与逻辑设计,稍微讲了讲常用数字器件与非门什么的。然而,在内心深处 ...… 查看全部问答> |
|
今天不经意间在手机SD卡里面看到保存的.CSV格式的传感器数据,打开一看,确认就是SensorTile开发板数据,于是今天再看了看程序。记录如下 SD保存文件如下,每个传感器一个文件 打开气压传感器,数据如下 其中时间戳值变化感觉和手机界面的曲线的 ...… 查看全部问答> |
|
从网上找了一个51开发板PCB 感觉并不怎么样 求高手指点一下它的优点 画板子也有半年了 经常画低频的板子 基本不需要ic元件 想要进一步的学习 所以就想从51开发板画起 从网上找了一个 据说可以直接打板子 & ...… 查看全部问答> |
|
使用LM334恒流源输出2mA的电流,流过PT100,然后放大,为什么我把PT100放在热水中, 在PT100的上端测电压,电阻在变,电压一直不变是怎么回事? 电流的计算是根据数据手册,2mA=0.134V/67Ω … 查看全部问答> |




