
【ARM自学笔记】ARM7时钟简述及配置
发布日期:2021-05-14 16:25:18
浏览次数:18
分类:精选文章
本文共 1625 字,大约阅读时间需要 5 分钟。
I.MX6U 系统时钟分析与配置
系统架构概述
I.MX6U 定点处理器采用先进的时钟管理架构,能够支持多种高性能外设配置。其硬件设计采用多带时钟源(PLL)和精密时钟分频功能,确保系统能够更灵活地支持多种对应的功能模块。
硬件分析
时钟管理架构
I.MX6U 提供以下主要的时钟管理单元:
一、时钟源分配
- 主时钟源:基于 24MHz 外部晶振源。
- 辅助时钟源:采用嵌入式锁相环(PLL)生成多种高频时钟。
二、时钟树结构
- 时钟生成树由以下主要部分构成:
- CLOCK_SWITCHER: 晶振源选择器。
- CLOCK ROOT GENERATOR: 根时钟源生成器。
- ** 系统时钟树**:包含 AHB、IPG、PERCLK 等重要根时钟来源。
系统时钟管理
一、主要时钟模块
ARM_PLL(PLL1):
- 主频为 1056MHz,用于 ARM 内核。
- 可编程分频功能(1/2/4/8 分频)。
528_PLL(PLL2):
- 固定 22 倍频,输出 528MHz。
- 配置 4 路 PFD (528_PFD0~3)。
480_PLL(PLL3):
- 固定 20 倍频,输出 480MHz。
- 配置 4 路 PFD(480_PFD0~3)。
时钟树配置流程
一、AHB 和 IPG 时钟设置
- AHB_CLK_ROOT:分频范围 6MHz~132MHz。
- IPG_CLK_ROOT:分频范围 3MHz~66MHz。
- 通道分频设置:可选 1~8 分频。
二、PERCLK 时钟设置
- PERCLK_CLK_ROOT 时钟源可选 OSC 或 IPG_CLK_ROOT。
- 分频范围:1~8 分频。
内核时钟配置
一、ARM 内核主频设置
- 通过 CCM_CACRR 寄存器进行 2 分频。
- 配置模式:可选 1/2/4/8 分频。
- 推荐配置:主频 528MHz。
二、外设时钟配置
- LCD 时钟:可选 1/2/4/8 分频。
- 音频时钟:可选 1/2/4 分频。
- 网络时钟:支持 25/50/100/125MHz。
PFD 时钟配置
一、PFD 时钟设置
-
528_PFD:
- PFD0:528×18÷27=352MHz。
- PFD1:528×18÷16=594MHz。
- PFD2:528×18÷24=396Hz。
- PFD3:528×18÷32=297Hz。
-
480_PFD:
- PFD0:480×18÷12=720Hz。
- PFD1:480×18÷16=540Hz。
- PFD2:480×18÷17=508Hz。
- PFD3:480×18÷19=454.74Hz。
寄存器配置示例
一、PLL Main Clock Configuration
- CCM_ANALOG_PLL_ARMn: 1056MHz (88 频率选择)。
- CCM_CACRR: 2 分频。
二、PFD 时钟配置
- CCM_ANALOG_PFD_528: 配置各 PFD 频率。
- CCM_ANALOG_PFD_480: 配置各 PFD 频率。
实际应用示例
-
例子 1:
- LCD 模块:设置 1/2 分频,时钟频率为 650MHz.
-
例子 2: -音频模块:设置 1/2 分频,时钟频率为 325MHz.
典型应用场景
-
任务一:多外设同步控制:
- 配置多根时钟线同时工作。
- 确保各外设模块同步运行。
-
任务二:动态频率调整:
- 根据应用需求调整时钟频率。
- 分频模式灵活切换。
代码编写与烧录
一、上级代码示例
void imx6u_clkinit(){...}// 假设有其他代码逻辑
二、烧录流程
- 使用 keil 或其他开发工具导出程序。 -烧录到 target Board。
结果验证
-
测试指标:
- 各外设模块运行频率。
- 指定时钟频率是否正确。
- 操作是否触发对应事件。
-
优化建议:
- 优化分频配置。
- 确保时钟源稳定性。
通过上述详细配置流程和代码示例,可实现 I.MX6U 系统时钟管理的多样化配置,确保高性能外设正确运行。
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2025年04月11日 20时58分58秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
X工厂 ERP (SBO) 2006 项目案例
2019-03-12
Android 吸顶布局
2019-03-12
python学习笔记2.3- 循环、判断
2019-03-12
python学习笔记4.1-python高级之生成器
2019-03-12
U3D实现WebCamera显示
2019-03-12
方法的重载
2019-03-12
SpringCloud第七章Ribbon负载均衡服务调用
2019-03-12
Python我的模块-字符替换
2019-03-12
"cannot be resolved or is not a field"问题解决
2019-03-12
Android Eclipse svn插件安装说明
2019-03-12
Android判断是否是平板
2019-03-12
C++中的字节对齐,以及空结构体,数组,union类型的实践
2019-03-12
"compileDebugJavaWithJavac"错误解决
2019-03-12
Android系统原理及开发要点详解
2019-03-12
Android基础#22:Android handler用法详解2,例2
2019-03-12
维基百科之AndroidRoot
2019-03-12
object-c的Retain and Release(保留与释放)
2019-03-12