低功耗晶振电路设计

news2024/12/24 9:23:09

晶振电路设计

晶振中负性阻抗的原理

  • 晶振的回路主要由两部分组成, 一部分是激活分支, 用于提供能量给晶振启动直至达到稳定的相位,另一部分是被动分支, 主要由电阻, 两个外部负载电容以及所有的寄生电容, 如下图:
    在这里插入图片描述
    为了确保晶振启动及稳定地工作, 需要确保晶振回路中的负性阻抗是晶振最大等效串联电阻ESR的3倍以上, 如果是高速晶振,需要确保是5倍以上。
  • 晶振的安全系数公式如下:
    在这里插入图片描述
  • 如何测量晶振的负性阻抗, 通过如下的电路图,缓慢增大R(ADD)电阻,观察晶振的工作状态, 直到晶振无法正常启动, 此时R(ADD)的电阻值就是电路中的负性阻抗。
    在这里插入图片描述

电路设计

本文主要参考st的晶振设计指导手册:oscillator-design-guide-for-stm8af-al-s-stm32-mcus-and-mpus-stmicroelectronics.pdf
以下是经典的皮尔斯晶振电路:
在这里插入图片描述
关于晶振负载电容的计算公式:
在这里插入图片描述
比如说:晶振的负载电容CL为15pf, 杂散电容 Cs为5pf,
那么晶振的外部负载电容如下计算:
在这里插入图片描述

晶振的跨导

  • 跨导类似于电导,电导是电阻的倒数,跨导也可以定义为微分电导, 表达式为 ∆I / ∆v。
  • 为了确保晶振稳定启动和运行,芯片的共振器一定要提供足够的能量。 有两种办法可以确认st芯片的振荡器是否与电路匹配。
    1. 需要计算晶振回路中的临界跨导,在这里插入图片描述DT-26晶振的数据参数:
      在这里插入图片描述
      为此我们需要从晶振的手册里面获取等效串联电阻ESR的大小, 也就是40k欧姆, 我们假设寄生电容C0为1.1pf,晶振的额定负载电容CL为12.5pf,则计算如下, 也即是为1.253ua/v., 注意: 一般高速晶振的临界跨导为ma/v, 低速晶振的临界跨导为ua/v
      在这里插入图片描述
      2. 在stm32的产品中,有的产品会指出晶振回路中能提供的最大临界跨导G(m_crit_max)。 我们可以通过LSEDRV来配置不同的驱动等级,以此来获得不同的驱动能力,而我们需要做的就是计算回路中晶振的临界跨导g(mcrit)并通过配置LSEDRV来保证G(m_crit_max)大于g(mcrit)。 如上计算, 在该例子当中,我们就需要选择LSEDRV[1:0] = 10驱动等级,也就是芯片的最大临界跨导为1.7ua/v。
      在这里插入图片描述
      stm32 LSE晶振的不同驱动水平的参数特性:
      在这里插入图片描述
      STM32中各个系列内嵌的振荡器, 其对应的参数指标:
      在这里插入图片描述
      不同的驱动水平对应的不同的晶振负载图, 没有功率节约需求的话, 一般建议使用大负载晶振的, 以此来降低牵引度。在这里插入图片描述
  1. 在st的一部分产品中,如F103,会在手册中指明芯片支持的固定的晶振跨导g(m), 而我们需要做的就是计算晶振的临界跨导g(mcrit),然后, 计算极限增益 gain = g(m)/g(mcrit), 要确保该增益大于5倍, 晶振才能够稳定运行, 计算如下:在这里插入图片描述在这里插入图片描述

如何使晶振的功耗更低

  • 选择负载电阻更小的晶振, 搭配相对应的负载电容也更小, 整体的功耗就能降低, 但是低负载电阻的晶振的价格更贵一些。
  • 电容的大小同时也会影响晶振的频率精度。

