详细的FPGA电源系统设计(附器件选型)

详细的FPGA电源系统设计(附器件选型)

        某型FPGA的内部逻辑模块需要1.2V的电源

V_{CCINT}

进行供电,并要求其稳定性在±50mV之内,如下图所示。

       本文采用TPS54302电源转换器将12V输入电压转换为1.2V输出电压,其最大输出电流为3A。要使得所产生的电压稳定在1.2V±50mV,需要考虑输出电压纹波、输出电流阶跃变化所引起的输出电压变化、输出电压的偏置及PCB线路的电压压降等因素。

       输入电容的选择

       输入电容分为两种,一种是大容量电容,一种是滤波电容。当输入电源距离TPS54302有几英尺以上时就需要大容量电容。TPS54302的datasheet推荐使用47 uF的电解电容。选择额定电压为35V的松下EEEFK1V470AP作为大容量电容。TPS54302的datasheet推荐使用10 uF的陶瓷电容作为退耦电容,并且另推荐使用一个0.1 uF的陶瓷电容进行高频滤波。初步选择型号为GCM32ER71E106KA42的10 uF陶瓷电容以及型号为GRM155R71E104KE14的0.1 uF陶瓷电容。

        下面对这两个电容的额定电压和额定纹波电流参数进行核定。根据TPS54302 datasheet公式4可以计算出

\Delta V_{IN}

为193.5mV。值得注意的是,根据上下文的语句,公式4中所用到的bulk capacitor value和maximum series resistance of the bulk capacitor应该指的是这个10 uF陶瓷电容的参数。由此可知,10 uF和0.1 uF的额定电压需要大于

V_{IN}+\Delta V_{IN} = 12.1 V

。GCM32ER71E106KA42和GRM155R71E104KE14的额定电压均为25V,大于12.1V,满足要求。根据TPS54302 datasheet公式5可知,最坏情况下的纹波电流能够达到1.5 A。经过在SimSurfing软件中查询GCM32ER71E106KA42的Temp.rise可知,需要5A的纹波电流才能使得该电容温升达到20℃。

        根据如下式所示的电容阻抗计算公式可知

                                                                

0.1uF电容的阻抗将比10uF电容的阻抗大100倍。因此,纹波电流几乎都从10uF电容流过。所以,即使GRM155R71E104KE14在温升为20摄氏度时的额定纹波电流仅为0.9A,也足矣。

       Bootstrap电容的选择

       TPS54302 datasheet对bootstrap电容的要求是X7R或X5R,容值为0.1 uF的陶瓷电容即可。上面选择的GRM155R71E104KE14即可满足要求。

       设定输出电压值

      根据公式6,分别使得 R2 = 100 K (TNPW0402100KBEED), R3 = 97.6 K (ARG02BTC9762),即可使得TPS54302输出1.2066V的电压,此处比FPGA要求的1.2V典型值高6.6mV是考虑了PCB线路压降以及电阻标称值的因素。

       Undervoltage Lockout设置

       TPS54302默认的输入电压升高时的under voltage lockout阈值为4.1V,而输入电压下降时的under voltage lockout阈值为3.6V。这两个阈值对于本文的12V输入电压不适用。因为当负载端需要较大功率时,输入端在仅大于4.1V时就开始工作了,此时输入端的电流将较大,导致输入电压又降低,从而导致TPS54302无法稳定工作。将输入电压上升和下降时的under voltage lockout阈值分别设置为9.6V和8.8V。由公式1和公式2,可以计算出R4和R5的阻值分别为360K (0402WGD3603TCE)和51K (ERJU2RD5102X)。

       输出滤波器组件

       电感器的选择

       因为对于输出电流的阶跃响应主要由输出端的大容量电容完成,所以这里不必选择小电感值的电感来使得TPS54302可以快速响应输出电流的阶跃变化。因此,这里选择

K_{IND}=0.2

,使得电感值较大,AC电流幅值更低,输出电压纹波更小。使用公式8可以计算出

