【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 系统时钟管理的多样化配置,确保高性能外设正确运行。

    上一篇:C++通讯录系统(含完整代码和详细注释)
    下一篇:C++数组冒泡排序(指针)

    发表评论

    最新留言

    路过,博主的博客真漂亮。。
    [***.116.15.85]2025年04月11日 20时58分58秒