当前位置:网站首页>由单片机XTALIN引脚和XTALOUT引脚导出的对晶体震荡电路的深入理解
由单片机XTALIN引脚和XTALOUT引脚导出的对晶体震荡电路的深入理解
2022-07-27 17:28:00 【xiebingsuccess】
在单片机使用过程中第一步就是选择单片机的时钟源,常常可以看到如下的电路原理图:

此原理图中使用晶振连接到XTALIN引脚和XTALOUT引脚,给单片机提供时钟频率,下面就来详细分析一下这种电路的工作原理。
单片机的时钟来源一般有以下几种:
1、通过单片机的CLKIN引脚由外部时钟源直接给单片机输入一个方波时钟。
2、像上图所示那样由外部晶振连接单片机的XTALIN引脚和XTALOUT引脚,跟单片机内部的震荡电路一起组成跟个时钟源,通常这种时钟源叫做crystal oscillator (SysOsc),这种时钟源的精度可以到达很高一般用ppm来表示外部晶振的误差。这种振荡器由外部晶振决定频率,振荡器的最大特点就是频率稳定度高。凡是频率的精度和稳定度要求较高的系统都采用石英晶体振荡器,如电子表、计算机的主时钟、高精密度的信号产生器、所有通信系统的主振荡源等
3、internal RC Oscillator (IRC)内部时钟源,通常是一个固定的频率,比如12M,这种时钟的精度可以达到±1.5%。当通信速率比较高的时候,比如串口用115200的波特率进行通信,这时候如果IRC时钟通信就会出现误码;当把通信速率降低,比如2400波特率的时候就能通信正常,所以在高速通信的时候还是需要用到上面第2种时钟源。
4、单片机的专用时钟源,比如dedicated Watchdog Oscillator (WDOsc)专用于看门狗电路的时钟,用于单片机唤醒的定时器的时钟(internal low-power, low-frequency Oscillato),这种时钟源的精度不高,通常只有±40%的精度。
下图是一个单片机NXP824的时钟资源:

将内部IRC时钟通过切换矩阵SWM 切换到输出pin脚CLKOUT,通过示波器可以看到如下的波形,显示IRC时钟位12M。

void CLKOutInit (void)
{
LPC_SWM->PINASSIGN[11] = (LPC_SWM->PINASSIGN[11] & (~(0xFF << 16))) |
(CLKOUT << 16); /* 分配CLKOUT到管脚P0_7 */
/*
* CLKOUTSEL配置
* >bit[1:0] 0x0 IRC oscillator 0x1 Crystal oscillator(SYSOSC)
* 0x2 WDT oscillator 0x3 Main Clock
* >bit[31:2] Reserved
*/
LPC_SYSCON->CLKOUTSEL = 3; /* CLKOUT源选择:MAINCLK */
LPC_SYSCON->CLKOUTUEN = 1; /* 更新CLKOUT时钟源 */
while (!(LPC_SYSCON->CLKOUTUEN & 0x01));
LPC_SYSCON->CLKOUTDIV = 24; /* CLKOUT输出分配系数:24 */
}
由上可知,单片机的时钟源都是由震荡器产生的,下面从网络上收集并整理的资料,主要是加深对震荡电路的理解。
晶体振荡器设计原理
1.1、振荡器的分类

1.2、振荡产生的原理
1.2.1、自激振荡的产生


1.2.2、产生振荡的条件


1.3、起振和振幅
1.3.1、起振过程

1.3.2、振幅的稳定


边栏推荐
猜你喜欢
随机推荐
Gesturedetector (gesture recognition)
pytorch lstm+attention
GestureOverlayView(手势识别2)
SQlife(数据库)
[basic knowledge of deep learning - 39] comparison of BN, LN and WN
An unknown fastcgi error occurred in IIS: 0x80070005
Global function
11.2DHCP
Radiogroup (radio box)
Can go to QQ but can't open the web page
IDEA:解决代码没有提示问题
中国业务型CDP白皮书 | 爱分析报告
SumMenuDemo(子菜单)
静态试验。2021.01 .13
全局函数
NAT 11.16
新库上线 | CnOpenData中国全部专利详细地址数据
疫情下我离职一年,收入增长了10倍
SharePreference(存储)
What's new in helix QAC 2022.2, the ace code static testing tool (2)







