各位同学大家好,欢迎继续做客电子工程学习圈,今天我们继续来讲这本书,硬件系统工程师宝典。
上篇我们说到在电源完整性分析时,如何合理使用去耦电容,知道了对于不同频率的信号噪声采用不同类型的去耦电容。今天我们来看看电源完整性分析的目的和方法。
电源完整性设计的目的:
1.控制电源噪声,提供干净稳定的电压;
2.实时响应负载对电流的快速变化;
3.为其他信号提供低噪声回流路径
电源产生波动的原因是实际电源平面存在阻抗,在瞬间电流流过时会产生一定的电压浮动。因此,就要保证足够低的电源平面的阻抗,实现电源的完整性设计。电源系统的目标阻抗定义为:
电源目标阻抗=最大允许文波电压/瞬时动态电流,即ZPDN=V*Ripple/△Imax其中,V是电源电压,Ripple是允许的电压波动范围,一般为5%或3%,△Imax为负载芯片的最大瞬态电流变化量,可以采用负载最大工作电流的一半。
对电源与地平面间的阻抗特性分析可以采用仿真软件进行,可以得到一个PDN(电源分配网络)的输入阻抗,例如下图所示:
PDN网络的输入阻抗
由于不能确定电源的负载电流工作频点,设计要求整个频率范围内都要满足PDN的目标阻抗。虽然因去耦的需求会使用更多的电容,但是使设计具有广泛的实用性。
如下图所示是上图例子中加入高低频去耦电容后的PDN网络的频率阻抗特性:
加入高低频去耦电容后的PDN网络的频率阻抗特性
1.电源供电模块VRM设计
供电模块VRM一般放置在电源入口,指DC/DC和LDO,对于此类电路的噪声是由稳压芯片决定的,只能根据Datasheet进行详细设计,合理布局布线。
2.直流压降及通流能力
此类噪声主要由走线的直流电阻与寄生电感造成,需要考虑线路板过孔的通流能力,同时也要考虑线宽与电流的关系,如下图所示。
当电流通过狭窄区域时,会产生较大的电流密度,从而导致PCB局部温度升高。我们应该使板上的电流密度分布均匀,最大值不要超过常用的经验门限(100A/mm2),避免出现走线局部电流密度大导致热可靠性问题。
常温下铜皮走线的最大通流能力
3.电源内层平面的设计
PCB内层的电源平面不但可以给器件提供电源,还为信号提供回流。电源平面和地平面都可以作为信号的回流路径,但地信号在单板的分布比单一电源网络要广,地过孔在PCB广泛分布,回流信号会沿着地孔回流到另一个地平面。
电源平面和地平面会构成平面电容,且随着平面距离越小,容值越大,这为高速信号门电路的快速翻转提供能量保障。因此在PCB叠层设计时,应尽可能使电源平面与地平面成对出现且距离接近,距离一般控制在5mil内,最大不超过10mil。若电源平面和地平面之间的距离较大,则需要在芯片电源和地之间额外加去耦电容,增强电源和地平面之间的电容耦合性。
为了使电源具有良好的完整性,元器件布局时一般以相邻面为地平面参考层。在设计走线参考平面层时,尽可能让所有高速信号的参考平面都选择地平面为参考平面。增加地平面参考层是改善信号质量及PCB EMC特性的有效设计方法。信号层需要避免直接相邻,防止信号互相干扰,如无法避免则两个信号层之间走线应采用横平竖直的走线,不重叠走线,增大两个相邻信号层之间的间距。
对于BGA类供电电源,有时需要在一个电源平面上布置多个电平的电源,这就需要进行电源平面的分割。分割时应尽可能使各平面的边界形状规则,面积尽可能大。举例如下图所示:
电源平面的分割
电源平面分割要注意:
1.分割方式要简洁合理,满足载流能力
2.考虑不同电压平面之间的爬电距离,相邻的不同压值的电源平面电压值差越大,爬电距离也应设计得越大
另外,整理了一些电子工程类的资料,分享给大家,目前有模拟电路、单片机、C语言、PCB设计、电源相关、FPGA、EMC、物联网、Linux相关学习资料,还有针对大学生的资料包,后续还会有更多资料分享给大家,助力大家学习,成就梦想~
链接可在往期文章中找(在文章的最后有链接)~
出于纯粹的兴趣,我很好奇如何按顺序创建PI,而不是在过程结果之后生成数字,而是让数字在过程本身生成时显示。如果是这种情况,那么数字可以自行产生,我可以对以前看到的数字实现垃圾收集,从而创建一个无限系列。结果只是在Pi系列之后每秒生成一个数字。这是我通过互联网筛选的结果:这是流行的计算机友好算法,类机器算法:defarccot(x,unity)xpow=unity/xn=1sign=1sum=0loopdoterm=xpow/nbreakifterm==0sum+=sign*(xpow/n)xpow/=x*xn+=2sign=-signendsumenddefcalc_pi(digits
我有一个模型:classItem项目有一个属性“商店”基于存储的值,我希望Item对象对特定方法具有不同的行为。Rails中是否有针对此的通用设计模式?如果方法中没有大的if-else语句,这是如何干净利落地完成的? 最佳答案 通常通过Single-TableInheritance. 关于ruby-on-rails-Rails-子类化模型的设计模式是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co
我将应用程序升级到Rails4,一切正常。我可以登录并转到我的编辑页面。也更新了观点。使用标准View时,用户会更新。但是当我添加例如字段:name时,它不会在表单中更新。使用devise3.1.1和gem'protected_attributes'我需要在设备或数据库上运行某种更新命令吗?我也搜索过这个地方,找到了许多不同的解决方案,但没有一个会更新我的用户字段。我没有添加任何自定义字段。 最佳答案 如果您想允许额外的参数,您可以在ApplicationController中使用beforefilter,因为Rails4将参数
目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称
项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU
我在我的项目中有一个用户和一个管理员角色。我使用Devise创建了身份验证。在我的管理员角色中,我没有任何确认。在我的用户模型中,我有以下内容:devise:database_authenticatable,:confirmable,:recoverable,:rememberable,:trackable,:validatable,:timeoutable,:registerable#Setupaccessible(orprotected)attributesforyourmodelattr_accessible:email,:username,:prename,:surname,:
我刚刚安装了带有RVM的Ruby2.2.0,并尝试使用它得到了这个:$rvmuse2.2.0--defaultUsing/Users/brandon/.rvm/gems/ruby-2.2.0dyld:Librarynotloaded:/usr/local/lib/libgmp.10.dylibReferencedfrom:/Users/brandon/.rvm/rubies/ruby-2.2.0/bin/rubyReason:Incompatiblelibraryversion:rubyrequiresversion13.0.0orlater,butlibgmp.10.dylibpro
我正在运行Ubuntu11.10并像这样安装Ruby1.9:$sudoapt-getinstallruby1.9rubygems一切都运行良好,但ri似乎有空文档。ri告诉我文档是空的,我必须安装它们。我执行此操作是因为我读到它会有所帮助:$rdoc--all--ri现在,当我尝试打开任何文档时:$riArrayNothingknownaboutArray我搜索的其他所有内容都是一样的。 最佳答案 这个呢?apt-getinstallri1.8编辑或者试试这个:(非rvm)geminstallrdocrdoc-datardoc-da
我已经通过提供MagickWand.h的路径尝试了一切,我安装了命令工具。谁能帮帮我?$geminstallrmagick-v2.13.1Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingrmagick:ERROR:Failedtobuildgemnativeextension./Users/ghazanfarali/.rvm/rubies/ruby-1.8.7-p357/bin/rubyextconf.rbcheckingforRubyversion>=1.8.5...yescheckingfor/
我正在尝试创建密码规则来设计可恢复的密码更改。我通过passwords_controller.rb做了一个父类(superclass),但我需要在应用规则之前检查用户角色,但我所拥有的只是reset_password_token。 最佳答案 假设您的模型是用户:User.with_reset_password_token(your_token_here)Source 关于ruby-on-rails-设计通过reset_password_token获取用户,我们在StackOverflow