L_{MIN}=4.5 \mu H

,这里选择标称值为5.6 uH的电感。使用公式9可以计算出该电感的最大RMS电流值为3.005 A。使用公式10计算出该电感的峰值电流为3.3 A,但是考虑到TPS54302输出的最大峰值电流为5.9 A,该电感需要至少承受5.9 A的电流。最终,选择威世的IHLP4040DZER5R6M01电感,其额定的RMS电流和饱和电流分别为8.5A和16A。

       输出电容的选择

       在选择输出电容的时候需要考虑三个因素:the modulator pole, 输出电压纹波及输出电压对负载电流阶跃变化的暂态响应。在公式11中,令输出电流的阶跃变化量为1.5A,允许的输出电压变化量为10mV,可以计算出输出端的大容量电容容值为750 uF。因为当负载端需要的电流发生突变时,这些电流由大容量电容提供,因此要求大容量电容的ESR足够小才能使得电流经过ESR时的压降足够小。这里选择两个聚合物铝电容ECASD40E337M006KA0进行并联。每个电容的容值为330 uF,ESR为6 mOhms,额定电压为2.5V,此时,1.5 A输出电流引起的暂态响应为11.3 mV,略大于10 mV的目标值。

       利用公式12可以计算出当要求纹波电压为10mV时,滤波电容的容值需要大于15uF。其中,将5.6uH的电感值带入公式8中,可以计算出公式12中所需要的

I_{ripple}=K_{IND}·I_{OUT}

的值。同时,根据公式13可知,当要求输出电压纹波小于10mV时,ESR的值需要小于20.8 mOhms。本文选择两个22uF的陶瓷电容使得TPS54302的输出纹波小于10mV。该电容型号为GRM21BR60J226ME39,1.2V电压时容值为18.8uF,封装0805,ESR为3 mOhms,根据公式15可知,每个陶瓷电容的RMS ripple current为69 mA,在Simsurfing软件中查看Temp.rise发现69 mA所引起的陶瓷电容温升几乎为0。

       前馈电容的选择

       由于两个22uF的陶瓷电容和两个330uF的聚合物铝电容并联之后,总的ESR只有1mOhms。为了提高交叉频率(crossover frequency)处的相位裕度(phase margin),需要在电阻R2处并联一个前馈电容。根据公式14可以计算出交叉频率

f_o

为6 kHz,带入公式16中可知前馈电容C6容值为265 pF。本文选择GCM1555C1H271FA16D陶瓷电容,它的温度系数为C0G。

       总结

       要使得TPS54302输出电压的稳定度保持在1.2V±50mV内,需要考虑输出电压偏置、输出电压纹波、输出电压暂态响应及PCB线路压降。在本文的器件选择中,这四者的设计目标分别为10mV、10mV、10mV及6mV。这样,离FPGA对1.2V电源轨道的±50mV稳定度要求还有一定的余量。值得注意的时,在电容器件选型时,电容容值并不是恒定不变的,要考虑电容值随电容两端电压变化的情况。另外,推荐村田的Simsurfing软件,里面有每个电容的详细参数,这对设计来说帮助很大。 最后,由于本文作者水平有限,文中难免有不足之处,还望各位读者不吝指正,感谢!

Read more

快速部署指南:CV-UNet图像抠图WebUI搭建

快速部署指南:CV-UNet图像抠图WebUI搭建 你是否还在为一张证件照反复调整魔棒选区而头疼?是否因为电商主图要批量换背景,不得不熬夜修图到凌晨?有没有试过打开PyTorch代码、配置CUDA环境、下载模型权重,结果卡在ModuleNotFoundError: No module named 'torch'就再也没继续下去? 别折腾了。今天这篇指南不讲原理、不配环境、不写代码——只做一件事:从镜像启动到完成第一张人像抠图,全程不超过90秒。 我们用的是由开发者“科哥”二次开发构建的 cv_unet_image-matting图像抠图 webui 镜像。它不是Demo,不是玩具,而是一个真正开箱即用、界面清爽、参数直观、结果可靠的生产级AI抠图工具。没有命令行黑框,没有报错日志,只有紫蓝渐变的界面、三秒出图的响应,和一张干净利落的透明背景人像。 本文就是为你写的——给没装过CUDA的运营、没写过Python的设计师、不想碰终端的剪辑师,一份真正能“照着点、就能用”的部署实录。

