文件名称:时钟分频器-史上最直白的ica教程
文件大小:5.26MB
文件格式:PDF
更新时间:2024-06-23 16:19:18
LPC23XX 中文资料
广州周立功单片机发展有限公司 第4章 计时和功率控制 LPC23xx 用户手册 ©2008 Guangzhou ZLGMCU Development CO., LTD 36 续上表 N M M 舍入值 FREF(Hz) FCCO(Hz) 实际 CCLK(Hz) %误差 2 8789.0625 8789 16384 287.9980 71.9995 -0.0007 3 13183.59375 13184 10922.67 288.0089 72.0022 0.0031 4 17578.125 17578 8192 287.9980 71.9995 -0.0007 5 21972.65625 21973 6553.6 288.0045 72.0011 0.0016 若超过 N=7,则 M 的值超出范围或不被支持,从而得到上面的表。在上表中,计算出 的 M 值被舍入为最接近的整数。如果这个值在 CCLK 中超出操作频率的最大值(72MHz), 那么当该值不超过操作频率最大值的 1/2%时,该值是允许的。 总得来说,当输入时钟为低频率时,更大的 FREF值可以使 PLL 更稳定。甚至在表格的 第一项中,显示了仅为 107ppm 的极小误差。如果这样在应用中还不够精确,那么在第二项 中给出了 7ppm 这种误差更小的情况。 记住,当频率低于约 1MHz 时用作 PLL 时钟源,并非所有的倍频器值都可用。由上面 的例子可知,表 4.11 中所有舍入的 M 值都被支持,这些值可以在表 4.10 中确认。 如果 PLL 计算要求使用不被支持的倍频器值,则必须忽略这些值并检查其它值以找出 最适合的值。从计数值中计数所得的倍频器值也可以是好的选择。 对于表的第二项,写入 PLLCFG 的值将会是 0x12254(N-1=1=0x1; M-1=8788=0x2254)。 4.5.14 PLL设置序列 要使 PLL 初始化运行,那么必须按步骤完成下面的序列: 1. 如果 PLL 已被连接,则用一个馈送序列断开与 PLL 的连接。 2. 用一个馈送序列禁止 PLL。 3. 如果需要,在没有 PLL 的情况下改变 CPU 时钟分频器设置来加速操作。 4. 写时钟源选择控制寄存器来改变时钟源。 5. 写 PLLCFG 并用一个馈送序列使其有效。PLLCFG 仅可在 PLL 被禁止时更新。 6. 用一个馈送序列使能 PLL。 7. 改变 CPU 时钟分频器设置使之与 PLL 一起操作。在连接 PLL 之前完成这个操作是 很重要的。 8. 通过监控 PLLSTAT 寄存器的 PLOCK 位或使用 PLOCK 中断来等待 PLL 实现锁定, 或当 PLL 的输入时钟为低(也就是 32kHz)时等待一个固定的时间。当 PLL 参考频 率(REFCLK 的频率 FREF 与预分频器值分频所得的 PLL 输入频率相等)少于 100kHz 或大于 20MHz 时,PLOCK 的值可能不稳定。在这些情况下,可以假设 PLL 在启动 时间过后稳定下来。当 FREF大于 400kHz 时,这个时间为 500µs;当 FREF少于 400kHz 时,这个时间为 200/FREF 秒。 9. 用一个馈送序列连接 PLL。 值得注意的是不要归并(merge)上面的任何一个步骤。例如,不能用相同的馈送序列 同时更新 PLLCFG 和使能 PLL。 4.6 时钟分频器 PLL 的输出必须被分频以供 CPU 和 USB 模块使用。由于提供了各自的分频器,因此可 单独确定 USB 模块的 CPU 频率,在正常操作下,USB 模块总是需要占空比为 50%的 48MHz