PLL 源有两个, 一个是 MPLL, 另一个是 UPLL. MPLL 用于 CPU 用外设,UPLL 只用于 USB.
MPLL 中又有 FCLK; HCLK; PCLK
FCLK: 用于 CPU 内核.
HCLK: 用于 AHB 总线(SRAM 等高速外设)
PCLK: 用于 APB 总线(UART 等低速外设在这个总线上)
与 MPLL 相关的寄存器:
LOCKTIME 寄存器:
MPLL 启动后需要等待一段时间 (Lock Time),使得其输出稳定。位[23:12] 用于 UPLL,位 [11:0] 用于 MPLL。使用确省值 0x00ffffff 即可
CLKDIVN:
用来设置 FCLK:HCLK:PCLK 的比例关系,默认为 1:1:1 经典值设为 0x03,即 FCLK:HCLK:PCLK=1:2:4(FLCK:HCLK:PCLK), 具体设置在三星数据手册第七章中有个表.
MPLLCON:
MPLLCON 中分三部份.M|P|S, 其中 MDIV[19:12],PDIV[9:4],SDIV[1:0]
m=MDIV+8, p=PDIV+2, s=SDIV 要注意 M,P,S 的大小写, 值是不一样的
CLKCON:
外设时钟控制与内存电源模式. 在这里可以开启与关闭外设的时钟, 用于节电管理, 默认全部外设时钟都是开始的! 与 Cortex 的不同. 要在应用中去关闭以省电!
CLKSLOW:
慢速时钟? 好像是说用于在 PLL 切换时的等待时间, 以后是否再对 MPLL 分频再到 FCLK. 保持默认即可.
CAMDIVN:
摄像头的时候分频设置. 这个现在用不上, 以后再看
对于时钟的计算 PLL 的输出,FCLK=MPLL 的输出,MPLL=(2mfin)/(p*2s). 注意大小写. 其他的 HCLK 与 PCLK 按 CLKDIVN 设定进行分频.
注意: 启用了 PLL 后,FCLK 应不能低于 200M! HCLK 与 PCLK 的时钟不能大于额定值, 否则部份外设失效