电路基础知识——常见晶振电路

文章介绍了有源和无源晶振的特性,包括精度、稳定性、引脚配置以及晶振的选型参数,如工作电压、输出电平、频率精度等。此外,还讨论了晶振的类型,如SPXO、VCXO和TCXO,以及PCB设计中应注意的事项,如负载电容和热传导的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、有源晶振

有源晶振的精度则可以达到0.1ppm。精度越高,频率稳定性也更好。有源晶振在稳定性上要胜过无源晶振。有源晶振一般4个脚,一个电源,一个接地,一个信号输出端,一个NC(空脚)。有源晶振自身就能震动。

注: R1、C3需根据实际进行调整处理,电源必须是稳压的且电源引线尽量短,并尽量与系统中使用晶振信号的芯片共地。

二、无源晶振

无源晶振有2个引脚,需要借助于外部的时钟电路(接到主IC内部的震荡电路)才能产生振荡信号,自身无法振荡。两个外接电容能够微调晶振产生的时钟频率。

1、晶振负载电容选择

不同公司生产的同一标称频率的晶振,所需要的负载电容CL(Load capacitance)可能不同。通过公式计算电容容值

某晶振数据
某公司晶振数据

晶振外部负载电容计算C_{e}

C_{e}=2\times C_{L}-\left ( C_{s}+C_{i} \right )

C_{L}为晶振容性负载,可通过查阅晶振数据手册获取

C_{s}为PCB走线电容,可通过查询芯片数据手册获取

C_{i}为芯片引脚寄生电容,可通过查询芯片数据手册获取,在3-6pF之间

例子:假设晶振为晶振容性负载C_{L}=0pF,走线线电容C_{s}=2.8pF,引脚电容C_{i}=6pF,则晶振外部负载电容C_{e1}=C_{e2}=2\times 20pF-\left ( 2.8pF+6pF \right )=31.2pF,因此晶振外围电容容值选择33pF。

3、晶振并联一个1M电阻(KHz晶振电路,并联电阻通常为10M欧,MHz晶振,并联电容通常为1M欧左右)

并联电阻的作用: 
1.降低晶体的Q值,Q值降低后晶体起振比较容易。

2.抑制EMI,EMI不过时,可减小阻值。

3.提供直流工作点。

4.使门电路工作于线性区,并联1M电阻增加了电路中的负性阻抗(-R),即提升了增益,缩短了晶振起振时间,达到了晶振起振更容易之目的。

5.在低温环境下振荡电路阻抗也会发生变化,当阻抗增加到一定程度时,晶振就会发生起振困难或不起振现象给晶振并联1MΩ电阻,增加振荡电路稳定性。

注:并联电阻不能太小,串联电阻不能太大。否则,在温度较低的情况下不易起振。

4、串联电阻

串联电阻的作用:

1.降低晶体的激励功率,防止损坏。

2.限制振荡幅度。

3、给晶振同时串联一个100Ω的电阻,减少晶振的频率偏移程度。

三、晶振选型关键参数

1、基准频率:晶振在完全理想条件下的振荡频率。

2、工作电压:晶振的工作需要外界提供一定的电源电压,晶振输出的时钟信号上的噪声与电源噪声紧密相关,因此在晶振器件资料上,对电源的质量有一定的要求。

3、输出电平:信号电平种类有许多种,时钟信号的电平也多种多样。在选型中,应根据所需时钟电平的种类,选择对应的晶振。

4、工作温度范围:根据环境温度要求的不同,应选择对应的工作温度范围。

5、频率精度:对应不同的工作温度范围,可选择不同的频率精度。参数是晶振最重要的参数,包含了由于温度变化、电源电压波动、负载变化等因素引起的频率偏差。

6、老化度:在恒定的外界条件下测量晶振频率,频率精度与时间之间的关系。

7、启动时间:从上电到晶振输出频率的偏差达到规定的频率精度所需要的时间。

四、晶振分类

晶振的分类常用的晶振分为三类:标准封装晶体振荡器SPXO、压控式晶体振荡器VCXO、温度补偿式晶体振荡器TCXO。

