pll的设置是这样的:
因为可以选择extal作为时钟源,通过设置CLKSEL寄存器中的ECLKS位,当其为1时指定通过pll处理的时钟作
为内部时钟,否则就直接用extal作为内部时钟,即extal不做相应处理就使用.
假设,ECLKS=1,那么extal时钟源被处理过程的参数就要通过PLLCON寄存器来设置,它们的关系是
NF 1
Fout=Fin * ------- * -------
NR NO
在默认情况下PLLCON=0x0000_2F01,又因为extal输入默认为15MHz,即Fin=15MHz,根据PLLCON中相应位的
设置情况,可以计算出Fout=480MHz.
但这个值还不是直接用到内部时钟的,而要经过一个被称为PLL output clock select的逻辑,通过CLKSEL
中的位[3:1]来指定,
在Fout=480MHz的情况下,有下列对应关系:
CLK[3:1] System clock
0 0 0 58.594KHz
0 0 1 24MHz
0 1 0 48MHz
0 1 1 60MHz
1 0 0 80MHz
1 0 1 Reserved
1 1 0 Reserved
1 1 1 Reserved
可以得到一个对应关系:
当CLK=1时,System clock = Fout/20
当CLK=2时,System clock = Fout/10
......
所以,如果想让System clock=40MHz的话,只需将Fout=240MHz,CLK[3:1]=100.
反推回去,就可以得到PLLCON里面的这位的设置.
当然得注意其他寄存器位的设置。

本文详细介绍了Winbond W90P710微控制器中PLL的配置过程。通过设置CLKSEL寄存器选择EXTAL作为时钟源,并利用PLLCON寄存器调整时钟频率。在默认情况下,EXTAL为15MHz,经过PLL处理后可达到480MHz。系统时钟频率通过CLKSEL的[3:1]位选定,如设置为10,则系统时钟为240MHz/10=24MHz。配置PLL时需注意相关寄存器的其他位设置。
最低0.47元/天 解锁文章
25

被折叠的 条评论
为什么被折叠?



