前面章节内容针对ARM内核和ARM内核汇编完成了ARM处理器最基础内容的学习,从本章开始我们针对集合ARM内核的SOC片上系统展开学习。片上系统设计的主要是针对各种外界硬件设备的驱动开发工作,关于这部分内容各个SOC芯片外部设备和接口协议大同小异,可以做到一通百通。当然,随着技术的发展和嵌入式开发人员的逐渐庞大,现在常见的外部设备硬件驱动开发工作基本上直接拿来现成代码做简单修改即可。对于网卡、ISP这种复杂类型的外部设备,需要一些负责相关业务的开发人员进行维护。

SOC涉及外部设备主要包含时钟树、串口、DRAM、I2C、SPI、CAN、USB、PCIE、DMA、Nandflash、网卡等。

1. 系统时钟体系

1.1. 时钟源

外部时钟源分两种,晶振OSC或者外部时钟EXTCLK,由om3-2选择具体输入哪个时钟源信息表:

1.2. 频率控制

经过选定开关OM选定以后的输入时钟MPLL_IN有三个去向MPLL、UPLL、USBCNTL。其中USBCNTL这些控制模块一开始控制室中都是来自选定后的时钟,这些控制模块给定时钟以后,我们才能进行后期复杂锁相环和分频器寄存器配置,产生需要的时钟。UPLL环和MPLL都包含了P/M/S配置用来实现频率倍增,DIVN分频器则实现频率成倍降低的功能。确定好频率控制以后,剩下的内容是如何分频,如何启用时钟停止时钟,锁相环配置等等。

输入时钟

MPLL

FCLK

HCLK

内存控制器,中断控制器,nand控制器,tic控制器等,系统内核920T,DMA控制器,USB控制器(也可UCLK)

PCLK

基本外设RTC,UART,spi等外设,USB设备(也可UCLK)

只供给系统内核,

USB PLL

UCLK

USB主机时钟,usb设备时钟

1.3. 配置时序

启动晶振时钟序列图给出了启动过程的拉起流程, 根据芯片是时钟启动流程原理确定寄存器配置流程。 

  1. 正常上点以后,晶振开始逐渐会振动,等待nRESET信号拉高确定具体的时间使用情况。
  2. FCLK提供给芯片的时钟稳定在晶振初始时钟
  3. 根据OM设置,nRESET拉高以后输出相应的选择时钟
  4. 设置PLL锁相环锁定时间,这个时间主要用于软件设置PLL倍频寄存器以后,给锁相环正常输出稳定频率的反映时间
  5. 结束锁定时间以后开始按照软件设置的最新频率输出给CPU工作频率

根据流程确定配置时钟需要的寄存器如下:

PLL的锁定时间,一般设置小一点查询是否锁定成功就好

通过锁相环控制器设定MPS比例,可以获取不同的MCLK或者UCLK,配置过程计算公式:

    /* 设置MPLLCON(0x4C000004) = (92<<12)|(1<<4)|(1<<0) 
     *  m = MDIV+8 = 92+8=100
     *  p = PDIV+2 = 1+2 = 3
     *  s = SDIV = 1
     *  FCLK = 2*m*Fin/(p*2^s) = 2*100*12/(3*2^1)=400M
     */

通过这个寄存器进行时钟的使能与切断,一般进行功耗控制的时候需要关闭一些不需要的模块。

该寄存器确认以一种什么样的比例将FCLK分频为HCLK和PCLK

注意:

2. 汇编时钟

 /* 目标设置MPLL, FCLK : HCLK : PCLK = 400m : 100m : 50m *//* 1. LOCKTIME(0x4C000000) = 0xFFFFFFFF */ldr r0, =0x4C000000ldr r1, =0xFFFFFFFFstr r1, [r0]/* 2. CLKDIVN(0x4C000014) = 0X5, tFCLK:tHCLK:tPCLK = 1:4:8  */ldr r0, =0x4C000014ldr r1, =0x5str r1, [r0]/* 3. 设置CPU工作于异步模式 */mrc p15,0,r0,c1,c0,0orr r0,r0,#0xc0000000   //R1_nF:OR:R1_iAmcr p15,0,r0,c1,c0,0/* 4. 设置MPLLCON(0x4C000004) = (92<<12)|(1<<4)|(1<<0) *  m = MDIV+8 = 92+8=100*  p = PDIV+2 = 1+2 = 3*  s = SDIV = 1*  FCLK = 2*m*Fin/(p*2^s) = 2*100*12/(3*2^1)=400M*/ldr r0, =0x4C000004ldr r1, =(92<<12)|(1<<4)|(1<<0)str r1, [r0]/* 一旦设置PLL, 就会锁定lock time直到PLL输出稳定* 锁定期间CPU不工作,结束后CPU工作于新的频率FCLK*/

