【单片机】【710】振荡器和系统时钟

710提供7个系统时钟选择

  • FRC振荡器(快速RC,内部标称值为7.37MHz)
  • 带PLL的FRC振荡器
  • 主(XT、HS、EC)振荡器
  • 带PLL的主振荡器
  • 辅助(LP)振荡器
  • LPRC振荡器
  • 带后分频器的FRC振荡器

关于晶振频率啊,指令周期啥的请参照以前的随笔1937之定时器的那篇

而710的主振荡器能选以下三种作为其时钟源

  1. XT(晶振):3-10MHz,就是单片机上的那个,一般上面的是8MHz
  2. HS(高速晶振):10-40MHz,估计自己用的那个上面没有,和上面的XT在一个位置
  3. EC(外部时钟):外部时钟信号直接加到OSC1(63脚)。

还有一个辅助(LP)振荡器,为低功耗而设计的。接在SOSCI和SOSCO引脚(73和74脚)标称值为32.768KHz。

710的工作频率Fcy = Fosc/2(因为是16位的,8位的是/4);

接下来是为了获得更高速的工作频率Fcy使用了PLL(锁相环),提供给PLL的VCO(压控振荡器)输入必须在0.8-8MHz范围内。虽然自己用的单片机上是8MHz的,可以不用管。但是即使你用16MHz也没问题,在进入VCO之前有一个预分频N1(PLLPRE<4:0>的CLKDIV<4:0>来选择)

这里还有一个倍频因子M,须设定值使产生的VCO输出频率在100MHz到200MHz范围内。然后再经过后分频N2(值为2、4、8),使Fosc在12.5-80MHz范围内,即可产生6.25-40MIPS的指令频率。至于为什么必须要后分频,大概是因为锁相环虽能提到高频状态,但是却不稳定吧

好了,这里有一个重要公式

Fosc = Fin*(M/(N1*N2))      //此处的Fosc只是系统时钟哦,只是为了获得更高的工作频率而选择了PLL模式,只需要8MHz的话就不用设置这么多了。没办法,要有更多的功能就要有更多的功夫。

Fin就是我们选择的晶振的频率

M由PLLDIV<8:0>控制,例PLLDIV = 0x1E;那么M = 32

N1由PLLPRE<4:0>控制,例PLLPRE = 0;那么N1 = 2

N2由PLLPOST<1:0>控制,例PLLPOST = 0;那么N2 = 2

 N2取值:

PLLPOST<1:0>

00 = 输出/2

01 = 输出/4(默认)

10 = 保留

11 = 输出/8

N1取值

PLLPRE<4:0>

00000 = 输入/2(默认)

00001 = 输入/3

.

.

.

11111 = 输入/33

M取值

PLLDIV<8:0>

000000000 = 2

000000001 = 3

000000010 = 4

.

.

000110000 = 50(默认)

.

.

111111111 = 513

感觉。。。M可以取很大欸。锁相环这么厉害啊

原文地址:https://www.cnblogs.com/iteou/p/6127558.html