JZ2440:时钟设置
这一节的目标是对板子上的时钟有一个初步的了解。而且能通过初步设置。为我们接下来的程序做准备。
1. 板子上的基本资源:
- 板载晶振12M
- 主时钟源和 USB 时钟源都是晶振
2. 手冊中的相关项(按时钟进入的方向):
2.1 时钟的总体结构:
2.2 OM[ 3:2 ]:
模式 OM[3:2]
MPLL状态
UPLL 状态
主时钟源
USB 时钟源
00
开启
开启
晶振
晶振
01
开启
开启
晶振
外部时钟
10
开启
开启
晶振
11
开启
开启
外部时钟
外部时钟
注意:
1. 尽管MPLL在复位后就開始, MPLL输出
(Mpll) 并没有作为系统时钟, 直到软件写入有效值来设置MPLLCON寄存器。
在设置此值之前, 是将外部晶振或外部时钟源提供的时钟直接作为系统时钟。 即使用户不想改变MPLLCON
寄存器的默认值,用户也应当写入与之同样的值到MPLLCON寄存器寄存器中。
2. OM[3:2]是用于当OM[1:0]为 11 时决定一个測试模式。
上电一瞬间时钟的状态:
须要注意 OM[3:2] 是引脚,不是寄存器,看原理图得知 OM[3:2]
= 00 。从前边的图中能够得到结论是主时钟源和 USB 的时钟源都是从外部晶振得到的。
2.3 MPLL :
寄存器
地址
R/W
描写叙述
复位值
MPLLCON
0x4C000004
R/W
MPLL的配置寄存器
0x00096030
UPLLCON
0x4C000008
R/W
UPLL的配置寄存器
0x0004d030
PLLCON
Bit
描写叙述
复位值
MDIV
[19:12]
Main divider control
0x96 / 0x4d
PDIV
[9:4]
Pre-divider control
0x03 / 0x03
SDIV
[1:0]
Post divider control
0x0 / 0x0
这里有点须要说明:
当你设置MPLL 和UPLL的值时,你必须首先设置UPLL值再设置MPLL 值。 (大约须要7个 NOP的间隔)
普通情况下,pll不会关闭,这里包含上电。
对于pll的取值官方称非常困难,给出了推荐值
假设你想私人定制你的时钟,公式例如以下:
MPLL Control RegisterMpll = (2 * m * Fin) / (p * 2^s)当中:m = (MDIV + 8)p = (PDIV + 2)s = SDIVUPLL Control RegisterUpll = (m * Fin) / (p * 2S)当中:m = (MDIV + 8)p = (PDIV + 2)s = SDIVPLL值选择向导(MPLLCON)1. Fout = 2 × m × Fin / ( p*2s ),Fvco = 2 × m × Fin / p此处:m =MDIV+8, p=PDIV+2, s=SDIV2. 600MHz ≤ FVCO ≤ 1.2GHz3. 200MHz ≤ FCLKOUT ≤ 600MHz4. 不要设置P 或M的值为0,这是由于设置P=000000,M=00000000 将会引起PLL的故障。5. P 和M的合理范围为:1 ≤ P ≤ 62,1 ≤ M ≤ 2486. pll稳定的最高频率是400MHZ
时钟计算举例:ldr r0, =0x4c000014 //CLKDIVmov r1, #3str r1, [r0]...
ldr r0, =0x4c000004 //MPLLCON
ldr r1, =((0x5c<<12)|(0x01<<4)|(0x02)) //MDIV=0x5c PDIV=0x01 SDIV=0x02
str r1, [r0]m = (MDIV + 8) = 100p = (PDIV + 2) = 3s = SDIV = 2Mpll = (2 * m * Fin) / (p * 2^s) = (2*100*12)/12MHz = 200MHz
从最開始的那张图能够看到,FCLK 直接用的是 Mpll 之后的时钟频率,中间没有分频。
从以下这张图中我们能看到UPLL 的频率仅仅能有两个取值。而且给固定的单元供应频率:
2.4 FCLK。HCLK和 PCLK 介绍:
- FCLK 是给 ARM920T 内核使用的
- HCLK 是给 AHB总线使用的,详细涉及的硬件包含: memory 控制器,中断控制器。LCD控制器,DMA 和 USB 主机模式的AHB总线时钟
- PLK 是给 APB 总线使用的,详细涉及的硬件包含:看门狗,iis,i2c,pwm的定时器,mmc接口,ADC,UART。GPIO,RTC 和 SPI。
- UCLK 是给 USB 用的
下边的这两张图看着更清楚:
![]()
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
S3C2440能够对他们三个的比例进行设定:(当中的
HDIVN 和 PDIVN 属于 CLKDIVN 寄存器)
相关寄存器:
地址
R/W
描写叙述
复位值
CLKDIV
0x4C000014
R/W
Clock divider control register
0x00000000
CLKDIV
Bit
描写叙述
复位值
DIVN_UPLL[3]
UCLK select register(UCLK must be 48MHz for USB)
0: UCLK = UPLL clock
1: UCLK = UPLL clock / 2
Set to 0, when UPLL clock is set as 48MHz
Set to 1. when UPLL clock is set as 96MHz.
0
HDIVN[2:1]
00 : HCLK = FCLK/1.
01 : HCLK = FCLK/2.
10 : HCLK = FCLK/4 when CAMDIVN[9] = 0.
HCLK= FCLK/8 when CAMDIVN[9] = 1.
11 : HCLK = FCLK/3 when CAMDIVN[8] = 0.
HCLK = FCLK/6 when CAMDIVN[8] = 1.
00
PDIVN
[0]
0: PCLK has the clock same as the HCLK/1.
1: PCLK has the clock same as the HCLK/2.
0
2.5 时钟要想到达详细的硬件(比方spi。i2c)还须要开启他们之间的开关:
地址
R/W
描写叙述
复位值
CLKCON
0x4C00000C
R/W
Clock generator control register
0xFFFFF0
CLKCON
Bit
描写叙述
复位值
AC97
[20]
Control PCLK into AC97 block.
0 = Disable, 1 = Enable
1
Camera
[19]
Control HCLK into Camera block.
0 = Disable, 1 = Enable
1
SPI
[18]
Control PCLK into SPI block.
0 = Disable, 1 = Enable
1
IIS
[17]
Control PCLK into IIS block.
0 = Disable, 1 = Enable
1
IIC [16] Control PCLK into IIC block.0 = Disable, 1 = Enable 1 ADC(&Touch Screen) [15] Control PCLK into ADC block.0 = Disable, 1 = Enable 1 RTC [14] Control PCLK into RTC control block.Even if this bit is cleared to 0, RTC timer is alive.0 = Disable, 1 = Enable 1 GPIO [13] Control PCLK into GPIO block.0 = Disable, 1 = Enable 1 UART2 [12] Control PCLK into UART2 block.0 = Disable, 1 = Enable 1 UART1 [11] Control PCLK into UART1 block.0 = Disable, 1 = Enable 1 UART0 [10] Control PCLK into UART0 block.0 = Disable, 1 = Enable 1 SDI [9] Control PCLK into SDI interface block.0 = Disable, 1 = Enable 1 PWMTIMER [8] Control PCLK into PWMTIMER block.0 = Disable, 1 = Enable 1 USB device [7] Control PCLK into USB device block.0 = Disable, 1 = Enable 1 USB host [6] Control HCLK into USB host block.0 = Disable, 1 = Enable 1 LCDC [5] Control HCLK into LCDC block.0 = Disable, 1 = Enable 1 NAND Flash Controller [4] Control HCLK into NAND Flash Controller block.0 = Disable, 1 = Enable 1 SLEEP [3] Control SLEEP mode of S3C2440A.0 = Disable, 1 = Transition to SLEEP mode 0 IDLE BIT [2] Enter IDLE mode. This bit is not cleared automatically.0 = Disable, 1 = Transition to IDLE mode 0 Reserved [1:0] Reserved 0
JZ2440:时钟设置的更多相关文章
- 韦东山教程ARM的时钟设置出现的问题及其解决方法
时钟设置是一个非常重要的环节,如果系统没有合适的时钟,根本无法工作. S3C2440的时钟复杂,分为FCLK,HCLK,PCLK. 在程序测试中,曾出现这样一个错误.系统当前FCLK为400 ...
- PIC单片机之时钟设置
PIC单片机之时钟设置 http://blog.csdn.net/superanters/article/details/8541650 内部时钟和外部时钟? PIC单片机有许多型号可以设置成 用外部 ...
- 第三章、Tiny4412 U-BOOT移植三 时钟设置【转】
本文转自:http://blog.csdn.net/eshing/article/details/37521789 这一章说明配置时钟频率基本原理 OK,接着说,这次先讲讲CPU的系统时钟.U-BOO ...
- STM32的系统时钟设置SystemClock_Config()探究
一.首先了解几个硬件名词: stm32有多种时钟源,为HSE.HSI.LSE.LSI.PLL,对于L系统的,还有一个专门的MSI 1.HSE是高速外部时钟,一般8M的晶振,精度比较高,比较稳定. 2. ...
- STM32内部时钟设置-寄存器版
STM32寄存器版本——内部时钟设置 同时要记得把延时初始化函数设置好 //系统时钟初始化函数 //pll:选择的倍频数,从2开始,最大值为16 //pll:选择的倍频数,这里使用内部时钟,PLL为4 ...
- 合宙AIR105(二): 时钟设置和延迟函数
目录 合宙AIR105(一): Keil MDK开发环境, DAP-Link 烧录和调试 合宙AIR105(二): 时钟设置和延迟函数 Air105 的时钟 高频振荡源 芯片支持使用内部振荡源, 或使 ...
- RTC硬件时钟设置修改【转】
转自:http://os.chinaunix.net/a2008/0526/981/000000981211.shtml 这两天一直在做i2c设备驱动的理解,所以很少更新文章. 由于对于表计来说,RT ...
- msp时钟设置程序
吐槽一下MSP430需要明白的东西: 在430中,一个时钟周期 = MCLK晶振的倒数.如果MCLK是8M,则一个时钟周期为1/8us: 一个机器周期 = 一个时钟周期,即430每个动作都能完成一个基 ...
- S3C2440 时钟设置分析(FCLK, HCLK, PCLK)
时钟对于一个系统的重要性不言而喻,时钟决定了系统发送数据的快慢,高性能的芯片往往能支持更快速度的时钟,从而提供更好的体验. S3C2440的输入时钟频率是12MHZ,对于这款芯片,显然速度是不够的,所 ...
随机推荐
- Django 千锋培训的学习笔记(1)
Django 千锋培训读书笔记 https://www.bilibili.com/video/av17879644/?p=1 切换到创建项目的目录 cd C:\Users\admin\Desktop\ ...
- Lex与Yacc学习(三)之符号表
符号表 列举单词表的方式虽然简单但是不全面,如果在词法分析程序运行时可以构建一个单词表,那么就可以在添加新的单词时不用修改词法分析程序. 下面示例便利用符号表实现,即在词法分析程序运行时从输入文件中读 ...
- re--模块【转】
为什么要学正则表达式 实际上爬虫一共就四个主要步骤: 明确目标 (要知道你准备在哪个范围或者网站去搜索) 爬 (将所有的网站的内容全部爬下来) 取 (去掉对我们没用处的数据) 处理数据(按照我们想要的 ...
- Python 前端 Css基础
CSS样式存在的位置 1.放置在标签内,局部生效 <div style="color: red;font-size: 18px;">hello world</di ...
- Python Jquery学习
jquery调用方法: $(css的选择器).操作函数 语法格式: 操作函数: html 修改内容 点击button键后,jquery就会变为bootstrap 当然里面也可以进行判断,实现 ...
- MongoDB的正确使用姿势
本文来自网易云社区,转载务必请注明出处. MongoDB是一个非常有前途的数据库,MongoDB官方对自己的定位是通用数据库,其实这个定位跟MySQL有些像.虽其流行度还远未达到MySQL的水平,但笔 ...
- Windows phone UI虚拟化和数据虚拟化(二)
书接上回的Windows phone UI虚拟化和数据虚拟化(一)我们学习了wp的ui虚拟化.今天来和大家分享一下wp的数据虚拟化. 并同时感谢我的同事dgwutao在编写此文时给我的巨大帮助,3ks ...
- Excel读取导入数据库碰到的问题
1.未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序. 下载并安装驱动:http://download.microsoft.com/download/7/0/3/703 ...
- 【bzoj2901】矩阵求和 前缀和
题目描述 给出两个n*n的矩阵,m次询问它们的积中给定子矩阵的数值和. 输入 第一行两个正整数n,m. 接下来n行,每行n个非负整数,表示第一个矩阵. 接下来n行,每行n个非负整数,表示第二个矩阵. ...
- BZOJ3295 动态逆序对(树状数组套线段树)
[Cqoi2011]动态逆序对 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 6058 Solved: 2117[Submit][Status][D ...