• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > linux设备驱动程序之时钟管理(1)----最初的印象

linux设备驱动程序之时钟管理(1)----最初的印象

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了linux时钟同步,linux 时钟,linux 时钟同步命令,linux 硬件时钟,linux服务器时钟同步等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

linux设备驱动程序之时钟管理(1)----最初的印象


PLL(Phase Locked Loop): 为锁相回路或锁相环,用来统一整合时脉讯号,使内存能正确的存取资料。PLL用于振荡器中的反馈技术。 许多电子设备要正常工作,通常需要外部的输入信号与内部的振荡信号同步,利 用锁相环路就可以实现这个目的。

比如三星s3c2410就有两个PLL,一个是MPLL,即machine PLL,主要用于CPU和一些外围器件,另一个是UPLL,即USB PLL,主要用于USB的时钟。他们用于产生三种频率,即FCLK ,HCLK, PCLK,这三种频率分别具有不同的用途

FCLK主要是为CPU提供时钟信号,FCLK is used by ARM920T,内核时钟,主频。

HCLK是为AHB总线提供的时钟信号,Advanced High-performance Bus,主要用于高速外设,比如内存控制器,中断控制器,LCD控制器,DMA等,HCLK is used for AHB bus, which is used by the ARM920T, the memory controller, the interrupt controller, the LCD controller, the DMA and USB host block. 也就是总线时钟,包括USB时钟。

PCKL是为APB总线提供的时钟信号,Advanced Peripheral Bus。PCLK is used for APB bus, which is used by the peripherals such as WDT, IIS, I2C, PWM timer, MMC interface,ADC, UART, GPIO, RTC and SPI.即IO接口时钟,例如串口的时钟设置就是从PCLK来的.

这回算是清晰点儿了哈?不过。。这三个时钟到底有什么关系呢?这三个时钟通常设置为1:4:8,1:3:6的分频关系,也就说如果主频FLCK是400MHz,按照1:4:8的设置,那么HLCK是100MHz,PLCK是50MHz。

输入时钟FIN与主频FCLK的关系
现代的CPU基本上都使用了比主频低的多的时钟输入,在CPU内部使用锁相环进行倍频。对于S3C2440,常用的输入时钟FIN有两种:12MHz和16.9344MHz,那么CPU是如何将FIN倍频为FCLK的呢?
S3C2440使用了三个倍频因子MDIV、PDIV和SDIV来设置将FIN倍频为MPLL,也就是FCLK
MPLL=(2*m*FIN)/(p*2^s) where m=(MDIV+8), p=(PDIV+2), s="SDIV"
寄存器MPLLCON就是用来设置倍频因子的
理论上,你可以通过设置该寄存器来实现不同的频率,然而,由于实际存在的各种约束关系,设置一个适当的频率并不容易,手册上列出了一些常用频率的表格,
例如,假设输入时钟FIN=16.9344M,MDIV=110, PDIV="3", SDIV="1",
利用上面的公式,FCLK=2*16.9344*(110+8)/((2+3)*2)=399.65
3)关于USB时钟
S3C2440有两个锁相环,一个主锁相环MPLL提供给FCLK的,另外一个UPLL是提供给USB时钟(48MHz)的,与MPLL一样,UPLL的产生也是通过 UPLLCON寄存器设置分频因子得到,计算公式稍有不同:
UPLL=(m*FIN)/(p*2^s) where m=(MDIV+8), p=(PDIV+2), s="SDIV",同样,可以通过查表得到一个合适的值。
最后值得一提的是,在CLKDIVN的第三位DIVN_UPLL用来设置USB时钟UCLK和UPLL的关系,如果UPLL已经是48Mhz了,那么这一位应该设置为0,表示1:1的关系,否则是1:2的关系


2410的时钟和电源管理
时钟和电源管理模块由3部分组成:时钟控制、USB控制、电源控制。
时钟控制部分产生3种时钟信号:CPU用的FCLK,AHB总线用的HCLK,APB总线用的PCLK。有2个锁相环,一个用于FCLK HCLK PCLK,另一个用于48MHz的USB时钟。可以通过不使能锁相环来达到慢速省电目的。
电源管理模块提供了4种模式: Normal模式、Slow模式、Idle模式、Power_Off模式。
Normal Mode

该模式下如果所有外围设备都打开时电流消耗最大,允许用户通过软件关闭外围设备达到省电目的。
Slow Mode
不采用PLL的模式,能量消耗仅取决于外时钟的频率。由外部提供的时钟源作FCLK。
Idle Mode
关掉了给cpu的FCLK时钟,但外围设备时钟仍存在,任何到CPU的中断请求可以将cpu唤醒。
Power_off Mode
这种模式关掉了内部供电,仅有给wake_up部分的供电还存在。可以通过外部中断或实时时钟中断可以唤醒。
寄存器CLKDIVN表明并设置了这三个时钟的关系


时钟结构:主时钟源来自外部晶振XTlpll或外部时钟EXTCLK。

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • linux设备驱动程序之时钟管理(1)----最初的印象
  • linux设备驱动程序之时钟管理(2)----又见结构
  • linux设备驱动程序之时钟管理(3)----我的那块儿蛋糕
  • linux设备驱动程序之时钟管理(4)----原来是孩儿他爹娘

相关文章

  • 2017-05-26android TextView实现跑马灯效果
  • 2017-05-26Android的基本世界观——系统简介,组件逻辑及其他
  • 2017-05-26Android菜单项内容大全,android菜单项大全
  • 2017-05-26Android开发学习之路--图表实现(achartengine/MPAndroidChart)之初体验
  • 2017-05-26高并发低基数多字段任意组合查询的优化
  • 2017-05-26Android中dip、dp、sp、pt和px的区别,androiddip
  • 2017-05-26Android系统的五种数据存储形式(二),android数据存储
  • 2017-05-26硅谷新闻3--使用Android系统自带的API解析json数据,androidjson
  • 2017-05-26Android开发艺术探索学习笔记(十一),android艺术探索
  • 2017-05-26android布局不带参数返回,android布局参数

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Android IPC机制(五)用Socket实现跨进程聊天程序
    • android 完全解析模拟遥控器按键,android遥控器
    • android shareSDK实现第三方分享,androidsharesdk
    • 安卓第十三天笔记-服务(Service),安卓第十三天
    • Xamarin android 的WebClient Json下载并存储本地及sqlite数据库,xamarinsqlite
    • Android系统架构,android系统结构
    • 使用Eclipse开发Android源码
    • MirrorNetwork 基于jmdns和netty的android网络通信开源库,mirrornetworkjmdns
    • svn环境搭建(不同目录、设置不同的权限)
    • Android第一天-->布局,android第一天--

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有