别用AI画电路板,用它查错更靠谱:PiBox硬件设计实战
别用AI画电路板了用它查错更靠谱PiBox设计日志02做了几块电路板之后我发现很多人对AI辅助硬件开发的理解陷入了一个误区。大家看到AI能写代码、能画图、能生成文案就理所当然地觉得AI是不是也能直接帮我画电路板是不是输入一个“帮我设计一个带WiFi的温湿度采集板”AI就能输出完整的原理图和PCB这个想法听起来很美好但它把AI的能力边界搞错了。AI在电路设计里真正有价值的地方不是替你画板子而是在你画完板子之后帮你做设计审查和查错。这个认知差是本次PiBox项目设计中我体会最深的一点。这篇文章是PiBox设计日志的第二篇我想用实际的项目过程讲清楚为什么“AI画电路板”不靠谱而“AI查错”为什么靠谱以及具体怎么落地到自己的项目里。如果你正在做硬件开发或者打算把AI引入到硬件工作流这篇文章值得读完。1. 先下结论AI画板为什么是个伪需求先说清楚我不是为了否定AI工具才写这篇文章。我的判断是AI在电路设计流程中的定位应该从“生成者”变成“审查者”从“替你画”变成“帮你查”。为什么AI画原理图不靠谱因为电路设计不是一个“从描述到图纸”的单向生成问题而是一个强约束下的决策问题。你给AI一句“帮我设计一个5V转3.3V的电源电路”AI确实能给你一个经典的AMS1117方案原理图也能画得像模像样。但真实项目里你遇到的问题往往是输入电压范围是多少5V是USB供电还是DC插座供电最大负载电流是200mA还是2A这决定了选LDO还是DC-DC。板子的尺寸限制是什么两层板还是四层板EMC要求是什么级别要不要加ESD保护、滤波电容怎么摆成本目标是多少AMS1117价格低但效率不行换SY8089要改电感选型。封装选型是手工焊接还是机器贴片0603还是0402这些约束条件AI并不知道也不应该靠AI去猜。如果生成错了你根本分辨不出来问题出在哪因为你对方案本身就没有足够的判断力。更现实的问题是当AI生成了一套原理图你如何验证它的正确性你在KiCad里打开它发现网络标签对不上电源树有问题好几条走线悬空——你有能力改吗如果不能AI生成的内容对你来说不是效率工具而是风险源头。所以我的结论是不要用AI去画电路板尤其不要在你不熟悉的电路类型上依赖AI画图。但反过来AI查错是另一回事它的工作方式、验证路径、容错逻辑都更适合AI来做。2. PiBox项目背景为什么需要一台“小盒子”先交代一下PiBox是什么方便后面理解案例。PiBox是一个基于树莓派和自研扩展板的桌面小型服务器项目用来跑一些家庭级服务比如局域网文件共享、轻量级容器、远程开发环境、ADSB接收等。项目本身不复杂难点在扩展板的电路设计。主控是树莓派的GPIO扩展板需要做以下几件事从树莓派取5V电源转换成3.3V供板载传感器使用。做I2C电平转换让树莓派和板载外设通信。加一个实时时钟模块断电后保持时间。预留几个GPIO接口方便后续扩展。加上基本的LED状态指示和按键复位。听起来很简单对不对但真正布完板、打完样拿回来实测时问题就来了。板子回来之后第一个现象是I2C扫描不到设备。i2cdetect命令执行之后整个地址表是空的一个设备都看不见。第二个现象是板载LED亮度非常低几乎看不见亮。第三个现象是RTC模块能读到时间但断电重上电之后又恢复到了默认时间。这三个问题恰恰就是AI查错最典型的用武之地。开始查错之前我先把AI在这轮设计日志里的角色定义清楚AI不是画图工具而是设计评审伙伴。它帮我把电路图里可能存在的问题“审”出来帮我理解原理而不是替我做决定。3. 把电路设计文件“喂”给AI的正确方式很多人问怎么让AI帮我查电路直接把原理图截图发给AI行不行行但这个方式效率很低。截图缺乏层次信息AI看不清网络标签看不清器件位号看不清连线关系只能根据像素去猜效果当然差。更靠谱的做法是给AI结构化的电路描述。我整理出了一个固定套路现在每次做设计评审都用它3.1 给AI的电路描述模板请帮我审查以下电路设计重点关注电源、信号完整性和接线错误。 【项目背景】 - 项目名称PiBox扩展板 - 主控平台Raspberry Pi 4B - 供电来源树莓派GPIO 5V引脚最大输出电流约500mA - PCB层数两层 - 适用环境桌面设备无强烈振动和高温 【电路模块清单】 1. 电源模块5V输入AMS1117-3.3输出3.3V最大负载100mA 2. 电平转换模块PCA9306用于I2C 3.3V与5V之间转换 3. RTC模块DS3231I2C地址0x68VCC接3.3V 4. 指示灯3个LED串联1k电阻接3.3V 5. GPIO扩展接口2排8针排针直接引出树莓派GPIO 【接线说明】 - 树莓派5V - AMS1117 VIN已接10uF100nF去耦电容 - AMS1117 VOUT - 3.3V网络 - 3.3V网络 - PCA9306 VREF1经10k上拉 - 树莓派3.3V - PCA9306 VREF2经10k上拉 - DS3231 SDA - PCA9306 SIDE1DS3231 SCL - PCA9306 SIDE1 - 树莓派SDA - PCA9306 SIDE2树莓派SCL - PCA9306 SIDE2 - DS3231 VCC - 3.3VGND - GND - LED1 - GPIO17LED2 - GPIO27LED3 - GPIO22 - 每个LED负极接GND正极通过1k电阻接GPIO 【需要重点检查的项目】 1. 电源去耦和电容放置是否合理 2. I2C上拉电阻位置是否正确 3. RTC后备电池电路是否会影响I2C总线 4. LED限流电阻取值是否合理 5. 是否存在接线错误把这段描述发给AI之后AI返回的审查意见里有两条直接命中了问题。3.2 还要配合文本化原理图除了描述我还用netlist格式把关键网络列出来让AI看得更清楚。网络列表部分 - 5V: RPI_5V, AMS1117_VIN, C1 - GND: AMS1117_GND, RPI_GND, PCA9306_GND, DS3231_GND, LED_GND - 3.3V: AMS1117_VOUT, PCA9306_VREF1, DS3231_VCC, C2 - I2C1_SDA: RPI_SDA, PCA9306_SIDE1_SDA, DS3231_SDA - I2C1_SCL: RPI_SCL, PCA9306_SIDE1_SCL, DS3231_SCL - LED1_CTRL: GPIO17, R1_LEFT这种结构化的文本方式比截图可靠得多。AI能精准定位网络关系、检查上拉电阻、发现电平不匹配。4. 查错实录一I2C扫描不到设备回到第一个问题。i2cdetect扫不到设备最让人崩溃的是——电路图上看着明明是通的万用表量也是通的但总线就是没有设备响应。按照常规思路我第一步查了供电3.3V正常输出第二步查了连接SDA/SCL两根线从树莓派到扩展板从扩展板到DS3231用蜂鸣档一支全是通的第三步查了地址DS3231的地址是0x68没错。看起来所有条件都满足但I2C就是不认设备。这个时候我问AI把上面的电路描述和排查过程发过去。AI给出的分析方向是查一下PCA9306的VREF1和VREF2电压是否匹配以及SDA/SCL是不是放在了同一侧。这句话点醒了我。重新看PCA9306的接线树莓派的I2C引脚接的是SIDE2DS3231接的是SIDE1VREF2接的是树莓派的3.3VVREF1接的是板载3.3V。两边都是3.3V看起来没问题。但问题是树莓派引出的I2C本身是3.3V电平。DS3231也是3.3V供电。这个设计里的PCA9306根本是多余的两边电平全是3.3V完全可以直接连接。PCA9306虽然不会阻止通信但它要求两侧的上拉电阻和VREF电压匹配如果不匹配总线会被拉到一个无效电平区间设备自然不响应。实际检查之后发现PCA9306的VREF1和VREF2引脚没有正确供电——VREF1引脚因为焊盘虚焊实际是浮空的导致总线电平被内部钳位挂在总线上所有设备都失去响应。解决办法很朴素把PCA9306拆掉树莓派3.3V直接连DS3231的SDA和SCL上拉电阻保留加在树莓派侧。重新焊接之后i2cdetect一下就扫描到了0x68设备。这个案例说明AI查错真正有价值的地方是它能基于电路描述快速给出排查方向把“所有引脚都通但设备不响应”这种情况缩小到电平转换、上拉电阻、器件供电这几个高概率原因而不是让你一个个试。5. 查错实录二LED亮度低到看不见第二个问题更隐蔽。LED灯能亮但亮度非常低。用万用表量LED两端电压只有1.2V左右远低于红色LED的正常压降1.8V到2.0V。电流也被限制得很小目测几毫安都不到。这个问题如果不用AI查自己看原理图也能发现但容易漏。原因在限流电阻的规格上。我在原理图里标的是1k电阻但实际市场上买到的0603电阻由于批次精度问题实测阻值还是1k左右问题不在这。真正的原因是LED并联了太多东西。我为了在PCB上省事把三个LED的正极全部接到了同一个GPIO引脚上不对每个LED单独接了GPIO。但三个LED的负极同时接到一个GND过孔而这个过孔在PCB板上离LED太远走线很长线阻加上过孔电阻等于给LED串联了一个大电阻抬高了负极电位降低了LED两端实际压降。AI在电路描述阶段就提醒过多个LED共用地线时最好采用“星形接地”各LED独立拉线到主接地点不要串联共享。我当时图省事没听。这个问题的修复不是改电路图而是改PCB走线。把三个LED的负极独立走到主GND重新打样后LED亮度恢复正常。这里AI的价值不是“帮你发现线阻”而是给出了一个工程原则多个负载共享地线时要注意走线带来的压降和回流路径问题。这个原则如果你不知道用万用表查多久都不一定能想到。6. 查错实录三RTC断电后时间丢失第三个问题也是在设计阶段最容易被忽略的RTC在断电后没有保持时间。DS3231是带温度补偿的RTC正常工作时功耗很低外部接一个CR2032电池或者超级电容可以在主电源断开后继续走时。我设计时加了电池座也接了电池但断电之后时间还是丢了。查了电路DS3231的VCC接的是3.3V后备电池正极接到DS3231的VBAT引脚。这个接法没问题。但问题在于主电源3.3V在断电后并不是立刻变为0而是会有一个缓慢的放电过程这个过程中3.3V的残余电压如果高于VBAT电压DS3231就会继续从主电源取电而不会切换到备份电池。这种现象叫“电源倒灌”。DS3231内部虽然有一个电源切换电路但它依赖VBAT和VCC的电压差来判断切换时机。如果VCC的残余电压在很长一段时间内高于VBAT芯片就会一直选择VCC而不切到VBAT。AI给出的建议是在VCC和GND之间加一个10kΩ的放电电阻让VCC在断电后快速拉到0VDS3231就会干净利落地切换到备用电池。这是很多设计里都会加的一个“假负载”确保掉电检测电路能正常工作。加了这个电阻之后断电重上电时间保持正常。这个问题的价值在于它属于“设计原理正确但实际器件行为不符合预期”的类型如果不用AI去分析DS3231的电源切换逻辑单看原理图是看不出问题的——因为原理图上每一个连接都是对的。7. AI查错的局限它给的是方向不是答案看到这里可能有人会觉得那AI查错确实挺强啊以后画完板子先让AI看一遍就行了。这个想法也过于乐观了。AI查错有它的局限我用PiBox项目里的实际教训说明一下。第一AI会一本正经地胡说八道。比如你问它“这个电路有没有问题”它可能会把没问题的设计也挑出几个“建议”比如“建议在电源输入端增加一个TVS管”——这个建议本身没错但如果你的电路是一个5V输入的低功耗模块加上TVS后静态功耗增加反而不合适。AI不会根据你的整机约束去权衡它只会基于它见过的通用模式给建议。第二AI查不出“你没告诉它”的问题。如果你没有把PCB叠层、走线宽度、过孔位置、热设计信息提供给AI它就只能被限定在原理图层面查查不出PCB问题、EMI问题、散热问题。这种情况下AI反而会给你一种“这个设计没问题”的安全感这是最危险的。第三AI查错能不能发现真正的“硬错误”像引脚接反、芯片供电接错、极性电容反接这类问题AI通过文本描述大概率能发现但也需要你把自己的设计准确描述出来。如果你自己描述错了AI就会顺着错的描述给错的分析。所以才说AI是一个“有经验的同事”不是“验证机器”。它能帮你出主意、查方向、找盲区但最终你还是要自己理解电路原理自己用万用表、示波器去验证自己看数据手册确认引脚定义和电气参数。8. PiBox实战中的AI辅助检查清单基于PiBox这一轮的设计和调试我把AI辅助电路检查的完整流程整理成了下面这个清单。每次画完板子都可以按照这个流程走一遍不保证能发现所有问题但可以明显提高一次成功的概率。8.1 第一步输出结构化电路描述写清楚项目背景、电源架构、接口列表、关键器件、供电电压、通信协议。不要只给一张图要给文字描述。8.2 第二步让AI做原理图级检查询问以下几个维度电源去耦电容是否足够、电源树是否合理、压降是否可接受。电平匹配不同电压域之间的信号是否需要转换、上拉电阻电压是否匹配。引脚连接芯片电源引脚是否接对、去耦电容是否靠近电源引脚、使能引脚是否悬空。复位电路复位引脚是否需要上拉、是否有延迟复位需求。接地模拟地和数字地是否需要分离、单点接地还是多点接地。8.3 第三步让AI做PCB级检查这一步要给AI更详细的信息板子尺寸、层数、主要信号、关键走线宽度、铜厚。让AI关注以下问题电源走线是否足够宽、回路面积是否过大。信号完整性时钟线、I2C线是否过长、是否靠近干扰源。散热功率器件是否预留散热铜皮、过孔阵列足够与否。接地地平面是否完整性、分割是否合理。当然AI在PCB级的分析能力取决于你提供的信息详细程度。如果只给一句话“两层板、信号不多”AI能给出的有效建议也非常有限。8.4 第四步用AI做“故障复盘”这是我最推荐的方式。板子打样回来出了问题不要急着改板先把现象、排查过程、测量数据整理成文字发给AI让它基于事实给出下一步排查方向。这个过程比“让AI画板”靠谱一百倍。因为问题已经很具体AI的分析有前提、有边界、有目标给出的建议质量会高很多。8.5 第五步交叉验证AI结论AI给的建议最终要用数据手册、官方参考设计、示波器和万用表验证。千万别把AI的分析当成最终结论。在PiBox项目中AI给过一条明显错误的建议把DS3231的SQW引脚直接接到树莓派GPIO用作中断唤醒。但实际DS3231的SQW默认输出是32kHz方波直接接GPIO会导致引脚持续翻转极大增加功耗需要先配置为中断模式否则不如不接。这种“看似合理、实则暗坑”的建议必须靠数据和手册来排除。9. 给入门硬件开发者的建议AI该放什么位置对于正在学习电路设计、打算用AI辅助开发的读者我的建议分三个层面。第一个层面如果你还没有独立设计过一块能正常工作的电路板不要用AI去画板。先用经典的小项目跑通做一个最小系统板、做一个传感器驱动板、做一个电源模块。这个阶段最重要的是建立“电路设计到实际测试”的完整闭环认知AI的参与反而会掩盖你对基础概念的理解缺失。第二个层面如果你已经设计过几块能工作的板子形成了基本的电路直觉可以用AI做“设计评审”和“查错辅助”。这个时候你已经能判断AI说的对不对也知道什么时候该忽略它的建议。第三个层面如果你已经是成熟的硬件工程师AI查错更像一个高效的“白板讨论伙伴”。你可以把复杂的问题拆成子问题让AI从一个不同角度审一遍帮助发现盲区、查漏补缺。总的来说我对AI电路设计工具的定位是不替代设计者只增强设计者的查错和评审能力。它非常适合帮你看原理图、查电源设计、排查故障但不适合直接替你生成设计。如果你恰好也在这个阶段建议先把结构化的电路描述模板用好再尝试用AI辅助排查实测故障——这个流程比单纯让AI画图有意义得多。后续我还会继续更新PiBox设计日志包括扩展板第二版的改动、树莓派与扩展板的通信协议、以及整机调试过程中遇到的其他问题欢迎保持关注。