大家好,今天智行者IC社区带来easyeda-agent 一个分享。

之前一直用大模型写代码,这次换个方向——让 AI Agent 画一块板子。
目标:一块 ESP32-S3 WIFI 开发板。
工具链是用 easyeda-agent 操作嘉立创 EDA 专业版:使用 typed CLI(不用鼠标点击),环境是 Linux + EasyEDA Pro 4.1.71 + connector 1.10.0。

相关链接:
easyeda-agent:https://github.com/zhoushoujianwork/easyeda-agent
EDA 专业版: https://lceda.cn/
TL;DR:
原理图完成:4 页、31 个器件、20 条网,核对通过,图签和功能分区框补齐。PCB 没做完:31 个器件落位成功、4 层叠层 + 电源/地铺铜 + 缝合过孔都正常,但还有 7 个线路没连通,平台原生 DRC 也失败。
下面是完整过程
一、给提示词,自己选型
请使用 easyeda-agent,在项目 ceshi 中完成一块 ESP32-S3-WROOM-1 最小系统板: 5V 端子输入,降压到3V3,CH340 USB 下载,BOOT/RESET 按键,一颗GPIO控制的LED, 四角M3固定孔。做4层板,GND内电层,模组天线区域所有层keepout。请自行选型并核对数据手册,从原理图、布局、布线、铺铜、丝印一直做到 DRC 保存完成。
AI 画板容易出问题的地方不是连线,而是选错器件。所以我先让它把关键器件的原厂手册核了一遍。
核对结果:
| 器件 | 手册依据 | 结论 |
|---|---|---|
| CH340C | ESP32-S3 SoC 手册 v2.2 §5.4:VIH max = VDD+0.3V;CH340 手册 3.3V 模式 V3 接 VCC | CH340 必须 3V3 供电,5V 供电时它的 TXD 会超 MCU 的绝对最大值 |
| SY8089A1 | Datasheet:VOUT = 0.6×(1+RH/RL) | 45.3k/10k → 3.32V,和块里给的 3.3V 一致;另补一颗 Cff=22pF |
| ESP32-S3-WROOM-1 | 模组手册 v1.8 / Espressif 硬件设计指南 | 天线区 18×6mm 起,模组天线端要贴板边、下方全层无铜 |
| 2.2µH 电感 | block 默认那颗 NLCV32T(C250183)只有 770mA / 130mΩ | 与 SY8089 的 2A 开关电流冲突,换成一体成型 FXL0420(C167206,4.5A / 58mΩ) |
| USBLC6-2SC6 | 手册脚义:1/6=I/O1、3/4=I/O2、2=GND、5=VBUS | D−/D+ 走 1/6、3/4 两个通道,连接器侧先过保护器 |
还做了两件事:
- 把标准器件库复制成本工程副本(逐件用 LCSC 号在本机库核对 deviceUuid)
- 写一份 S0 设计方案书(功能分区、信号流向、叠层、射频禁布),后面所有布局判据都以它为准:
easyeda spec validate --strict ceshi/.easyeda/s0-ceshi.json
# ✅ ceshi/.easyeda/s0-ceshi.json — 无问题
二、原理图:主要的问题是布局

原计划一页 A4 画完,实测不行,放不下。于是拆成 4 页:
- POWER:5V 螺钉端子 + USB VBUS 经 SS14 肖特基 OR 并入 5V 轨 → SY8089 buck → 3V3/2A

- MCU:模组最小系统(3V3 去耦、EN 上电复位 RC、IO0 strapping)

- USB_IO:CH340C(3.3V 供电)+ USB-C + ESD + CC 下拉 + BOOT/RESET + GPIO2 LED

- DEBUG:DTR/RTS 交叉耦合一键下载

