详细的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

前端防范 XSS(跨站脚本攻击)

目录 一、防范措施 1.layui util  核心转义的特殊字符 示例 2.js-xss.js库 安装 1. Node.js 环境(npm/yarn) 2. 浏览器环境 核心 API 基础使用 1. 基础过滤(默认规则) 2. 自定义过滤规则 (1)允许特定标签 (2)允许特定属性 (3)自定义标签处理 (4)自定义属性处理 (5)转义特定字符 常见场景示例 1. 过滤用户输入的评论内容 2. 允许特定富文本标签(如富文本编辑器内容) 注意事项 更多配置 XSS(跨站脚本攻击)是一种常见的网络攻击手段,它允许攻击者将恶意脚本注入到其他用户的浏览器中。

详细教程:如何从前端查看调用接口、传参及返回结果(附带图片案例)

详细教程:如何从前端查看调用接口、传参及返回结果(附带图片案例)

目录 1. 打开浏览器开发者工具 2. 使用 Network 面板 3. 查看具体的API请求 a. Headers b. Payload c. Response d. Preview e. Timing 4. 实际操作步骤 5. 常见问题及解决方法 a. 无法看到API请求 b. 请求失败 c. 跨域问题(CORS) 作为一名后端工程师,理解前端如何调用接口、传递参数以及接收返回值是非常重要的。下面将详细介绍如何通过浏览器开发者工具(F12)查看和分析这些信息,并附带图片案例帮助你更好地理解。 1. 打开浏览器开发者工具 按下 F12 或右键点击页面选择“检查”可以打开浏览器的开发者工具。常用的浏览器如Chrome、Firefox等都内置了开发者工具。下面是我选择我的一篇文章,打开开发者工具进行演示。 2. 使用

Cursor+Codex隐藏技巧:用截图秒修前端Bug的保姆级教程(React/Chakra UI案例)

Cursor+Codex隐藏技巧:用截图秒修前端Bug的保姆级教程(React/Chakra UI案例) 前端开发中最令人头疼的莫过于那些难以定位的UI问题——元素错位、样式冲突、响应式失效...传统调试方式往往需要反复修改代码、刷新页面、检查元素。现在,通过Cursor编辑器集成的Codex功能,你可以直接用截图交互快速定位和修复这些问题。本文将带你从零开始,掌握这套革命性的调试工作流。 1. 环境准备与基础配置 在开始之前,确保你已经具备以下环境: * Cursor编辑器最新版(v2.5+) * Node.js 18.x及以上版本 * React 18项目(本文以Chakra UI 2.x为例) 首先在Cursor中安装Codex插件: 1. 点击左侧扩展图标 2. 搜索"Codex"并安装 3. 登录你的OpenAI账户(需要ChatGPT Plus订阅) 关键配置项: // 在项目根目录创建.