S3C2440时钟体系 - SOC裸机相关推荐

  1. S3C2440时钟体系

    S3C2440在默认情况下,整个系统全靠一个12MHz的外部晶振提供频率来工作运行的,也就是说CPU.内存.UART.ADC等所有需要用到时钟频率的硬件都工作在12MHz下,但是通过查阅芯片手册我们知 ...

  2. 【嵌入式开发】时钟初始化 ( 时钟相关概念 | 嵌入式时钟体系 | Lock Time | 分频参数设置 | CPU 异步模式设置 | APLL MPLL 时钟频率设置 )

    文章目录 一. 时钟相关概念解析 1. 相关概念术语 ( 1 ) 时钟脉冲信号 ( 概念 : 电压幅度 时间间隔 形成脉冲 | 作用 : 时序逻辑基础 间隔固定 根据脉冲数量可计算出时间 ) ( 2 ...

  3. 韦东山ARM第一期作业(一)ARM时钟体系

    文章目录 01 - 作业所在路径 02 - 作业描述 03 - 作业解答 01 - 作业所在路径   ARM裸机1期加强版\源码文档图片\文档图片\第010课_掌握ARM芯片时钟体系 02 - 作业描 ...

  4. arm linux 时钟源 信息,Linux学习——ARM芯片时钟体系

    跟着视频学习了ARM芯片时钟体系,信息量有点大,做个笔记梳理梳理. 1.时钟体系的结构图 有很多外设,一些工作在AHB总线,一些工作在APB总线 CPU工作在FCLK,AHB总线工作在HCLK,APB ...

  5. Exynos4412时钟体系分析

    本文转载自:http://www.techbulo.com/1365.html 在芯片手册里,"时钟管理单元 (Clock Management Unit)"的简称为 CMU .C ...

  6. s3c6410时钟体系

    S3C6410时钟体系 S3C6410可以使用外部晶振( XXTIpll )(默认为12MHZ)和外部时钟( XEXTCLK )两种方式输入时钟信号.它由跳线OM[0]决定.S3C6410 默认的工作 ...

  7. 掌握ARM芯片时钟体系

    1.s3c2440时钟体系结构 Fclk.Hclk.Pclk如何得到?时钟源 12M晶振----PLL锁相环---->400M\136M\68M 晶振---------|--->MPLL- ...

  8. linux 调整时钟的频率,S3C2440时钟设置

    S3C2440时钟设置 #define MDIV_405        0x7f << 12 #define PSDIV_405      0x21 #define LOCKTIME_OF ...

  9. UART与Printf - SOC裸机

    1. 串口(物理) 串口硬件主要是4条线,rx tx gnd和电源四条硬件线 2. 串口(协议) 串口是计算机上一种非常通用的设备通信的协议(不要与通用串行总线Universal Serial Bus ...

最新文章

  1. react native的页面整体下拉刷新
  2. MAC下载JDK及安装AndroidStudio
  3. android lottie字体json,lottie-android
  4. 等差数列划分Python解法
  5. 手机1像素线粗_关于移动端开发 1px 线的一些理解和解决办法
  6. Docker最全教程之使用Docker搭建Java开发环境
  7. Mybatis笔记——Mybatis入门
  8. 现实世界的Windows Azure:采访InishTech的销售及市场部主管Andrew O’Connor
  9. KlayGE 4.4中渲染的改进(五):OpenGL 4.4和OpenGLES 3
  10. Java基础学习总结(129)——Arrays.asList得到的List进行add和remove等操作出现异常解析
  11. 企业信息化与BI系统建设规划
  12. PS放大图片而不模糊的操作方法
  13. CentOS官网下载对应版本
  14. 计算机课程之间的关系
  15. 自制Alfred/Wox插件推荐
  16. ABAP 语法:“LOOP … ASSIGNING …”,可直接修改内表数据,效率更高
  17. 回归常态啦 2020.12.08日记
  18. Java设计一个测桃花模块_20145209刘一阳《JAVA程序设计》第十五周补充测试
  19. CAN-TP(15765-2协议)网络层协议解析
  20. meta分析 1. Risk Ratio

热门文章

  1. 微信聊天记录怎么备份?
  2. PC微信更改文件默认保存位置后聊天记录丢失
  3. Python手册--目录
  4. clickhouse的傻瓜式安装和基础入门
  5. 吕 思 伟 ---- 潘 爱 民 :: ATL 介 绍( 三)
  6. d盘无法格式化怎么解决
  7. 简单粗暴识别工作室Android识别模拟器
  8. ブリアー / 三星枪
  9. 算法 | 你知道算法为什么这么重要吗?
  10. 海淘、跨境电商国际物流对接那些坑