遇到的问题:
1:关系式布局在 A4 上直接失败。 block-apply 把模组的锚点放在纸面中部时,模组符号顶端直接顶出图纸,报 unresolved roles R_EN 并自动回滚。往下挪 200 mil 问题解决。
2:marker 挤成一团。 模组/降压块没有手写布局模板时会退回等距网格,结果每个器件的网络标签互相压边,clusters --strict 报重叠。先用 group tidy 让无源件竖放、标签水平化,再用 destagger 批量消 marker 重叠最后平移几处组件。
3:LED 符号的 +/− 朝向和块模板相反。 block.led_indicator_gpio 的模板是”信号流左入右出:CTRL→R→LED(+)→(−)→GND”,但库里的 0805 LED 符号 + 在右、− 在左,于是 R→LED 那根线直接从器件本体里穿过去,报 wire-through-body。最后是删掉重放、把 LED 镜像放置,完成。
4:CH340 从 5V 供电改成 3V3。 把 U.VCC、U.V3、两颗 100nF 全部从 VBUS 网断掉改接 3V3:
easyeda sch autoconnect --pin U3:VCC --kind power --net 3V3 --replace
easyeda sch autoconnect --pin U3:V3 --kind power --net 3V3 --replace
(--replace 会先删掉旧的桩线+网络旗再重连,所以不会出现”一根脚挂两个网”。)
最后自检结果:
easyeda sch bridge-check --project ceshi # 0 桥接 / 0 孤桩
easyeda sch clusters --strict --doc <页> # 每页 0 重叠 / 0 出图
easyeda sch check --project ceshi --doc <页> # 仅剩未用 GPIO 的 floating 提示
连线,四页图签(图名/绘制/说明)和功能分区框都OK。
小结:原理图可用,但是布局没有人工布的合理,AI最后摆不开就新建页面(不太合理)。
三、PCB:分层,原件布局及布线
1)分层和布局正常
先设叠层:pcb stackup set --layers 4,得到 Top / Bottom / Inner1 / Inner2。
板框 58×30mm 圆角矩形,四角走 pcb mount-holes 做 M3 过孔(Ø3.2mm,孔心距边 5mm),模组天线端用全层禁布区。
布局按”先主要后次要”:模组天线端贴板顶边并锁定、端子贴左边、USB-C 贴下边后按模块手工把 26 颗小件摆到各自 IC 的电源/信号脚旁边,看起来还比较合理。
然后自动布线 + 电源:
easyeda pcb route-short --corner 45 # 75 段信号线 + 22 个过孔
easyeda pcb power-planes # GND 进内层、3V3 走内层电源面,并给每个电源脚打缝合过孔
easyeda pcb pour-rebuild

到这里,板子看起来像一块板子了:31 个器件、20 条网、电源/地铺铜、缝合过孔、45° 倒角走线。
之前就开始不停的重试,最后也没成功。
2)布线一直失败
收尾时原生 DRC 的 Connection 项里还剩这些焊盘没连通:
- MCU_RX / MCU_TX:U1(模组)↔ U3(CH340)共 4 个焊盘
- USB D− 网 3 个焊盘:J2 座上的两个 D− 脚 + CH340 的 D− 脚
分析原因:布局之后,连了一些线,应该是没有从头规划,导致这几个线一直也无法画成功,AI是删除了画,画了又删除,最后弹出对话框,总结了目前的状态,把问题留给了我。
3)最后的状态
| 项目 | 结果 |
|---|---|
DFM 审计 pcb check |
ERROR=0(0 悬空/0 压焊盘/0 短路/0 丝印错位),55 条 WARN(锐角 5、自由角度 8、并行耦合若干) |
| 原生 DRC 连接项 | 7 个焊盘未连(配图:PCB 顶视图。四角是 M3 铣孔,右侧黑色区域是模组天线全层禁布,黄色是走线/GND)(MCU_RX/TX 各 2、USB D− 网 3) |
| 原生 DRC 净距项 | 17 条(全部低于平台 0.6mm 预设、高于本板 0.152mm 规则) |
| 唯一”0 距离”接触 | 模组与它自己的天线禁布区重合——这是天线禁布的固有结果,不是错线 |
| 负面清单 | 内电层未翻成 PLANE;5V/VBUS 只能走 20mil 粗线而不是内层/铺铜;未加基准点 |
五、总结:
好的点:
- 数据手册核对:会自己去查原厂 PDF,把 VIH、VOUT 公式、脚义、饱和电流这些硬指标抠出来,并且用它改设计(CH340 改 3V3、电感换型、Cff 补 22pF)。
- 块复用 + 自检闭环:元件自动分配号、连内网、端口,之后自带 netlist / bridge-check / clusters / layout-lint 一串检查,失败会回滚重试。
不行的点:
- 布线是硬伤: 没有整体的规划,布线无法完成。
- 平台 DRC 规则失控:自定义规则写不进去,DRC 就只能一直挂着十几条”看起来红但工艺上没问题”的项。
也看到其它同学用 GPT6 去画电路图,效果还不错。感觉可能是Deepseek 4.1 Flash的能力有限,下次用一个能力强一些的模型再试试。
PS: Deepseek真便宜,用了1个多小时,还花3块多钱,主要原因是都命中缓存了,真厉害。











