【无标题】

PLL、Prescaler、FPD (PFD) 作用

PLL (Phase-Locked Loop,锁相环)

定义:将外部低频晶振(IMX6ULL 为 24MHz)倍频 为芯片内部所需高频时钟的核心电路。

作用:频率倍增,提供 CPU、总线、外设的高频时钟源;相位锁定,输出稳定、低抖动的时钟信号

Prescaler (预分频器)

定义:时钟树中的频率 "减速器"。

作用:对高频时钟进行整数分频(输出 = 输入 / N),将高频时钟降至外设可接受的频率(如 66MHz→1MHz)。

特点:IMX6ULL 定时器(EPIT/GPT)内置12 位预分频器,分频范围广(1~4096)。

PFD (Phase Fractional Divider,相位分数分频器)

能分频也能倍频

IMX6ULL PLL 与 PFD 数量

PLL 总数:7 个

PLL1 (ARM_PLL):CPU 内核时钟,最高 1.3GHz

PLL2 (528_PLL):系统总线时钟,固定 528MHz

PLL3 (USB1_PLL):USB PHY 时钟,固定 480MHz

PLL4 (Audio_PLL):音频时钟

PLL5 (Video_PLL):视频时钟

PLL6 (ENET_PLL):以太网时钟,500MHz

PLL7 (USB2_PLL):第二个 USB PHY 时钟
PFD 总数:8 个

PLL2 分出 4 路 PFD:PLL2_PFD0 ~ PLL2_PFD3

PLL3 分出 4 路 PFD:PLL3_PFD0 ~ PLL3_PFD3

简述ARM PLL的配置流程

cpp 复制代码
一    kernal: CCM_ANALOG_PLL_ARMn
1 先选择osc_clk,让step_clk为24MHz
2 再将PLL1的输出改成step_clk,让ARM暂时工作在24MHz;
3 配置PLL为1056,注意设置倍频因子之前先把PLL之后的二分频设置好,避免ARM内核故障!!
4 最后改回pll1_main_clk

二    528 PLL:CCM_ANALOG_PFD_528n

三    480 PLL:CCM_ANALOG_PFD_480n

四    AHB_CLK_ROOT(132M)
1 CBCMR[PRE_PERIPH_CLK_SEL]
2 CBCDR[PERIPH_CLK_SEL]
3 CBCDR[AHB_PODF]

五    IPG_CLK_ROOT(66M)
CBCDR[IPG_PODF]

六    PERCLK_CLK_ROOT(66M)
1 CSCMR1[PERCLK_CLK_SEL]
2 CSCMR1[PERCLK_PODF]

IMX6ULL中的EPIT和GPT的工作原理是什么?

EPIT工作原理:

增强型周期中断定时器,是一个32为向下计数器,有三个寄存器,分别是计数寄存器、加载寄存器、比较寄存器,通过向加载寄存器写入初值,自动写入计数寄存器,然后向下计数,会与比较寄存器中的值进行比较,如果比比较寄存器的值小,就会触发中断,当计数寄存器减为0后,会再次加载初值重新向下计数。

GPT工作原理:

通用目的的定时器,是一个32尾向上定时器,有两路输入捕获和3路输出比较中断,当工作在自由运行模式时,当计数到OxFFFFFFFF时,会重新回滚到Ox00000000继续向上计数,就可以实现高精度延时,通过读取CNT寄存器,记录当前的计数值,然后通过死循环比较判断到对应的延时是否到达,即可完成高精度阻塞式延时。

相关推荐
AI+程序员在路上2 小时前
新手进入嵌入式行业方法与方向选择
c语言·开发语言·单片机·嵌入式硬件
The️2 小时前
STM32F407 + LVGL 图形界面开源开发板
stm32·单片机·嵌入式硬件·开源·硬件工程·开源协议·pcb工艺
Zevalin爱灰灰2 小时前
编程技巧(基于STM32)第三章 模式切换程序模板
stm32·单片机·嵌入式
爱喝纯牛奶的柠檬3 小时前
【已验证】STM32驱动RC522_RFID模块实现卡片识别
stm32·单片机·嵌入式硬件
老师用之于民3 小时前
【DAY34】基于 IMX6ULL 的嵌入式系统底层开发:中断、时钟与定时器配置
单片机·嵌入式硬件
DA02213 小时前
系统移植-STM32MP1_U-Boot移植
单片机·bsp·系统移植
不怕犯错,就怕不做3 小时前
Linux中的IS_ENABLED 函数实战使用demo
linux·驱动开发·嵌入式硬件
ytttr8733 小时前
MAX31856热电偶采集芯片参考代码(STM32实现)
stm32·单片机·嵌入式硬件
jghhh014 小时前
九齐单片机2路PWM控制输出实现指南
单片机·嵌入式硬件