如何选择一个STM32兼容的晶振

  1. 选择支持fundamental mode的晶振, 而不是支持overtone modes。

  2. 确定芯片支持的晶振跨导或者芯片的最大临界跨导。

  3. 计算晶振的外部负载电容。

  4. 计算晶振的负性阻抗以及安全系数。 有些晶振厂商会配对好, 如果配对好的话, 就可以跳过2和3步骤。如果负性阻抗不满足条件的话, 更换ESR较小的晶振,以减小RL 或者 适当减小Ci(Cg)和增加Co(Cd),以减小RL。 以下公式有待进一步考证, 来源于
    High-Performance Crystal Oscillator Circuits: Theory and Application这篇论文。
    在这里插入图片描述

  5. 计算激励功率,使其小于晶振的最大额定功率,避免晶振损坏。

  6. 计算晶振的PPM精度范围, 具体公式如下: 在这里插入图片描述
    在这里插入图片描述

如何用示波器测量波形

无源晶振内部核心部件为石英晶片,通过电极连接至晶振管脚,石英晶片没有极性,因此晶振两端的信号一样,频率相等,波型为正弦波。如果上电实测无源晶振两端信号存在差异,如频率或波形不完全等同,属于正常现象,可归因于所测引脚可能受到内部放大电路或周边杂散电容影响所致。
由于晶振对电容负载较为敏感,示波器探头如果设置在x1档位,电容较大。因此,我们需要对示波器的探头进行配置。将探头调整到x10档位, 此时探头的电容会更小,对信号敏感的电路, 影响也较小。

  • 如果测量的是晶振波形, 要将探头的耦合方式选择交流模式
  • 将探头配置为x10档位,示波器有 x1和x10两种档位,其中x1为不衰减状态,x10为衰减10倍状态。如果选择了x10档位,示波器上的刻度值需要乘以10才能得到真实的电压值。例如,如果示波器上显示的是2V刻度,实际测量值则为20V。
  • 对探头进行电容补偿, 此时需要使用电容补偿棒调节探头的补偿电容值,补偿大致如下:
    请添加图片描述

如何保证芯片输出功率不会损伤晶振

驱动水平DL是在晶体中耗散的功率, 因此必须要做限制, 否则石英晶体会工作失败,因为过度的机械振动。 正常来说, 厂商会对该值进行说明, 如DT-26这个型号, 其激励功率就是1uw, 最大2uw, 如果超出这个值就会导致晶振毁坏或者老化加剧。
有两种办法可以用来计算晶振的激励功率:

  • DL = ESR x (IQ)^2 IQ表示通过晶振电流的有效值, 通过示波器如下测量电流 ,如果过大的话, 则需要增加Rext电阻进行限流, 测量电流的话,晶振引脚空间小,不好操作。
    在这里插入图片描述
  • 因为 IQ(RMS) = 2 π F x VRMS x Ctot, 所以,计算激励功率的办法也可以通过电压来计算,我们需要通过示波器测量晶振引脚的电压, 并获取到电压的峰峰值, 还需要知道示波器探头的电容Cprobe, 以及晶振的外部负载电容CL1, 公式如下:
    在这里插入图片描述
    在这里插入图片描述
    我们假设CL1为15pf, Cs为5pf, Cprobe为 10pf(补偿范围是 10pf到25pf), 假设Cprobe最差为35pf,晶振的等效电阻为40K欧姆,Vpp为0.6v, 带入上述公式可得如下, 激励功率为DL = 0.21uw, 从厂商的手册可知, DT-26的晶振的额定功率为1uw, 因此,该功率不会损伤晶振。
    在这里插入图片描述

关于晶振PCB设计建议

  • 外部杂散电容和电感要控制在一个尽可能小的范围内,从而避免晶振进入非正常工作模式或 引起起振不正常等问题。另外,振荡器电路旁边要避免有高频信号经过。
  • 晶振的走线长度越短越好, 长度相等更好, 晶振的引脚尽可能靠近芯片,
  • 接地平面用于信号隔离和减少噪声。例如:在晶振的保护环(译注:(Guard ring),指器件或 走线外围成一圈用于屏蔽干扰的导线环,一般要求理论上没有电流从该导线环上经过)下直 接敷地有助于将晶振和来自其他PCB层的噪声隔离开来。要注意接地平面要紧临晶振但只限 于晶振下面,而不要将此接地平面敷满整个PCB板。
  • 像图7所示来布地线是一个好的作法。这种布线方法将振荡器的输入与输出隔离开来,同时 也将振荡器和临近的电路隔离开来。所有的VSS过孔不是直接连到地平面上(除晶振焊盘之 外),就是连接到终端在CL1和CL2下方的地线上。
  • 在每一对VDD与VSS端口上连接去藕电容来平滑噪声。
    在这里插入图片描述
    在这里插入图片描述

