ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

AGX Orin载板设计避坑指南:电源时序、存储选型与高速接口布局

AGX Orin载板设计避坑指南:电源时序、存储选型与高速接口布局 1. 从核心板到产品板AGX Orin外围电路到底在解决什么问题拿到一块Jetson AGX Orin模组的时候很多人第一反应是把它当成一块大号开发板来用——插上电源、接上显示器、烧个系统就完事了。但真正做过量产项目的人都知道模组本身只是一个裸的核心计算单元它没有标准的对外接口没有电源管理没有时钟源没有调试通道甚至连最基本的启动介质都需要你在载板上自己安排。外围电路设计要做的就是把这些缺失的部分补齐让模组从一个裸核心变成一个能跑起来、能接外设、能稳定工作的完整系统。我接触AGX Orin的载板设计是从一个边缘计算盒子项目开始的。当时团队里有人觉得不就是照着参考设计抄一遍嘛结果第一版板子回来上电之后串口毫无输出排查了整整两天才发现是电源时序的问题——模组要求的多路供电上电顺序和我们的PMIC配置对不上导致核心电压还没稳定IO电压就已经拉高了模组直接进入保护状态。这个教训让我意识到AGX Orin的外围电路设计远不是连线那么简单它涉及电源树规划、时序控制、高速信号完整性、启动介质选型、调试接口预留等一系列需要通盘考虑的问题。这篇文章主要面向正在做或准备做AGX Orin载板设计的硬件工程师以及需要理解硬件底层的嵌入式软件开发者。我会从电源架构、启动与存储、调试与恢复通道、高速接口与时钟这几个维度把外围电路设计中最容易出问题、也最需要提前规划的部分拆开来讲。不会照搬官方设计指南的条目而是结合我在实际项目中踩过的坑和验证过的方案把为什么这么设计和不这么设计会怎样讲清楚。需要提前说明的是AGX Orin的模组引脚定义和电气规范在官方文档里有详细说明我这里不会逐条罗列引脚而是聚焦在那些文档里写了但容易忽略、或者文档没写但实际会遇到的工程问题上。如果你手上还没有官方设计指南和模组数据手册建议先去下载后面的内容需要对照着看。2. 电源树规划多路供电的时序与余量才是真正的难点2.1 AGX Orin的供电需求拆解AGX Orin模组对电源的需求可以粗略分成几大类核心计算域的CPU/GPU/DLA供电、内存供电、IO域供电、以及各种辅助电源。官方给出的典型供电方案是多路PMIC配合外部DC-DC输入通常是5V或12V的宽压范围。但这里有个容易被忽略的点模组内部虽然有PMIC但它需要外部提供的是预调节后的电压而不是直接把电池或适配器电压灌进去。具体来说模组通常需要外部提供以下几路关键电源VDD_IN主输入一般是5V或12V、VDD_CPU_GPU_CV核心供电由外部DC-DC提供电压在0.8V左右但电流极大、VDD_SOC、VDD_DDR、以及1.8V/3.3V的IO电源。每一路的电流需求和纹波要求都不一样核心供电那一路在满载时电流可以到几十安培这对DC-DC的选型和PCB布局都是很大的考验。我在第一个项目里犯的错误是按照模组标称的TDP来选DC-DC的电流等级结果实际跑满载推理的时候核心供电的瞬态响应跟不上导致模组频繁触发欠压保护。后来用示波器抓了核心电压的纹波和负载瞬态波形发现峰值电流远超标称值而且负载跳变时的电压跌落超过了模组的容忍范围。解决办法是换用更大电流等级、更低ESR输出电容的DC-DC方案同时在布局上把输出电容尽量靠近模组的供电引脚。2.2 上电时序为什么你的板子第一次上电没反应电源时序是AGX Orin外围电路设计里最容易被低估的部分。模组对多路电源的上电顺序有明确要求通常是核心供电先建立然后是SOC和DDR最后才是IO电源。如果顺序反了比如IO电源先于核心供电建立模组内部的ESD保护二极管可能会形成意外通路导致漏电流过大甚至损坏。更隐蔽的问题是掉电时序。很多设计只关注上电顺序忽略了掉电时各路电源的放电速度不一致。如果核心供电掉得比IO电源快同样可能触发模组内部的保护机制。我在一个项目里遇到过偶发性的上电不启动问题排查了很久才发现是某一路电源的使能信号释放时间不一致导致掉电时序混乱。后来在使能信号上加了RC延时和放电二极管确保掉电时IO电源先于核心供电下降问题才彻底解决。实际设计中我建议用一颗专门的电源时序控制器比如带PG信号级联的PMIC或者独立的sequencer芯片来管理各路电源的使能和PG信号。不要试图用简单的RC延时来凑合因为温度和批次差异会让RC延时变得不可靠。另外每一路电源的PG信号都要接到模组的对应引脚上让模组知道电源是否已经稳定否则模组可能会在电源还没准备好的时候就开始启动流程。2.3 电源余量与热设计电源余量这件事我的经验是标称值至少留30%的余量瞬态响应要按峰值电流的1.5倍来设计。AGX Orin在跑深度学习推理的时候GPU和DLA的负载是脉冲式的电流变化率很高如果DC-DC的环路响应不够快电压就会出现明显的跌落和过冲。热设计也是电源部分必须考虑的问题。核心供电的DC-DC在满载时效率通常在85%到90%之间剩下的10%到15%都变成了热量。如果载板空间有限散热措施不到位DC-DC的温度会很快升上去轻则效率下降重则触发过热保护。我在一个紧凑型盒子里做设计的时候给核心供电的DC-DC加了导热垫直接贴到金属外壳上同时把电感选用了低DCR的型号温升控制在了可接受范围内。注意电源部分的PCB布局比选型更重要。核心供电的输入电容和输出电容必须尽量靠近DC-DC芯片和模组引脚功率回路的面积要尽可能小反馈走线要远离电感和开关节点。这些细节如果没做好再好的选型也白搭。3. 启动介质与存储QSPI、eMMC和NVMe到底怎么选3.1 启动流程与QSPI的角色AGX Orin的启动流程和普通的ARM开发板不太一样。模组内部有BootROM上电后会先从QSPI Flash里读取引导程序然后根据引导程序的配置去加载操作系统。QSPI Flash在AGX Orin载板上通常是必须的因为它存放的是最底层的引导固件包括MB1、MB2、UEFI等组件。QSPI Flash的选型要注意几点容量通常需要32MB或64MB具体取决于你用的JetPack版本和引导配置接口速率要支持模组要求的Quad SPI模式最重要的是QSPI Flash的供电要和模组的QSPI IO电压匹配通常是1.8V。我在一个项目里用了3.3V的QSPI Flash结果模组的QSPI控制器识别不到后来加了电平转换才解决。QSPI Flash的布局也有讲究。它离模组的QSPI引脚越近越好走线要等长阻抗要控制好。如果走线太长或者有分支高速读写的时候容易出现误码导致启动失败或者系统不稳定。我一般会把QSPI Flash放在模组背面走线长度控制在2厘米以内并且避免在QSPI走线附近走其他高速信号。3.2 eMMC与NVMe的分工AGX Orin模组本身通常不带eMMC存储需要载板提供。常见的选择有两种一是板载eMMC芯片二是通过M.2接口接NVMe SSD。这两种方案各有适用场景。板载eMMC的优点是成本低、占用空间小、不需要额外的接口电路适合对存储容量要求不高、成本敏感的产品。缺点是容量固定后期无法升级而且eMMC的读写速度相比NVMe有明显差距。如果你的应用需要频繁读写大量数据比如多路视频录制或者大型模型加载eMMC可能会成为瓶颈。NVMe方案通过M.2 M-Key接口连接SSD优点是容量灵活、速度快、可更换。缺点是增加了接口电路的设计复杂度需要处理PCIe信号完整性、供电和散热问题。M.2接口的PCIe Gen4信号对PCB走线要求很高差分对的阻抗要控制在85欧姆走线长度要尽量短过孔要尽量少。我在设计第一版NVMe载板的时候因为PCIe走线没有做阻抗控制导致SSD识别不稳定后来重新调整了叠层和走线参数才解决。实际项目中我通常建议客户采用QSPI NVMe的组合QSPI放引导固件NVMe放操作系统和用户数据。这样既保证了启动的可靠性又提供了足够的存储性能和容量。如果成本压力大可以用QSPI eMMC的方案但要做好容量规划避免后期存储不够用。3.3 存储介质的启动配置AGX Orin的启动介质选择是通过模组上的配置引脚或者QSPI里的引导配置来决定的。如果载板上同时有eMMC和NVMe需要确保引导配置正确指向你想要的启动设备。我在一个项目里遇到过这样的问题板子上同时装了eMMC和NVMe但引导配置默认从eMMC启动而系统实际装在NVMe上结果每次启动都进入恢复模式。后来通过修改QSPI里的引导配置把启动顺序改成NVMe优先问题才解决。另外NVMe SSD的供电也要注意。M.2接口通常需要3.3V供电电流需求根据SSD的功耗不同一般在2A到3A左右。如果载板的3.3V电源余量不够SSD在满载读写的时候可能会掉电导致系统崩溃。我一般会为NVMe单独配一路DC-DC或者LDO确保供电稳定。4. 调试与恢复通道串口、USB和按键一个都不能少4.1 调试串口最可靠的救命通道不管你的产品最终是否保留调试接口在开发阶段和量产测试阶段调试串口都是必不可少的。AGX Orin的调试串口通常是UART波特率115200通过模组的特定引脚引出。这个串口在系统启动的最早期就会输出信息包括BootROM的日志、引导程序的日志、以及内核启动日志。当系统起不来的时候串口输出是唯一能告诉你卡在哪一步的信息来源。我在设计载板的时候一定会把调试串口引到一个标准的排针或者USB转串口芯片上并且确保这个接口在板子装配完成后仍然可以访问。有些紧凑型设计为了省空间把串口省略了结果出了问题只能拆机飞线非常痛苦。调试串口的电平通常是1.8V如果直接接3.3V的USB转串口模块需要加电平转换否则可能损坏模组的UART引脚。4.2 USB恢复模式变砖之后的最后手段AGX Orin支持通过USB进入恢复模式Recovery Mode用于重新烧录引导固件和系统镜像。进入恢复模式通常需要在上电时按住特定的按键或者短接特定的引脚。这个功能在系统引导损坏、QSPI固件出错、或者需要批量烧录的时候非常有用。载板设计时我建议把恢复模式的按键或者跳线引出来并且标注清楚。有些设计把恢复按键放在板子背面或者需要拆壳才能按到的地方量产烧录的时候非常不方便。另外USB恢复接口通常是USB 2.0的Micro-B或者Type-C接口这个接口在系统正常启动后也可以作为普通的USB设备接口使用所以不算浪费。提示恢复模式的USB接口和调试串口最好放在同一侧并且用不同的丝印标注清楚。我在量产测试的时候经常需要同时接串口看日志和接USB烧录如果两个接口离得太远操作起来很别扭。4.3 电源按键与复位电路AGX Orin模组有专门的电源按键和复位引脚。电源按键用于触发系统的开关机流程复位引脚用于强制复位模组。这两个信号在载板上需要正确处理电源按键通常需要接一个上拉电阻和去抖电容复位引脚需要确保在上电时保持有效直到电源稳定。我在一个项目里遇到过复位电路设计不当导致的问题复位引脚的RC延时太短电源还没完全稳定复位就已经释放了模组偶尔会启动失败。后来把复位延时的RC参数调整了一下确保复位信号在电源稳定后至少保持100ms问题就消失了。电源按键的去抖也很重要如果去抖没做好按一次键可能会被识别成多次导致系统反复开关机。5. 高速接口与时钟PCIe、USB和MIPI的布局要点5.1 PCIe接口的阻抗与走线AGX Orin提供了多路PCIe控制器可以配置成不同的通道数和速率。载板上如果需要接NVMe SSD、Wi-Fi模组或者其他的PCIe设备就需要设计PCIe接口电路。PCIe Gen4的差分信号速率是16GT/s对PCB走线的阻抗控制、损耗和串扰都有严格要求。差分对的阻抗通常要求85欧姆有些设计用90欧姆走线要尽量短过孔要尽量少。如果走线必须换层要在过孔附近加回流地过孔。差分对之间的间距要足够大避免串扰。我在设计PCIe走线的时候一般会要求PCB厂提供阻抗测试报告确保实际阻抗在公差范围内。AC耦合电容也是PCIe接口必须的通常放在发送端容值在100nF左右。这些电容要选用高频特性好的型号封装尽量小减少寄生参数。我有一次用了0402封装的普通电容结果PCIe链路训练不稳定后来换成0201的高频电容才解决。5.2 USB接口的差分走线与保护AGX Orin的USB接口包括USB 2.0和USB 3.2载板上通常需要引出至少一路USB用于调试和外设连接。USB 2.0的差分信号速率是480MbpsUSB 3.2的速率更高对走线的要求也不同。USB 2.0的差分对阻抗要求是90欧姆走线要等长长度差控制在5mil以内。USB 3.2的差分对要求更严格除了阻抗和等长还要注意插入损耗和回波损耗。我在设计USB 3.2接口的时候会在差分对上串联共模电感抑制共模噪声同时在接口处加ESD保护器件防止静电损坏模组的USB控制器。ESD保护器件的选型要注意结电容USB 3.2的速率很高结电容太大的保护器件会影响信号质量。我一般选用结电容在0.5pF以下的TVS二极管并且尽量靠近接口放置。5.3 MIPI CSI接口的时钟与数据线如果载板需要接摄像头模组就会用到MIPI CSI接口。AGX Orin支持多路MIPI CSI每路包括一对时钟差分线和若干对数据差分线。MIPI CSI的速率根据摄像头模组的不同可以从几百Mbps到几Gbps不等。MIPI CSI的差分对阻抗通常要求100欧姆走线要等长时钟线和数据线之间的长度差也要控制。我在设计MIPI接口的时候会把差分对走在同一层避免换层带来的阻抗不连续。如果必须换层会在过孔附近加地过孔并且确保换层后的参考平面一致。MIPI CSI的供电也要注意摄像头模组通常需要多路电源比如1.8V、2.8V、1.2V等这些电源的噪声会直接影响图像质量。我一般会为摄像头模组的模拟电源单独加LC滤波并且把电源走线和MIPI信号线隔离开。5.4 时钟源的选择与布局AGX Orin模组需要外部提供参考时钟通常是24MHz或者38.4MHz的晶振。这个时钟的精度和抖动直接影响模组内部PLL的性能进而影响PCIe、USB等高速接口的稳定性。晶振的选型要注意频率精度通常要求±20ppm以内和相位抖动对于高速接口抖动要求更严格。晶振的布局要尽量靠近模组的时钟输入引脚走线要短且远离干扰源。我在一个项目里把晶振放在了板子边缘靠近DC-DC电感结果时钟抖动超标PCIe链路不稳定。后来把晶振移到模组附近并且加了屏蔽罩问题才解决。6. 那些参考设计里不会写的工程细节6.1 去耦电容的摆放比数量更重要AGX Orin模组的电源引脚很多每个引脚都需要去耦电容。官方参考设计里会给出每个电源域需要的电容数量和容值但不会告诉你这些电容该怎么摆。我的经验是小容值的电容比如0.1uF、0.01uF要尽量靠近引脚大容值的电容比如10uF、22uF可以稍微远一点。如果空间允许每个电源引脚旁边都放一个0.1uF的电容然后再在电源域附近放几个大容值的储能电容。去耦电容的接地回路也很重要。电容的接地端要尽量短最好直接打到地平面不要通过长走线连接到地。我见过一些设计把去耦电容放在板子背面通过过孔连接到正面的电源引脚这种做法的效果取决于过孔的质量和数量如果过孔太少或者太长去耦效果会大打折扣。6.2 连接器的选型和可靠性载板上的连接器包括电源输入连接器、调试接口连接器、高速接口连接器等。这些连接器的选型不仅要考虑电气性能还要考虑机械可靠性和插拔寿命。我在一个项目里用了便宜的排针做调试串口结果在量产测试的时候排针被反复插拔后接触不良导致测试数据时好时坏。后来换成了带锁扣的连接器问题才解决。高速接口的连接器更要慎重。PCIe和USB 3.2的连接器要支持相应的速率阻抗要匹配否则会影响信号完整性。M.2连接器要选择质量好的品牌因为SSD的插拔力比较大劣质连接器容易损坏。6.3 PCB叠层与阻抗控制AGX Orin载板的PCB叠层设计直接影响高速信号的性能。我通常会用至少6层板信号层和地平面交替排列确保每条高速信号都有完整的参考平面。电源平面和地平面要尽量靠近形成平板电容有助于电源完整性。阻抗控制方面PCIe差分对通常要求85欧姆USB 2.0要求90欧姆MIPI CSI要求100欧姆。这些阻抗要求需要和PCB厂沟通在叠层设计的时候就确定好走线宽度和间距。我一般会要求PCB厂提供阻抗计算报告并且在首件的时候做TDR测试确保实际阻抗符合要求。6.4 散热与结构配合AGX Orin模组的功耗不低满载的时候可能需要主动散热。载板设计的时候要考虑散热器的安装方式以及模组和散热器之间的导热界面材料。如果载板上有其他发热器件比如DC-DC、NVMe SSD也要考虑它们和模组之间的热干扰。我在一个紧凑型设计里把NVMe SSD放在了模组旁边结果SSD的发热让模组附近的温度升高了十几度导致模组降频。后来调整了布局把SSD移到了板子另一侧并且加了导热垫把热量导到外壳上问题才解决。结构配合方面载板的安装孔位置要和外壳匹配连接器的开口位置也要和外壳对齐这些看起来是小事但如果在设计后期才发现对不上改起来就很麻烦。7. 从原理图到量产我的检查清单和踩坑记录7.1 原理图评审时重点看什么原理图评审是发现问题的第一道关卡。我在评审AGX Orin载板原理图的时候会重点检查以下几项电源时序控制逻辑是否正确每一路电源的PG信号是否都接到了模组QSPI Flash的供电和IO电压是否匹配调试串口的电平是否匹配恢复模式的按键或跳线是否可用PCIe和USB的AC耦合电容是否放在了正确的位置晶振的频率和精度是否符合要求。还有一个容易忽略的点是模组的配置引脚。AGX Orin有一些配置引脚用于设置启动模式、PCIe通道配置等这些引脚在上电时会被采样所以必须确保它们在正确的时间处于正确的电平。我一般会在这些引脚上加测试点方便调试的时候测量。7.2 首板调试的排查顺序首板回来之后不要急着上电。先做目视检查确认没有明显的焊接问题然后用万用表测量各路电源的对地阻抗排除短路。确认没有短路之后再上电测量各路电源的电压确保在模组允许的范围内。如果串口没有输出按照以下顺序排查先确认电源电压和时序是否正确再确认QSPI Flash是否焊接良好、供电是否正常然后确认模组的配置引脚电平是否正确最后检查晶振是否起振。我在一次调试中遇到串口无输出的问题排查了一圈才发现是QSPI Flash的片选信号没有正确连接导致模组读不到引导程序。7.3 量产前的验证项目量产前需要做的验证包括高低温测试确认电源和时钟在温度范围内的稳定性长时间满载测试确认散热和电源余量足够反复开关机测试确认电源时序和复位电路可靠高速接口的兼容性测试确认不同品牌的NVMe SSD和USB设备都能正常工作。我还会做一项暴力测试在系统满载运行的时候反复插拔USB设备和NVMe SSD看系统是否会崩溃或者识别异常。这个测试能暴露一些在正常使用中不容易发现的问题比如ESD保护不足、电源瞬态响应不够等。7.4 几个让我印象深刻的坑第一个坑是电源时序。前面已经讲过这里不再重复但我想强调的是电源时序的问题往往不是必现的可能十次上电只有一次失败这种偶发问题最难排查。所以设计阶段就要把时序控制做扎实不要抱有侥幸心理。第二个坑是QSPI Flash的兼容性。不同品牌的QSPI Flash在时序参数上可能有差异有些模组对QSPI的时序要求比较严格换了Flash品牌之后可能就无法启动。我一般会选用官方推荐列表里的Flash型号如果必须用其他型号会先做小批量验证。第三个坑是PCIe的参考时钟。AGX Orin的PCIe控制器需要参考时钟这个时钟可以来自模组内部也可以来自外部。如果使用外部时钟要确保时钟的精度和抖动满足PCIe的要求。我在一个项目里用了普通的晶振做PCIe参考时钟结果链路只能跑到Gen2后来换了低抖动的时钟源才跑到Gen4。第四个坑是连接器的机械干涉。载板上的连接器和外壳之间的配合很容易出问题特别是Type-C和M.2这类有明确外形标准的连接器。我在一个项目里因为外壳的开口位置偏了1毫米导致Type-C线插不进去只能重新做外壳。所以结构设计和PCB设计一定要同步进行不要等板子回来了才发现装不上。这些经验都是我在实际项目中一点一点积累起来的有些是花了时间和成本才换来的教训。AGX Orin的外围电路设计涉及的知识面很广从电源到高速信号从原理图到PCB布局每一个环节都有需要注意的细节。希望这些内容能帮你在设计中少走一些弯路。如果你正在做相关的项目建议在原理图评审和PCB布局阶段就多花时间检查因为这两个阶段发现问题的成本远低于板子回来之后。
返回列表