[国嵌攻略][038][时钟初始化]
时钟脉冲信号
按一定的电压幅度,一定的时间间隔连续发出的脉冲信号叫做时钟脉冲信号。用于给处理器和其他硬件提供时钟度量。
时钟脉冲频率
在单位时间内产生的时钟脉冲的个数叫做时间脉冲频率
时钟源分类
1.晶振:又称晶体振荡器,通过石英晶体切割、加电极、通电后会产生固定的机械震荡。优点是结构简单、噪声低,缺点是生产成本高。
2.PLL:锁相环,通过外部晶振和锁相环电路来提高晶振的频率。
时钟体系
1.晶振频率是多少?
2.有多少个PLL?
3.PLL产生出了哪些时钟?(ARM核使用的是哪个时钟)
4.产生出来的时钟用来做什么?
5.在datasheet中的CLOCK & POWER MANAGEMENT中可以相关描述
2440时钟体系
1.晶振频率是12MHz
2.MPLL,UPLL
3.MPLL产生出来FCLK、HCLK、PCLK;UPLL产生出来UCLK
时钟 |
应用场合 |
应用举例 |
所属PLL |
FCLK |
处理器 |
ARM9 |
MPLL |
HCLK |
AHB总线 |
LCD,DMA |
MPLL |
PCLK |
APB总线 |
UART,GPIO |
MPLL |
UCLK |
USB总线 |
USB |
UPLL |
6410时钟体系
1.晶振是12MHz
2.APLL,MPLL,EPLL
3.APLL产生出来ARMCLK;MPLL产生出来HCLK、PCLK;EPLL产生出来SCLK
时钟 |
应用场合 |
应用举例 |
所属PLL |
ACLK |
处理器 |
ARM11 |
APLL |
HCLK |
AHB总线 |
LCD,DMA |
MPLL |
PCLK |
APB总线 |
UART,GPIO |
MPLL |
SCLK |
USB总线 |
USB |
EPLL |
210时钟体系
1.晶振是24MHz
2.APLL,MPLL,EPLL,VPLL
时钟体系 |
所属时钟 |
应用举例 |
锁相环 |
MSYS |
ARMCLK HCLK_MSYS PCLK_SYS |
ARM核 内存控制器 中断 |
APLL |
DSYS |
HCLK_DSYS PCLK_DSYS |
显示相关部件如FIMC |
MPLL |
PSYS |
HCLK_PSYS CLK_DPM |
外设,如UART,I2C |
EPLL |
视频相关 |
VPLL |
思维导图设计
1.上电之后ARM核按照晶振频率在工作
2.当PLL配置完成是会进入Lock Time,处理器停止工作,然后以新的频率开始工作。
3.时钟初始化软件需要完成的工作:
3.1.配置Lock Time;
3.2.设置分频系数(用于FCLK来配置HCLK和PCLK);
3.3.如果HDIVN不等于0,需要设置CPU从快速模式到异步模式。FCLK是核的频率,HCLK是总线的频率,当核的频率和总线的频率不相等的时候需要设置CPU到异步工作模式。
3.4.配置FCLK
代码编写
1.找到设置lock time的寄存器LOCKTIME(0x4C000000),一般使用默认值,所以不需要去设置
2.设置PLL需要去设置MPLLCON(0x4C000004)中的MDIV=127 PDIV=2 SDIV=1
3.设置分频系数一定要在datasheet中对应的表里面。可以参考uboot中的分频系数来设置FCLK:HCLK:PCLK=1:4:8 HDIVN=2 PDIVN=1。在CLKDIVN(0x4C000014)寄存器中是用来设置HDIVN和PDIVN的
4.设置异步工作模式需要在ARM核手册中找到CP15的R1寄存器的iA和nF位,并设置为1
时钟设置总结(可以参考芯片手册和uboot代码)
1.设置PLL系数
2.设置选择器
3.设置分频系数
4.设置异步模式
/*
*名称:init_sysclk
*功能:初始化系统时钟
*/
init_sysclk://设置PLL系数ldr r0, =MPLLCONldr r1, =MPLLCON_VALstr r1, [r0]//设置分频系数ldr r0, =CLKDIVNldr r1, =CLKDIVN_VALstr r1, [r0]//设置异步模式mrc p15, 0, r0, c1, c0, 0orr r0, r0, #0xC0000000 //设置iA:1 iF:1mcr p15, 0, r0, c1, c0, 0mov pc, lr
转载于:https://www.cnblogs.com/d442130165/p/4913148.html
[国嵌攻略][038][时钟初始化]相关推荐
- [国嵌攻略][139][输入子系统原理分析]
输入子系统核心架构 1.设备驱动层 2.核心层 3.事件层 4.用户空间 输入设备注册 1.拿设备ID去匹配handler的ID,找到对应的handler(事件处理者) 最常用的handler是evd ...
- [国嵌攻略][080][无名管道通讯]
通讯目的 1.数据传输 一个进程需要将数据发送给另外一个进程. 2.资源共享 多个进程之间共享同样的资源. 3.通知事件 一个进程需要向另外一个/组进程发送消息,通知它们发生了某事件. 4.进程控制 ...
- [国嵌攻略][085][共享内存通讯]
共享内存 共享内存是IPC机制中的一种,它允许两个相关的进程访问同一段内存,这是传递数据的一种有效的方式. A.c #include <sys/types.h> #include < ...
- [国嵌攻略][084][信号同步编程]
进程同步 一组并发进程进行相互合作.相互等待,使得各进程按一定的顺序执行的过程称为进程间的同步. 进程同步与进程互斥 进程同步问题的关键在于生产者不需要获取信号量,消费者不需要释放信号量,所以信号量的 ...
- [国嵌攻略][125][总线设备驱动模型]
总线模型 随着技术的不断进步,系统的拓扑结构也越来越复杂,对热插拔,跨平台移植性的要求越来越高,2.4内核已经难以满足这些需求.为了适应这种形势的需要,从Linux2.6内核开始提供了全新的设备驱动模 ...
- [国嵌攻略][054][NandFlash驱动设计_写]
Nand Flash支持按页写和随机写两种方式,在下面实现的是按页写.闪存在写数据时,只能写入1,不能写入0,所以写函数必须和擦除函数一起使用,并且擦除函数是按块擦除. /************** ...
- iOS应用开发攻略 pdf电子书
尊敬的用户您好,由于该iOS应用开发攻略pdf书受百度网盘影响无法做公共分享,只能私密分享,有不到之处请多多谅解! 百度链接: http://pan.baidu.com/s/1xPovn 密码: ...
- Algorithm:数学建模大赛(国赛和美赛)的简介/内容、数学建模做题流程、历年题目类型及思想、常用算法、常用工具之详细攻略
Algorithm:数学建模大赛(国赛和美赛)的简介/内容.数学建模做题流程.历年题目类型及思想.常用算法.常用工具之详细攻略 目录 国内数学建模大赛简介 1.本科生数学建模大赛 2.研究生数学建模大 ...
- DL之DNN优化技术:DNN中参数初始化【Lecun参数初始化、He参数初始化和Xavier参数初始化】的简介、使用方法详细攻略
DL之DNN优化技术:DNN中参数初始化[Lecun参数初始化.He参数初始化和Xavier参数初始化]的简介.使用方法详细攻略 导读:现在有很多学者认为,随着BN层的提出,权重初始化可能已不再那么紧 ...
最新文章
- python之列表推导式 内置函数
- client-go workqueue demo
- 前端学习(1159):对象结构02
- el表达式 循环_EL表达式和JSTL标签库(百战程序员047天)
- 网赚新手必读:Google Adsense五条法则
- 源码编译搭建LAMP环境
- [Java] 蓝桥杯ALGO-139 算法训练 s01串
- shell 脚本检测端口状态
- Latex表格宽度调整
- RV减速器动力学模型静力学matlab程序代码
- Android studio @Author的使用以及TAG的自动生成
- Icarus iverilog中PLI使用范例
- mac笔记本怎么外接显示屏_Mac电脑外接显示器全攻略
- Java中常见的单词
- 仿掘金社区全栈项目开发(二)-前端工程化
- 冯·诺依曼、哈佛、改进型哈佛体系结构解析
- idea关联scala与spark开发(全)
- qs的arrayFormat与SpringBoot接收数组问题
- 从零开始一起学slam--icp
- 深圳成为乌拉圭智慧城市解决方案输出地
热门文章
- wireshark 开始抓包
- java根据周数获取日期_java获取日期的周数和所属年份
- dockerfile arg_解读三组容易混淆的 Dockerfile 指令
- 根据用户查进程_Linux进程之如何查看进程详情?
- Linux添加rose不能交互式登录,常见问题及注意事项 - Linux下环境安装配置Rose HA全攻略(图)_数据库技术_Linux公社-Linux系统门户网站...
- 批量 材质 调整_寒霜引擎的PBR实践3.0(一)材质篇
- CSS(网页样式语言)基础,网页CSS设计样式基础知识点 小白教程
- 【Ubuntu引导】EFI系统分区.删除不掉,也不能格式化,如何粘力删除 efi 隐藏分区
- ubuntu环境搭建四:安装和使用git
- linux下无权限安装opencv3.4.6