Marin说PCB之via的使用对于传输线的影响

2024-02-03 07:30

本文主要是介绍Marin说PCB之via的使用对于传输线的影响,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一,过孔的概念:

     过孔也称金属化孔,在双面板多层板中,为连通各层之间的印制导线,在各层需要连通的导线的交汇处钻上一个公共孔,即过孔。在工艺上,过孔的孔壁圆柱面上用化学沉积的方法镀上一层金属,用以连通中间各层需要连通的铜箔,而过孔的上下两面做成圆形焊盘形状,过孔的参数主要有孔的外径和钻孔尺寸。

通常来说过孔是多层PCB的重要组成部分,起着连接不同层信号的作用。过孔不仅可以是通孔,还可以是掩埋式。所谓通孔式过孔是指穿通所有敷铜层的过孔;掩埋式过孔则仅穿通中间几个敷铜层面,仿佛被其它敷铜层掩埋起来,从其工艺制程上来说,PCB过孔一般分为3类,即盲孔(blind via)、埋孔(buried via)和通孔(through via),如图1所示

 当然了如果按照PCB过孔的作用的话,又可以分为以下三类:
A PCB板上的信号VIA(正常我们板子上信号通常是使用孔径10MIL左右的,特殊区域里面可以使用8MIL或者是更小的孔,高速信号上换层孔尽量是使用小的孔,减少其寄生电容对于信号传输带来的影响,正常可以使用8MIL孔径的VIA,这个孔径的大小时和板厚由关系的,一般正常板子的过孔的厚经比要求不低于101(通孔设计),现在很多板厂都可以做到121,甚至大于这个数值的)


B PCB板上的电源和GND的VIA。(电源和GND孔正常使用10MIL或者是12MIL孔径的VIA,尤其是需要特别注意一下电源层面需要打孔换层的地方不能使用小孔经的,而且换层的via的数目尽量留一些余量,不要做到刚刚满足载流)


C PCB板上一些电源或者是PHY芯片的散热GND过孔。(散热GND孔正常使用10MIL或者是

12MIL)

凡事都是由两面性的,当然过孔也是不列外的,有优点也有缺点的。其优点就是方便了信号连通,替代了之前跳线连接工艺,使得制作工艺更加简单了,这样就会大大的提高了我们得生产效率,但是同样也有缺点,过孔存在寄生电容的同时也存在着寄生电感,在高速数字电路的设计中,过孔在传输线上表现为阻抗不连续的断点,其会造成信号的反射过孔的寄生电感带来的危害往往大于寄生电容的影响。在电源系统中它的寄生串联电感会削弱旁路电容的贡献,减弱整个电源系统的滤波效用。

我们可以把过孔的等效电路模型为一个电感两端各串联一个接地电容,如图所示:

从等效电路模型可知,过孔本身存在对地的寄生电容,假设过孔反焊盘直径为D2,过孔焊盘的直径为D1,PCB板的厚度为T, 板基材介电常数为ε,则过孔的寄生电容大小近似于:

过孔的寄生电容会给电路造成的主要影响是延长了信号的上升时间,降低了电路的速度,从而影响信号的传输质量。举例来说,对于一块厚度为50MilPCB板,如果使用内径为10Mil,焊盘直径为20Mil的过孔,焊盘与地铺铜区的距离为32Mil,则我们可以通过上面的公式近似算出过孔的寄生电容大致是:C=K*ε0*3.14*0.050x0.020/(0.032-0.020),这部分电容会引起的上升时间的变化。尽管单个过孔的寄生电容引起的上升延变缓的效用不是很明显,但是如果走线中多次使用过孔进行层间的切换,设计时就要慎重考虑。我们在实际设计中可以通过增大过孔和铺铜区的距离(Anti-pad)或者减小焊盘的直径来减小寄生电容。

刚刚我在上面也提到了过孔在产生寄生电容的同时也会寄生电感,其公式如下