ST芯片公司可供参考的晶振选型

st的芯片设计手册中都会提供对应的晶振型号以供用户参考。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/650723.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

手写RPC总结篇

协议制定:client到server做交互的通信协议,比如request response 网络端点peer 难点1 : Jetty嵌入 ◆jetty Server ◆ServletContextHandler ◆ServletHolder jetty server 起到网络监听的作用ServletContextHandler注册到jetty server中ServletHolde…

测试开发之Python自动化 Pytest 之 fixture

Pytest 之 fixture unittest 和 nose 都支持 fixture 的,但是 fixture 在 pytest 里使用更灵活。也算是 pytest 的一个闪光点吧可以理解为一个跟 setup 和 teardown 这种前后置类似的东西。但是比它们要强大、灵活很多 fixtur 当做参数传入 # -*- coding: utf-8 -*-import p…

图像处理实战02-yolov5目标检测

yolov5 YOLOv5 是一种目标检测算法,它是 YOLO (You Only Look Once) 系列算法的最新版本。YOLOv5 采用了一种新的架构,它包括一个基于 CSPNet (Cross Stage Partial Network) 的主干网络以及一系列改进的技巧,如多尺度训练、数据增强、网络混…

互联网行业-镭速文件传输系统方案

互联网行业是一个快速变化和高度竞争的行业,这一行业需要传输大量的数据、代码和文件。在互联网企业的生产和运营过程中,需要传输各种敏感和大型的文件,例如业务报告、数据分析、软件代码等。这些文件需要在不同的部门、不同的地点之间高效地…

微服务springcloud 07 hystrix + turbine 集群聚合监控

01.hystrix dashboard 一次只能监控一个服务实例&#xff0c;使用 turbine 可以汇集监控信息&#xff0c;将聚合后的信息提供给 hystrix dashboard 来集中展示和监控 02.新建 sp10-turbine 项目 03.pom.xml <?xml version"1.0" encoding"UTF-8"?&…

C语言---malloc(0)会产生什么结果,真的是空指针吗?

前言 &#xff08;1&#xff09;几天前在一个交流群中看到有人说&#xff0c;面试问malloc(0)会怎么样是真的恶心。 &#xff08;2&#xff09;这个突然激起了我的好奇心。居然还可以malloc(0)&#xff1f;&#xff01; &#xff08;3&#xff09;经过测试最后&#xff0c;发现…

基于Java学生课外知识学习网站设计实现(源码+lw+部署文档+讲解等)

博主介绍&#xff1a; ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ &#x1f345; 文末获取源码联系 &#x1f345; &#x1f447;&#x1f3fb; 精…

PulsarMQ系列入门篇

文章目录 介绍&#xff1a;部署安装讲解:安装单机版本测试&#xff08;Linux下&#xff09;&#xff1a; 介绍&#xff1a; PulsarMQ 现托管于apache Apache 软件基金会顶级项目&#xff0c;2016年由雅虎公司开源的分布式多租户消息中间件 &#xff0c;是下一代云原生分布式消息…

PaddleOCR #hello paddle: 从普通程序走向机器学习程序 - 初识机器学习

这篇示例向你介绍普通程序跟机器学习程序的区别&#xff0c;并带着你用百度飞桨框架&#xff0c;实现第一个机器学习程序&#xff0c;并初步认识机器学习。 作为一名开发者&#xff0c;你最熟悉的开始学习一门编程语言&#xff0c;或者一个深度学习框架的方式&#xff0c;可能是…

万字长文:大模型训练避坑指南

