
pic18f系列单片机.ppt
23页PIC18F系列单片机,组成原理及应用,第二章 振荡器,当在对应的引脚接入一个晶体,则此晶体的振荡频率就作为单片机的系统时钟频率fosc,则系统时钟周期Tosc=1/ fosc 每4个系统时钟周期Tosc构成一个“指令周期”; 系统时钟的获取有8种方式,以适用于不同的应用场合这8种模式的设置是由“器件配置字”中的对应位来设定的,而“器件配置位”是非易失性的,在单片机编成、调试和下载程序时设定并写入单片机内部特定的单元2.1 振荡器的8种模式,EC 外部时钟振荡模式; ECIO 外部振荡模式,使能I/O引脚; LP 低功耗晶体振荡模式; XT 晶体/谐振器振荡模式; HS 高速晶体/谐振器振荡模式; RC 外接电阻/电容振荡模式; RCIO 外接电阻/电容振荡模式,使能I/O引脚模式; HS4 高速晶体/谐振器振荡模式,使能4倍频PLL乘 法器时钟系统原理图,,,,,,,,,,,,,,,,4×PLL,,,,,,,,,,,,,MUX,,,,T1OSCEN,其他模块的时钟源选项,,,时钟源选择 FOSC2:FOSC0,,施密特触发器,TIMER1振荡器,主振荡器,OSC2,OSC1,T1OSO,T1OSI,TSCLK,,SLEEP,,,,2.2 振荡器控制寄存器OSCCON,OSCCON寄存器用于系统时钟在主振荡器与TIMR1之间的切换控制。
其中D7~D1:未用位,读出值为0; D0:SCS系统时钟切换位 如果OSCSEN=0 ,且T1OSCEN=1则:SCS=1时,系统时钟切换到Timer1振荡器/时钟引脚;SCS=0时,系统时钟使用主振荡器/时钟引脚 如果OSCSEN=0 、T1OSCEN为其它状态,SCS=0R/W-1,D0,D7,要想将系统的时钟由主振荡器切换到TIMR1振荡器,必须事先使能TIMR1振荡器; 对TIMR1的使能是通过TIMR1控制寄存器T1CON中的T1OSCEN的置一来实现的; 如果TIMR1没有被使能,则对CSC的置一将会被忽视,且CSC被强制清零,系统继续使用主振荡器工作;,2.3 振荡器的配置,PIC18F系列单片机的振荡器有8种振荡模式具体由器件配置位中的3个位来设置:FOSC2、FOSC1和FOSC0;,,LP、XT和HS三种模式的主要区别在于在于内部振荡器的增益不同; 增益越高其消耗的电流就越大所以在增益满足要求的前提下选择增益最小的增益模式; 在PIC18F系列单片机的振荡源有主振荡源和TIMR1振荡源,从系统时钟源向另一个时钟源切换时应有软件实现 系统默认的8种模式都可以实现时钟源向TIMR1的切换,即通过OSCCON寄存器中的CSC=1来设置,但是必须事先将TIMR1使能(T1OSCEN=1),并且OSCEN=0。
2.4 晶体振荡器/陶瓷谐振器,在XT、LP和HS4 振荡模式下,OSC1、OSC2引脚连接一个晶体或陶瓷谐振器以产生振荡 在EC、ECIO模式下,外部时钟信号可由OSC1引脚输入G1,,,G2,,,,RF,RS,XTAL,C2,C1,到内部电路,执行SLEEP指令,到内部电路,PIC16,G3,OSC1,OSC2,,,晶体、时钟模式、C1、C2和RS的最佳选择,PIC micro振荡器的内部电路是一个并联谐振电路,其外接的晶体是以并联的形式接入电路负载电容在20pf~32pf之间,当C1、C2接近此值时晶体振荡频率最接近理想值; 在理想条件下,电容的选择应满足下列要求:在能维持芯片正常工作的最高温度和最低电压VDD下仍能保证电路起振如果芯片能够在这样的极端情况下工作,设计者就完全有把握在其他温度和电压的条件下电路都能正常工作!,在最高增益(最高电压、最低温度下),输出正弦波不应有限幅(过驱动);在低增益(低电压、高温度)下,输出的波形应当足够大这样才能满足电路的要求 一种加速电路起振的方法:C2>C1电路上电时通过晶体的相位移增大,从而加速起振 外接电容除了可以使晶体振荡稳定外,其电容值过大会降低电路的增益。
C2越大,电路增益就越小 如果其它外围电路的参数都确定好后,电路仍出现过驱动时可以通过外接RS的方法降低电路增益电路的过驱动会导致电路的振荡频率跃变到一个高次谐波上 在使用示波器测量输出波形时,要注意探头分布电容的影响(大约10pf )在正常情况下:OSC2段输出的波形应当是一个平滑的正弦波,其峰峰值应当在4~5V之间(VDD=5V) 检验方法:在最高电压和最低温度下测量输出波形应最大如果在VDD和VSS附近波形出现限幅或失真,而电容过大又影响频率时可以通过增加RS的方法但是RS过大又会造成电路易受干扰所以RS应当在10K左右,当RS过大可以适当增加C2的方法协调总之RS、C2的值尽可能的接近厂家的要求(RS<10K、C2=20~32pf) 与系统上电起振相比:处于睡眠状态下的起振是最困难的这是因为电容在睡眠状态下都充有一定电压,不利于起振所要求的信号相位移动,因此会需要更多的时间建立稳定的振荡频率外部时钟的输入,使用外部时钟有两种模式:EC和ECIO模式; 在此时,OSC1输入的阻抗较高,可以由CMOS电路驱动OSC2为时钟输出端,且频率为外部输入频率的1/4OSC1PIC18Fxxx OSC2,,,,,时钟来自外部系统Fosc,Fosc/4,EC模式原理图,在ECIO模式下:OSC1输入的阻抗较高,可以由CMOS电路驱动OSC1 ; OSC2 用作通用I/O引脚。
OSC1PIC18Fxxx OSC2,,,,,时钟来自外部系统Fosc,I/O引脚,ECIO 模式原理图,外部晶体振荡电路,尽管在一些模式中,通过单片机的OSC2 引脚可以向外输出信号作为整个系统的时钟,但是 microchip 还是不推荐这种方式在整个系统中如果需要一个时钟源,最好的方法是设计一个外部晶体振荡电路,一方面为PIC提供时钟信号,同时也满足其它电路、部件的需求一)并联式晶体振荡电路,4.7K电阻提供负反馈、决定着电路的增益; 10K可调电阻用以降低电路增益,避免过驱动5V,4.7K,10K,10K,20pF,20pF,10K,,,,,PIC16 OSC1,到其它芯片,XTAL,(二)串联式晶体振荡电路,,,,,,,,,,,,,,,,,,,,,,,,,,,,330K,330K,0.1μF,,,PIC16 OSC1,到其它芯片,XTAL,2.5 外部RC振荡器,RC、RCIO所使用的一种低成本振荡器模式,应用于对系统时钟要求不高的场合 在RC模式下,OSC2会输出一个1/4 fosc 信号; 在RCIO模式下,OSC2 被设置为I/O端口线R,C,Vdd,,,,,内部时钟,G1,,,①,②,C>20pf,OSC1,OSC2,,¼ fosc 或I/O,RC的振荡频率会受下列因素影响: 供电电压; 外接电阻、电容值; 工作温度; 芯片工艺的变化,芯片封装的引线影响(特别在C的值较小时)。
如果没有C或C值较小的时候,外部分布电容会极大地影响到振荡的稳定性,如PCB版的布线等 外接电阻越大、频率的误差也就越大(电路泄露电流作用明显加大); 外界电容越小,频率的误差也就越大(外界影响增加)R,C,Vdd,,,,,内部时钟,G1,,,①,②,,,,,,,,,,,,,,,,,,Vdd,Vc,VG1,触发器的翻转阀值电压,2.6 HS4(4×PLL)振荡器模式,利用芯片内部的“锁相环电路”将输入的频率提高4倍; 在担心因为使用过高的外部晶体振荡频率对整个系统产生EMI(Electro Magnetic Interference— 电磁干扰) 情况下,使用HS4 模式特别有效如使用10MHz的晶体,则内部时钟频率被提升到40MHz; 锁相环电路时又在HS4模式下才启用,否则被禁止; 振荡模式在编程、下载时设定2.7 切换到低功耗时钟源,该功能可以实现系统从默认的时钟源(由器件配置中的FOSC2:FOSC0来设定)转换到TIMR1振荡器的时钟源转换的方法: 清零震荡系统时钟切换时能(/OSCEN)配置位,使能该功能将TIMR1配置一个低频的晶体(32.768K); 通过OSCCON寄存器中的SCS位置一使能TIMR1 振荡器为系统振荡器(此时TIMR1 必须被使能否则SCS的作用将被忽略)。
当SCS=0时,系统时钟源由FOSC2:FOSC0选定当出现任何形式的复位操作时,SCS都将会被清零 与振荡的8种模式设定不同,时钟系统的切换时由软件实现的,而模式的设定是一次性设定、不能动态修改。












