ARM系统时钟架构与施密特触发器
第一部分:系统时钟架构基础
- 时钟源
· 外部时钟源:由外部晶振提供,频率为24MHz。
· 时钟系统负责为CPU内核、总线及各类外设提供稳定的工作时钟。
- 锁相环(PLL)
· PLL(锁相环电路)用于将低频的输入时钟倍频到系统所需的高频时钟。
· 外部24MHz晶振输入后,分别供给多个PLL进行倍频。
- 各个PLL的功能划分
· PLL1(ARM PLL):专门为Cortex-A7内核提供时钟,频率可配置,目标频率1056MHz。
· PLL2(System PLL / 528 PLL):系统PLL,固定528MHz,用于产生系统总线及外设时钟。
· PLL3(USB1 PLL / 480 PLL):固定480MHz,用于USB及相关外设。
· PLL4(Audio PLL):用于音频相关设备,如麦克风、扬声器、蜂鸣器。
· PLL5(Video PLL):用于视频相关设备,如显示器、摄像头。
· PLL6(Ethernet PLL):用于有线网卡等以太网设备。
· PLL7(USB2 PLL):仅用于USB UTMI(物理层)测试,内部与USB1 PLL连通。
第二部分:时钟分频与分配机制
- 相位分数分频器(PFD)
· PFD(Phase Fractional Divider)用于对PLL输出进行分频,产生不同频率的时钟分支。
· PLL2的PFD输出:PFD0输出352M,PFD1输出594M,PFD2输出400M(或396M),PFD3输出297M。
· PLL3的PFD输出:PFD0输出720M,PFD1输出540M,PFD2输出508M,PFD3输出454.7M。
- 分频器(Divider)分类
· 固定分频器(SD):分频比固定不变。
· 2位分频器:分频范围1~4。
· 3位分频器:分频范围1~8。
· 6位分频器:分频范围1~64。
- 多路选择器(MUX)与时钟门控(CG)
· 多路选择器(MUX):用于从多个时钟源中选择一路作为输出。
· 时钟门控(CG):用于在不需要时关闭时钟,降低功耗。
· 旁路模式:在系统启动或PLL未锁定时,直接使用24MHz晶振时钟,绕过PLL。
- 关键寄存器与配置参数
· 通过CCM_ANALOG_PLL_ARM、CCM_ANALOG_PFD_528n、CCM_ANALOG_PFD_480n等寄存器配置PLL和PFD。
· 分频因子可通过CACRR、CBCDR、CSCMR1、CBCMR等寄存器设置。
第三部分:系统时钟路径与时钟根
- ARM_CLK_ROOT(内核时钟)
· 来源:由PLL1输出1056MHz,经过3位分频器(分频比1~8)后得到。
· 目标频率:通过CACRRARM_PODF配置,通常工作在396MHz~528MHz。
· 作用:直接驱动Cortex-A7内核。
- AHB_CLK_ROOT(总线时钟)
· 来源:由PLL2(528MHz)经过3位分频器后得到。
· 目标频率:通过CBCDRAHB_PODF配置,典型频率132MHz。
· 作用:驱动ARM-uSDHC、EPIT、I2C等总线外设。
- PERCLK_CLK_ROOT(外设时钟)
· 来源:由PLL2经过3位分频器及6位分频器后得到。
· 目标频率:通过CSCMR1PERCLK_PODF配置,典型频率66MHz。
· 作用:驱动ADC、WDOG等外设。
- IPG_CLK_ROOT(接口时钟)
· 来源:同样由PLL2分频得到,频率约66MHz。
· 作用:驱动部分外设接口。
- 启动流程中的时钟切换
· 启动时,先选择osc_clk(24MHz晶振),让ARM暂时工作在24MHz。
· 配置PLL1及其他PLL,等待PLL锁定。
· 将PLL1输出切换为系统时钟(通过step_clk选择),最终改回PLL_main_clk。
· 注意:配置PLL前需先设置好二分频设置,避免ARM内核故障。
第四部分:施密特触发器原理
- 核心作用
· 用于将带噪声的模拟信号或缓慢变化的边沿信号,整形为干净的数字方波信号。
· 利用正反馈机制,实现信号去抖动和抗噪声。
- 电路构成
· 包含运算放大器(Op-Amp)、反相器、电阻网络(r1、r2、r3)。
· 在特定条件下,r1 = r2 = r3 = r。
- 阈值计算与触发点
· 上触发点(上门限):当输出电压Vout为5V时,同相输入端电压V+ = 5V × r / (0.5r + r) = 3.3V。
· 下触发点(下门限):当输出电压Vout为0V时,同相输入端电压V+ = 5V × 0.5r / (0.5r + r) = 1.6V。
- 迟滞特性
· 上触发点与下触发点之间的电压差(3.3V - 1.6V = 1.7V)称为迟滞电压。
· 输入信号在上升过程中需高于3.3V才触发翻转,下降过程中需低于1.6V才触发翻转。
· 该特性有效防止了信号在阈值附近的微小波动导致的反复翻转,增强了抗干扰能力。
- 信号处理效果
· 输入一个带有噪声或尖峰的缓慢边沿信号。
· 经过施密特触发器处理后,输出边沿陡峭、无抖动的高质量数字方波。
关键概念辨析
PLL vs PFD
· PLL:锁相环,用于将输入时钟倍频到高频。
· PFD:相位分数分频器,对PLL输出进行分频,产生多个频率分支。
分频器 vs 时钟门控
· 分频器:改变时钟频率,用于调整目标模块的工作速率。
· 时钟门控:不改变频率,仅控制时钟的通断,用于节能。
旁路模式 vs PLL模式
· 旁路模式:直接使用外部晶振时钟,不经过PLL,频率低且稳定,用于启动。
· PLL模式:使用PLL倍频后的高频时钟,用于系统正常运行。
施密特触发器的迟滞
· 迟滞电压是为了提高抗噪声容限,避免输入信号在单一阈值附近震荡产生误触发。