(1)标准封装晶体振荡器SPXO

无温度补偿功能,也无电压控制功能,其频率特性完全取决于晶体以及外部振荡电路,频率精度最高可以达到士10ppm,是晶振中精度最差的一个种类。

主要参数

1、基准频率:多种频率可供选择。

2、工作电压:支持1.8V、2.5V、3.3V、5.0V。

3、输出电平:输出时钟信号电平为CMOS。

4、工作温度范围:SPXO不具备温度补偿功能,因此在PCB布局时,SPXO器件应远离发热源。

5、频率精度:频率精度已完全包括了温度变化、电源电压波动、老化等因素引起的频率偏差。

6、老化度:由于老化对晶振精度的影响已经包含在频率精度中。

7、启动时间:最大值为10ms。

8、占空比:在双边沿采样的时序计算中,应考虑占空比参数。

9、时钟抖动(Jitter):两个抖动参数:一个是RMS Jitter(12kHz~20MHz),典型值为0.5ps;另一个是RMS Jitter(全频段),典型值为2.5ps。

(2)压控式晶体振荡器VCXO

VCXO常用在锁相环(PLL,Phase-Locked Loop)电路中。

主要参数:

1、基准频率:从77.76MHz开始,最高可达200MHz,在这个区间中有多种频率可供选择。

2、输出电平:输出时钟信号的电平为LVPECL。

3、工作温度范围:根据环境温度要求的不同,应选择对应的工作温度范围。

4、频率--温度稳定度:±20ppm,表示在工作温度范围内,频率偏移的最大值。VCXO不具备温度补偿功能,因此在PCB布局时,VCXO器件应远离发热源。

5、电源电压:3.3V,这是VCXO的工作电压。

6、控制电压:调整范围为0.3~3V,除了电源电压外,VCXO还需要控制电压,以调节输出频率。

7、牵引范围(Pull Range):从中央电压开始,将调整电压向最小值或最大值的方向调整时,输出频率的变化范围。

8、绝对牵引范围(Absolute Pull Range):绝对牵引范围=牵引范围(由于温度变化、老化、电源波动、负载变化造成的偏移范围),在根据芯片所要求的频率偏移最大量选型VCXO时,应参考绝对牵引范围,而不是牵引范围。

9、频偏敏感度:在牵引范围一调整电压曲线图中,“Gain”曲线代表频偏敏感度。以ppmV为单位。

10、线性度:指“Gain”曲线的线性程度。该参数值越小越好。一般而言,VCXO的牵引范围越宽,线性度越差。

11、调制带宽:VCXO能支持的调整电压最大带宽。

12、时钟抖动:四个抖动参数,一是RMS Jitter(12kHz20MHz),典型值为0.3ps;二是RMS Jitter(50kHz80MHz),典型值为0.5ps;三是RMS Jitter(全带宽),典型值为3ps;四是Jitter.蜂-蜂值,典型值为20ps.

(3)温度补偿式晶体振荡器TCXO

TCXO是利用附加的温度补偿电路以减小环境温度对振荡频率影响的一种晶体振荡器。其特点是:频率精度远远高于SPXO和VCXO。
 

主要参数:

1、基准频率:最高可达27MHz,有多种频率可供选择。

2、输出电平:输出时钟信号电平为CMOS。

3、工作温度范围:根据环境温度要求的不同,应选择对应的工作温度范围。

4、电源电压:3.3V或5V。

5、控制电压:TCXO提供一个引脚作为控制电压的输入,以实现类似于VCXO利用控制电压调整输出频率的功能,当不使用该功能时,应将此引脚接地。

6、启动时间:最大值为2ms。

7、相位噪声:

8、频率精度:频率精度参数已完全包括了温度变化、电源电压波动、老化等因素引起的频率偏差。根据芯片对时钟精度的要求,对TCXO选型时,这是最重要的一项参数。

五、PCB设计注意事项

