完全不一样,甚至可以说是两种性质完全不同的波形。
简单直接地回答:
-
晶振电路(指晶体和负载电容所在的谐振部分) :输出的是一个漂亮的正弦波。
-
单片机内部电路(指经过整形后的时钟路径) :输出的是一个边沿陡峭的方波(通常是 CMOS 电平)。
1. 为什么波形会不一样?
可以把整个时钟系统看作一个 "信号加工流水线" ,晶振电路和单片机内部电路处于这条生产线的不同工位。
| 特性 | 晶振电路(谐振级) | 单片机内部(缓冲/整形级) |
|---|---|---|
| 信号本质 | 模拟信号(正弦波) | 数字信号(方波) |
| 波形特征 | 平滑、圆润,无尖锐拐角 | 陡峭、近似矩形,有过冲或振铃 |
| 产生原因 | 晶体与电容的谐振网络天然产生正弦波,放大器工作在线性区 | 施密特触发器、反相器将正弦波"削平、整形"成方波,电路工作在饱和/截止区 |
| 电压摆幅 | 通常较小(如 0.2V ~ 1.5V),取决于偏置点和负载电容 | 通常是满摆幅(0V 到 VDD,如 0V~3.3V 或 0V~5V) |
| 你测试的位置 | 使用无源晶振时,在 OSC_OUT(有时是 OSC_IN)引脚上测到的波形 | 无法直接测内部节点。只能在单片机其他引脚(如 CLK_OUT、MCO(主时钟输出))或通过程序配置输出系统时钟测到。 |
2. 为什么晶振输出必须是正弦波?
这由物理原理决定:
-
谐振网络本质 :晶体 + 电容构成的谐振网络,其频率特性是典型的带通滤波器。这个网络只允许其谐振频率附近的正弦波通过,高次谐波被强烈衰减。因此,网络两端的电压波形自然是正弦波。
-
放大器线性区:皮尔斯振荡器的放大器(反相器)被偏置在线性区(通过反馈电阻)。放大器工作在线性区时,输出正弦波失真最小,频率最稳定。如果强行让它输出方波(进入饱和区),晶体会被"过驱动",导致频率不稳、老化加快,甚至损坏。
3. 为什么单片机内部需要方波?
数字电路(触发器、逻辑门、计数器)的开关状态由电压高低 决定,对波形形状不敏感,但对跳变的陡峭程度(边沿速率) 非常敏感。正弦波的上升沿缓慢(几十到几百纳秒),用它直接触发数字电路会导致:
-
逻辑状态不确定:在缓慢上升的过程中,输入电压可能长时间处于"非0非1"的中间区域,导致触发器误判或振荡。
-
功耗增加:缓慢的边沿会使CMOS反相器中的两个MOS管同时导通(短路电流),造成额外功耗。
-
时序抖动:缓慢的边沿容易受噪声干扰,导致触发时间不确定。
因此,单片机内部需要一个 "整形电路" (通常是施密特触发器),将正弦波变成边沿陡峭的方波。整形后的方波,上升/下降时间可能只有几纳秒,非常适合驱动数字逻辑。
4. 总结对比表
| 维度 | 晶振电路输出 | 单片机内部时钟信号 |
|---|---|---|
| 波形 | 正弦波 (sine wave) | 方波 (square wave) / 时钟脉冲 |
| 电压范围 | 较小(通常 Vpp ≈ 0.3V ~ 1.5V) | 满摆幅(0V 到 VDD) |
| 边沿陡峭度 | 缓慢(几十到几百纳秒) | 陡峭(几纳秒) |
| 可测位置 | OSC_IN, OSC_OUT 引脚(使用无源晶振时) |
需通过 CLK_OUT/MCO 引脚输出,或无法直接测量 |
| 作用 | 作为谐振器,为振荡提供选频和正反馈 | 作为驱动信号,同步数字逻辑、外设、CPU |
| 电路状态 | 放大器工作在线性区 | 逻辑门工作在饱和/截止区 |
5. 用示波器测量的实用技巧
-
测量晶振引脚 :能看到的是正弦波 ,幅值可能较小,这是正常的。如果看不到波形,检查探头是否拨到
×10档(减小对电路的负载),并确认电路已通电且晶体未损坏。 -
测量系统时钟 :如果需要确认单片机内部的时钟频率,不要 去晶振引脚那里算(因为可能经过 PLL 倍频),而应该查看单片机数据手册,找到 CLK_OUT (时钟输出)或 MCO (主时钟输出)引脚,通过程序配置将该引脚输出系统时钟,然后用示波器测量那里(此时看到的是方波)。