热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

晶振两端的谐振电容有特殊要求吗_晶振外接电容的选择与计算

在设计嵌入式单片机时,通常会使用到晶振,有源晶振使用起来比较简单,供电后就能工作。无源晶振稍微复杂一些,需要负载电容。那么什
48cb7713dfaab43bbd2b417679a6801b.png

在设计嵌入式单片机时,通常会使用到晶振,有源晶振使用起来比较简单,供电后就能工作。无源晶振稍微复杂一些,需要负载电容。那么什么是负载电容呢?它的容值是如何选择的?本次我们一起来探究下。

负载电容是指晶振要正常震荡所需要的电容。换句话说,晶振的频率就是在它提供的负载电容下测得的,能最大限度的保证频率值的误差,也能保证温漂等误差。

晶振的负载电容值是已知数,在出厂的时候已经定下来。单片机晶振上两个电容是晶振的外接电容,分别接在晶振的两个脚上和对地的电容,一般在几十pf。在选择外接电容的时候是根据晶振厂家提供的晶振要求选值的,一般外接电容是为了使晶振两端的等效电容等于或接近负载电容。要求高的场合还要考虑ic输入端的对地电容。然后根据确定的负载电容推算,外接电容会影响到晶振的谐振频率和输出幅度。

那么,如何来选择外接电容?

晶振的负载电容=[(Cd*Cg)/(Cd+Cg)]+Cic+△C

Cd,Cg为分别接在晶振的两个脚上和对地的电容。

Cic(集成电路内部电容)+△C(PCB上电容)经验值为3至5pf。

Cd,Cg两个电容的取值都是相同的,或者说相差不大,如果相差太大,容易造成谐振的不平衡,容易造成停振或者干脆不起振。

从上面公式可以看出,在Cic和△C较小被忽略时

晶振的负载电容=Cd/2

由上面的公式可以看出,晶振两端所接电容通常是所要求的负载电容的两倍。比如负载电容15pf的话,两边个接27pf的差不多了。

需要注意的是:在许可范围内,C1,C2值越低越好。C值偏大虽有利于振荡器的稳定,但将会增加起振时间。在低功耗设计中晶体的选择非常重要,尤其带有睡眠唤醒的系统,往往使用低电压以求低功耗。

由于低供电电压使提供给晶体的激励功率减少,造成晶体起振很慢或根本就不能起振。这一现象在上电复位时并不特别明显,上电时电路有足够的扰动,很容易建立振荡。在睡眠唤醒时,电路的扰动要比上电时小得多,起振变得很不容易。

在振荡回路中,晶体既不能过激励(容易振到高次谐波上)也不能欠激励(不容易起振)。晶体的选择应考虑以下几个要素:谐振频点、负载电容、激励功率、温度特性、长期稳定性。

有的晶振推荐电路甚至需要串联电阻RS,它一般用来来防止晶振被过分驱动。过分驱动晶振会渐渐损耗减少晶振的接触电镀,这将引起频率的上升,造成频率偏移,加速老化。

在实际电路中,也可以通过示波器观察振荡波形来判断振荡器是否工作在最佳状态。工作良好的振荡波形应该是一个漂亮的正弦波,峰峰值应该大于电源电压的70%。若峰峰值小于70%,可适当减小外接电容。反之,若峰峰值接近电源电压且振荡波形发生畸变,则可适当增加电容。

如果正弦波形的波峰,波谷两端被削平,而使波形成为方形,则晶振被过分驱动。这时就需要用电阻RS来防止晶振被过分驱动。判断电阻RS值大小的最简单的方法就是串联一个5k或10k的微调电阻,从0开始慢慢调高,一直到正弦波不再被削平为止。通过此办法就可以找到最接近的电阻RS值。

选择晶振合适的外接电容很重要。你学会如何计算了没有?



推荐阅读
  • Docker的安全基准
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • Python 异步编程:深入理解 asyncio 库(上)
    本文介绍了 Python 3.4 版本引入的标准库 asyncio,该库为异步 IO 提供了强大的支持。我们将探讨为什么需要 asyncio,以及它如何简化并发编程的复杂性,并详细介绍其核心概念和使用方法。 ... [详细]
  • Java 中的 BigDecimal pow()方法,示例 ... [详细]
  • 本文详细介绍了如何在BackTrack 5中配置和启动SSH服务,确保其正常运行,并通过Windows系统成功连接。涵盖了必要的密钥生成步骤及常见问题解决方法。 ... [详细]
  • 探讨如何高效使用FastJSON进行JSON数据解析,特别是从复杂嵌套结构中提取特定字段值的方法。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文介绍如何利用动态规划算法解决经典的0-1背包问题。通过具体实例和代码实现,详细解释了在给定容量的背包中选择若干物品以最大化总价值的过程。 ... [详细]
  • 本文详细探讨了Java中的24种设计模式及其应用,并介绍了七大面向对象设计原则。通过创建型、结构型和行为型模式的分类,帮助开发者更好地理解和应用这些模式,提升代码质量和可维护性。 ... [详细]
  • 本文基于刘洪波老师的《英文词根词缀精讲》,深入探讨了多个重要词根词缀的起源及其相关词汇,帮助读者更好地理解和记忆英语单词。 ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 数据管理权威指南:《DAMA-DMBOK2 数据管理知识体系》
    本书提供了全面的数据管理职能、术语和最佳实践方法的标准行业解释,构建了数据管理的总体框架,为数据管理的发展奠定了坚实的理论基础。适合各类数据管理专业人士和相关领域的从业人员。 ... [详细]
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 深入理解Java中的volatile、内存屏障与CPU指令
    本文详细探讨了Java中volatile关键字的作用机制,以及其与内存屏障和CPU指令之间的关系。通过具体示例和专业解析,帮助读者更好地理解多线程编程中的同步问题。 ... [详细]
  • 本文介绍了如何使用JQuery实现省市二级联动和表单验证。首先,通过change事件监听用户选择的省份,并动态加载对应的城市列表。其次,详细讲解了使用Validation插件进行表单验证的方法,包括内置规则、自定义规则及实时验证功能。 ... [详细]
author-avatar
mobiledu2502861465
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有