前端实战:手把手教你实现浏览器通知功能

前端实战:手把手教你实现浏览器通知功能

前端入门:浏览器通知功能从0到1实现指南 作为前端学习者,你可能见过这样的场景:打开网页版聊天工具,就算把浏览器最小化,桌面也会弹出“新消息”提醒;或者某些网站的活动通知,会直接显示在电脑/手机桌面上。这种功能就是「浏览器桌面通知」,今天我们就从零开始,搞懂它、学会用它。 一、先搞懂3个基础问题 1. 什么是浏览器桌面通知? 简单说,就是网页能在浏览器窗口外面(比如电脑桌面、手机屏幕)给你发提醒。哪怕浏览器最小化、甚至页面切到后台,只要权限允许,都能收到通知,不用一直盯着网页。 2. 什么时候会用到它? 常见场景很贴近日常: * 网页版微信/QQ的新消息提醒; * 工作系统的审批提醒、任务到期通知; * 电商网站的订单状态更新(比如“你的快递已发货”); * 新闻/小说网站的订阅内容更新提醒。 3. 用起来难吗?有什么限制? 不难!核心就2步:先让用户同意开启通知(申请权限)

使用 rrweb 还原用户的操作,监听线上 BUG

哥们最害怕的时刻莫过于:测试环境一切正常,一上线用户就报错。 更糟糕的是,用户反馈往往只有一句:“页面打不开了”或者“点击没反应”。当我们试图复现时,却发现自己无论怎么操作都无法触发 Bug。用户不愿意提供详细步骤,客服也传达不清楚,最后只能对着日志干瞪眼。 如果有这样一种技术,能像“时光倒流”一样,完整还原用户出错前的每一步操作,那该多好? 一、为什么我们需要监控与回放? 1.1 沉默的流失 在产品运营中,愿意主动上报 Bug 的用户是极少数。 绝大多数用户遇到体验问题或 Bug 时,选择是直接关闭页面,卸载应用,然后永远不再回来。我们失去了挽留他们的机会,甚至不知道他们为什么离开。 1.2 “在我这里没问题” 前端开发的口头禅:“我没复现这个问题啊,tmd用户怎么操作的”。 因为线上环境太复杂了: * 用户的网络波动 * 特定的浏览器版本 * 特殊的操作顺序 * 并发请求的竞争条件 1.3

Flutter 三方库 arcade 的鸿蒙化适配指南 - 实现高性能的端侧 Web 框架、支持轻量级 HTTP 路由分发与服务端逻辑集成

Flutter 三方库 arcade 的鸿蒙化适配指南 - 实现高性能的端侧 Web 框架、支持轻量级 HTTP 路由分发与服务端逻辑集成

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 arcade 的鸿蒙化适配指南 - 实现高性能的端侧 Web 框架、支持轻量级 HTTP 路由分发与服务端逻辑集成 前言 在进行 Flutter for OpenHarmony 的全栈式开发或特定的边缘计算场景,我们有时需要在鸿蒙应用内部直接启动一个功能完备但又极其轻量的单文件 Web 服务器。arcade 是一个主打微核心设计的 Dart 服务端框架。它能让你在鸿蒙真机上以最少的内存占用,快速运行起一套处理 REST 请求的逻辑中心。本文将指导大家如何在鸿蒙端利用该框架构建微服务。 一、原理解析 / 概念介绍 1.1 基础原理 arcade 采用了非阻塞式的 IO 事件循环架构。它通过直接包装 dart:io 的 HttpServer,提供了一套高度流式(