其中L指过孔的电感,h是过孔的长度,d是中心钻孔的直径。从式中可以看出,过孔的直径对电感的影响较小,而对电感影响最大的是过孔的长度。仍然采用上面的例子,可以计算出过孔的电感为:L=5.08x0.050[ln(4x0.050/0.010)+1]=1.015nH 。如果信号的上升时间1ns,那么其等效阻抗大小为:XL=πL/T10-90=3.19Ω。这样的阻抗在有高频电流的通过已经不能够被忽略,特别要注意,旁路电容在连接电源层和地层的时候需要通过两个过孔,这样过孔的寄生电感就会成倍增加。

二,如何使用过孔:

       以上说了那么多,那我们在设计板子的时候该如何使用过孔呢?

  1. 首先确认下过孔的种类,我们可以根据板子上的芯片类型大致得出一个结论:板子是使用通孔来做和盲埋孔来设计。正常0.65PICTCH以上(包含)的BGA芯片都是可以使用通孔来设计的,0.65PICTCH以下的BGA芯片的设计是需要做HDI了。
  2. 确认下过孔的尺寸。这个可以根据板子的板厚层叠确认下来可以得出我们板子上可以使用的VIA的尺寸,正常板厂要求过孔的厚经比是101(通孔设计),现在很多板厂的加工能力都是大于这个设计经验值了,具体的还是按照你们对接的制板厂的能力而定吧。

3,确认过孔的数目,这个对于高速线尤其重要。一些芯片的设计手册中的对于高速信号部分都会提到其换层孔的数目的要求的,我们在做设计的时候要严格按照手册上推荐的过孔的数目来设计,不可超过其推荐值。

三,过孔的优化设计:

我们把过孔的类型和尺寸都已经确认下来了,剩下的就需要我们在设计PCB板子的时候对于一些高速信号线做出一些优化上的设计了。由于过孔是导致信号阻抗不连续的一个主要因素,我们是可以通过降低过孔的寄生电容、电感来最小化过孔的影响,从而改善信号线的阻抗,具体操作如下:

1,去除非功能焊盘,在allegro出gerber的时候是可以设置这个参数的。(随着过孔厚径比增大,去除非功能焊盘有助于增强过孔的可靠性,但是小厚径比过孔去除非功能焊盘后可靠性会降低,这点是需要我们注意的。

2,增加antipad尺寸。(减少过孔的寄生电容)

具体的反焊盘的尺寸大小要按照板子的层叠和板材,利用仿真软件得出一个具体的反焊盘的尺寸的大小,这个是之前是有一个设计的经验值:一般是按照VIA的反焊盘的尺寸可以根据ANTI PAD的尺寸来做就好了,如下图所示

但是这个数值最好是以实际仿真给出的数值为准的。我们是可以使用仿真软件计算找到最优的值设置反焊盘的尺寸的,这样就会降低阻抗的波动对信号传输的影响了。

3,减少过孔的stub。(过孔的寄生电感主要来源,一般信号速率大于5G左右了就需要考虑残桩带来的影响了,至于怎么做可以减少过孔的stub,一般是使用背钻工艺或者是HDI设计来

还有一些PCB设计上需要注意事项就是:

1,高速线走线尽量不要换层,需要换层的地方加上回流GND孔而且尽量保持对称放置。这个VIA的距离信号过孔也是有要求的,一般是要按照实际的仿真的结果来设置的。之前仿真同事推荐的高速线换层的GND过孔距离信号VIA的间距的数值是小于200MIL,不过这个是按照实际的板子的层叠仿真来的,这个是没有固定数值的。

2,过孔间距不要太密集,防止相邻的高速线走线没有参考平面,同样也会使得一部分电源层面电流密度过大,不能均匀分布了,对于电源完整性有一定的影响的。

3,重要的单端信号打孔换层的地方记得在周围1MM左右加上GND回流via

4,电源和GND信号的过孔尽量就近打孔,过孔和管脚之间的引线最好是越短越好。也可以考虑一下并联打多几个过孔(实际上还是要看板子的布线空间了),这样可以减少等效电感。

5,打孔尽量在保证信号质量的前提下做到美观整齐。

以上就是小编对于via使用的一些设计经验总结,当然若有不足之处,希望路过的大神们指点一二。

这篇关于Marin说PCB之via的使用对于传输线的影响的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/673390

相关文章

从零教你安装pytorch并在pycharm中使用

《从零教你安装pytorch并在pycharm中使用》本文详细介绍了如何使用Anaconda包管理工具创建虚拟环境,并安装CUDA加速平台和PyTorch库,同时在PyCharm中配置和使用PyTor... 目录背景介绍安装Anaconda安装CUDA安装pytorch报错解决——fbgemm.dll连接p

Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)

《Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)》文章介绍了如何使用dhtmlx-gantt组件来实现公司的甘特图需求,并提供了一个简单的Vue组件示例,文章还分享了一... 目录一、首先 npm 安装插件二、创建一个vue组件三、业务页面内 引用自定义组件:四、dhtmlx