一是为了保持负载电容的恒定。晶振的两个焊盘与其下方的平面层之间会形成寄生电容,这个电容会影响晶振的频偏,导致系统工作不正常。为了减小寄生电容,需要在晶振下方的平面层做挖空处理,使得焊盘到平面的距离增大。


二是为了抑制热传导导致的频偏。晶振的频率会受到温度的影响,如果周围有发热的器件,会通过铜皮传导到晶振,造成频偏。为了隔绝热传导,需要在晶振下方的平面层做挖空处理,使得晶振与发热器件之间没有铜皮连接

<think>嗯,用户想用Python的Pandas库根据CSV文件中的数值给单元格上色,正数红色,负数绿色,然后保存为XLSX。首先,我需要回忆一下Pandas处理Excel样式的方法。记得Pandas本身不能直接设置单元格样式,需要依赖openpyxl或者xlsxwriter这样的引擎。 用户提到的是CSV文件,所以第一步应该是用Pandas读取CSV。然后,处理数据,根据正负值应用不同的颜色。可能需要使用到DataFrame的style属性,这个在Pandas里是用来设置样式的。比如,用Styler对象的applymap方法,根据单元格的值返回对应的CSS样式。 然后,保存为XLSX的时候,需要指定引擎,通常是openpyxl,因为xlsxwriter可能不支持某些样式功能。同时,可能需要安装openpyxl库,用户可能需要先安装这个。 另外,要注意的是,直接使用to_excel保存的话,可能需要用Styler的to_excel方法,这样才能保留样式。但用户可能不知道这个,所以得详细说明步骤。 可能还需要处理CSV中没有样式信息的问题,所以读取的时候正常读取,之后处理数据,应用样式,再保存。需要检查代码是否正确,比如定义颜色函数,是否正确应用到每个单元格,然后保存时是否正确使用引擎。 另外,用户可能需要示例代码,所以得提供一个完整的例子,从读取CSV,到应用样式,保存为XLSX。还要注意路径问题,确保用户替换正确的文件路径。 可能遇到的问题:用户可能没有安装必要的库,比如openpyxl,或者pandas版本过低。需要提醒安装这些库。另外,颜色设置是否正确,比如使用十六进制颜色码还是名称,可能需要用Excel支持的颜色格式。 最后,确保代码中的注释清晰,说明每一步的作用。可能还需要提到其他优化点,比如性能问题,如果数据量大,applymap可能会比较慢,可以考虑向量化操作或者条件格式的优化方法,但用户的问题可能暂时不需要这些高级内容,放在相关问题里可能更好。</think>根据需求,可以使用`pandas`配合`openpyxl`引擎实现单元格条件着色。以下是完整实现方案: ### 一、实现步骤 1. **读取CSV文件** ```python import pandas as pd df = pd.read_csv('input.csv') # 替换为实际文件路径 ``` 2. **定义颜色映射函数** ```python def color_cell(val): if val > 0: return 'background-color: #FF0000' # 红色(RGB十六进制) elif val < 0: return 'background-color: #00FF00' # 绿色 return '' ``` 3. **应用样式并保存** ```python styled_df = df.style.applymap(color_cell) styled_df.to_excel('output.xlsx', engine='openpyxl') ``` ### 二、关键说明 1. **引擎依赖**:需安装`openpyxl`库(`pip install openpyxl`) 2. **颜色格式**:支持标准CSS颜色值(名称/十六进制/RGB) 3. **性能优化**:大数据量时建议使用`Styler.apply`替代`applymap`[^3] ### 三、完整示例代码 ```python import pandas as pd # 1. 读取CSV文件 df = pd.read_csv('financial_data.csv') # 2. 定义颜色函数 def color_conditions(value): if isinstance(value, (int, float)): if value > 0: return 'background-color: #FF0000; color: white' elif value < 0: return 'background-color: #00FF00' return '' # 3. 创建样式对象并保存 styled = df.style.applymap(color_conditions) styled.to_excel('colored_output.xlsx', engine='openpyxl') ``` ### 四、验证方法 1. 检查输出文件是否包含颜色标记 2. 确认正负数单元格颜色符合预期 3. 验证数值格式保持完整[^4]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值