自 2022 年 11 月底 ChatGPT 发布以来&#xff0c;大模型的热度持续发酵&#xff0c;相信高屋建瓴的讨论大家已经看了很多了。今天我们选择从实用角度&#xff0c;分别就算力、算法、工程、数据和团队等方向讨论了训练一个千亿参数量级的大语言模型和 ChatGPT 需要些什么&#…

4.17 TCP三次握手 4.18滑动窗口 4.19TCP四次挥手

4.17 TCP三次握手 TCP 是一种面向连接的单播协议&#xff0c;在发送数据前&#xff0c;通信双方必须在彼此间建立一条连接。所谓的“连接”&#xff0c;其实是客户端和服务器的内存里保存的一份关于对方的信息&#xff0c;如 IP 地址、端口号等。 TCP 可以看成是一种字节流&a…

i.MX 91x推出,飞凌嵌入式携手NXP打造更强大、更经济、更安全的解决方案

NXP在COMPUTEX 2023上发布了i.MX 91应用处理器系列&#xff0c;作为i.MX 9系列的入门级产品&#xff0c;i.MX 91x简化了高性价比边缘设备的开发过程&#xff0c;助力构建需要安全性、高性能表现以及Linux支持的可扩展、高可靠性的平台&#xff0c;可满足下一代基于Linux的物联网…

【数据库三】MySQL索引

MySQL索引、事务与存储引擎 1.MySQL索引1.1 索引的概念1.2 索引的作用​1.3 索引的副作用​1.4 创建索引的原则依据​ 2.索引的分类和创建2.1 普通索引2.2 唯一索引2.3 主键索引2.4 组合索引2.5 全文索引 3. 查看索引4.删除索引5. 知识点总结 1.MySQL索引 1.1 索引的概念 索引…

基于html+css的图展示127

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

Unity光照贴图的切换,实现黑夜和白天效果

有这么一个需求&#xff0c;不能使用实时光来进行动态控制光照开关&#xff0c;但是又要实现白天和黑夜的效果&#xff0c;我的场景中有大概十几个点光源和平行光 实现步骤&#xff1a; 一、模型原模原样复制到另一个场景中&#xff08;因为贴图只能存在于当前的场景文件夹&am…

618私藏好物推荐!看这份清单就够了!

又到了一年一度的618&#xff0c;相信大家的购物车已经堆得满满的&#xff0c; 部分人已经选好了自己想要的东西&#xff0c;但也有一部分人还在纠结自己到底应该买什么。今天就给大家分享我的618私藏好物&#xff0c; 如果你想在这个夏天买到自己心仪的好物&#xff0c;建议你…

IIC总线 测温度和湿度

iic.c #include "iic.h"extern void printf(const char* fmt, ...); /** 函数名 &#xff1a; delay_us* 函数功能&#xff1a;延时函数* 函数参数&#xff1a;无* 函数返回值&#xff1a;无* */ void delay_us(void) {unsigned int i 2000;while(i--); } /** 函数…

字符设备驱动的内部实现

1.inode号的功能 &#xff1a;①inode号是文件存在于文件系统的唯一标识1 ②同时也是索引当前文件的inode结构体的索引导 2.文件信息结构体&#xff1a;只要文件存在于文件系统中&#xff0c;那么内核中一定会存在一个struct inode结构体&#xff0c;这个结构体里面存放了文件…

详解Http的Content-Type

目录 1.概述 2.常用类型 2.1.application/x-www-form-urllencoded 2.2.application/json 3.Spring MVC支持的编码 3.1.实验 3.2.适配器 3.3.自定义适配器 1.概述 HTTP&#xff08;HyperText Transfer Protocol&#xff09;&#xff0c;超文本传输协议。超文本&#xf…

从redis-trib.rb到集群加减节点实战

redis-trib.rb工具介绍 redis-trib.rb是redis集群管理工具&#xff0c;可以检查集群、创建删除节点、挪key、批量下发实例命令等等。 不是没有redis-trib.rb就没有集群管理了&#xff0c;没有redis-trib.rb照样可以管理集群。redis本身就有集群相关管理命令&#xff0c;redis-…