使用Python创建一个能够筛选文件的PDF合并工具

《使用Python创建一个能够筛选文件的PDF合并工具》这篇文章主要为大家详细介绍了如何使用Python创建一个能够筛选文件的PDF合并工具,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录背景主要功能全部代码代码解析1. 初始化 wx.Frame 窗口2. 创建工具栏3. 创建布局和界面控件4

一文详解如何在Python中使用Requests库

《一文详解如何在Python中使用Requests库》:本文主要介绍如何在Python中使用Requests库的相关资料,Requests库是Python中常用的第三方库,用于简化HTTP请求的发... 目录前言1. 安装Requests库2. 发起GET请求3. 发送带有查询参数的GET请求4. 发起PO

Java中的Cursor使用详解

《Java中的Cursor使用详解》本文介绍了Java中的Cursor接口及其在大数据集处理中的优势,包括逐行读取、分页处理、流控制、动态改变查询、并发控制和减少网络流量等,感兴趣的朋友一起看看吧... 最近看代码,有一段代码涉及到Cursor,感觉写法挺有意思的。注意是Cursor,而不是Consumer

Node.js net模块的使用示例

《Node.jsnet模块的使用示例》本文主要介绍了Node.jsnet模块的使用示例,net模块支持TCP通信,处理TCP连接和数据传输,具有一定的参考价值,感兴趣的可以了解一下... 目录简介引入 net 模块核心概念TCP (传输控制协议)Socket服务器TCP 服务器创建基本服务器服务器配置选项服

如何使用CSS3实现波浪式图片墙

《如何使用CSS3实现波浪式图片墙》:本文主要介绍了如何使用CSS3的transform属性和动画技巧实现波浪式图片墙,通过设置图片的垂直偏移量,并使用动画使其周期性地改变位置,可以创建出动态且具有波浪效果的图片墙,同时,还强调了响应式设计的重要性,以确保图片墙在不同设备上都能良好显示,详细内容请阅读本文,希望能对你有所帮助...

Rust中的注释使用解读

《Rust中的注释使用解读》本文介绍了Rust中的行注释、块注释和文档注释的使用方法,通过示例展示了如何在实际代码中应用这些注释,以提高代码的可读性和可维护性... 目录Rust 中的注释使用指南1. 行注释示例:行注释2. 块注释示例:块注释3. 文档注释示例:文档注释4. 综合示例总结Rust 中的注释

Linux使用cut进行文本提取的操作方法

《Linux使用cut进行文本提取的操作方法》Linux中的cut命令是一个命令行实用程序,用于从文件或标准输入中提取文本行的部分,本文给大家介绍了Linux使用cut进行文本提取的操作方法,文中有详... 目录简介基础语法常用选项范围选择示例用法-f:字段选择-d:分隔符-c:字符选择-b:字节选择--c

使用Go语言开发一个命令行文件管理工具

《使用Go语言开发一个命令行文件管理工具》这篇文章主要为大家详细介绍了如何使用Go语言开发一款命令行文件管理工具,支持批量重命名,删除,创建,移动文件,需要的小伙伴可以了解下... 目录一、工具功能一览二、核心代码解析1. 主程序结构2. 批量重命名3. 批量删除4. 创建文件/目录5. 批量移动三、如何安