让 AI 写驱动前,先把原理图做成一份 MD 文档

写底层驱动前,先把原理图导出网表,让 AI 总结成一份针对主控 MCU 的引脚资源说明(作者叫它 mcu_pin.md),放进项目的 hardware/ 目录,并在 AGENTS.md 或项目 SKILL 里写一条规则:「开发驱动前先查这个文件」。之

原笔记引用的 7 张配图目前未提供;此页保留文字与来源,涉及图示的段落需对照原文阅读。

版本与验证范围

收藏整理,原作者与来源见正文;不作为 Lan 的原创项目或实测结论。

来源:抖音视频 · 电流秩序 · 约 2 分 22 秒 · 作品 ID 7698624652372905270

写底层驱动前,先把原理图导出网表,让 AI 总结成一份针对主控 MCU 的引脚资源说明(作者叫它 mcu_pin.md),放进项目的 hardware/ 目录,并在 AGENTS.md 或项目 SKILL 里写一条规则:「开发驱动前先查这个文件」。之后让 AI 写驱动,你只说「帮我开发板载 Flash 驱动」就行,不用再一遍遍交代用的是哪路 SPI、片选接哪个脚。

如果你的实际工程采用 drv / bsp / app / hal 之类分层,这条和分层工作可以互补:分层解决代码结构,这份文档解决「AI 怎么知道板子长什么样」。

1. 痛点:接线信息每次都要重说一遍

此处配图暂缺,参阅原帖。

写底层驱动前,先得弄清板子上器件怎么连的:屏幕接哪个 SPI、串口用了哪两个脚、哪些是输出控制、哪些是模拟输入。传统做法是一次次翻原理图,或者做成表格再一次次查看;到了 AI 时代,如果不处理,就变成每次在提示词里重复交代一遍接线。

2. 做法:把原理图总结成一份 MD 文档

此处配图暂缺,参阅原帖。

作者把这个文档命名为 mcu_pin.md,放在 hardware/ 下。理由是:MD 是最适合 AI 读取的文档格式之一(各种 Skill 都是 MD 格式)。

文档里详细清晰地描述各个外设与 MCU 之间的连接关系:网表网络名、MCU 端口、物理脚号、复用功能(AF)、直连到器件的哪个脚。

原帖里真实的表格长这样(NOR Flash U7 / W25Q128JVSIQ 那一节):

此处配图暂缺,参阅原帖。

最值得抄的不是表格,是那几条「边界声明」

此处配图暂缺,参阅原帖。

视频里这份文档的开头藏着一整套防 AI 幻觉的设计,这部分比表格本身更值钱:

声明 作用
板级连接唯一来源:prism_h7_Netlist_V1.1,不混入其他版本网表 防止 AI 拿旧版本网表的信息来回答
物理脚号来源:引脚 csv + 数据手册管脚表 说清哪些是查表得来的
AF、GPIO 模式、有效电平、软件用途是交叉核对现有驱动得到的,不是网表直接给的 明确区分「事实」与「推测」,避免 AI 把推测当事实
器件时序、电气限制仍需查对应手册 划出文档的适用边界
网表没定义外接模块型号,不能仅凭连接器推断协议或 I²C 地址 直接堵死最典型的一类幻觉
网表「未列出」≠ 已确认可用于新外设 防止 AI 把「没写」当成「可以用」
整理日期 + 网表 SHA-256 硬件改版后能立刻发现文档过期

3. 四步落地

此处配图暂缺,参阅原帖。

  1. 从原理图导出网表文件(作者说具体导出方法见他之前的视频);
  2. 让 AI 从网表总结出一份针对主控 MCU 的引脚资源说明,即 mcu_pin.md;
  3. 在项目规则文件 AGENTS.md 或项目 SKILL 里提及这个文件,提醒 Agent 开发驱动时要查询它作为参考;
  4. 后续开发时 Agent 自己查,你不用再交代接线。

配套动作(视频强调):硬件有改动就同步更新。过期文档比没文档更危险——它会让 AI 自信地给出错误引脚。

4. 效果:同一句需求,两种反应

此处配图暂缺,参阅原帖。

视频里的真实例子:让 AI 移植 Flash 驱动,只说「帮我开发板载 Flash 驱动,支持初始化、读取 JEDEC ID、数据读取、扇区擦除和分页写入」。

Agent 的回复(画面原文大意):查阅 hardware/mcu_pin.md,确认板载器件为 W25Q128JVSIQ,使用 OCTOSPI1 + OCTOSPIM 端口 1,CLK=PB2、CS=PG6,IO0~IO3 分别为 PA2、PD12、PA3、PA10;FLASH 与 PSRAM 共用 OCTOSPIM 管理,会复用现有总线封装并保留 PSRAM 路由,继续核对擦写时序及映射访问的并发约束。

注意最后那句——Agent 不只是查到引脚,还自己指出了总线复用与并发约束这个真风险。外设引脚越多越杂乱时,这种做法的优势越大。

5. 为什么不直接让 AI 读网表

此处配图暂缺,参阅原帖。

视频的回答很实在:当然可以直接读。只是:

  • 网表包含整块板子的连接信息,每次开发都要重新查找和梳理;
  • 提前整理成面向 MCU 的引脚资源说明,信息更集中;
  • 自己方便核对、Agent 后续方便查阅;
  • 相对于读网表,读信息集中的 MD 也能省 token。

6. 怎么套到你的工程上

你做 H 题智能车和四足机器人,两块板子都可以这么做(下面是我的落地建议,非视频原话):

  1. 嘉立创/立创 EDA 里直接导出网表,和原理图一起放进 hardware/,顺手记下版本号。
  2. 让 AI 生成 hardware/<板名>_pin.md,要求它包含:元信息(网表版本 + 日期 + 校验值)、按外设分组的表格(网络名 / 端口 / 物理脚 / AF / 直连器件脚)、以及上面那几条边界声明。
  3. 在 AGENTS.md 里写死一条规则:「涉及底层驱动或管脚定义时,先查 hardware/<板名>_pin.md;需要进一步核对时使用文档标注的对应版本网表;发现文档与驱动代码不一致时明确指出,不要凭文件名或历史结论猜测。」——这最后一句是视频里的原话,也是最有用的一条。
  4. 和分层架构对齐:bsp 层的管脚定义可以从这份文档生成,drv 层的总线封装照文档里的「现有驱动」一列复用,避免同一路 SPI 被两处重复初始化。
  5. 改板必更新。 可以在文档里写「硬件版本变更后必须重新生成」,并要求 AI 报告它依据的是哪个版本。

顺带一提,这其实就是 008 那条「别一句话让 AI 干完」在嵌入式上的解法:不是靠提示词写得更长,而是把反复要交代的信息固化成项目里的一份文档。

来源与关联索引
来源
个人知识库
原笔记
抖音收藏待整理/018-把原理图做成MD文档.md
资料性质
工程笔记。原文的版本、来源与验证边界继续保留。
关联笔记 5
返回文章目录

想去哪里?

22 个入口

首页作品作品展厅全部项目文章总览文件夹标签资料归档关于认识 Lan探索路线工具与工作台最近在做InkFeed · 4.2 英寸电子纸信息终端VIBRATION · 柔性振动检测与采集链路TRACE · 航向保持与灰度循迹小车STRIDE · 八自由度四足机器人SCOPE · 固件日志浏览器温度为什么被 AI 改了?FIFO 有半帧,就一定是故障吗?直线守航向,弧线再看黑线。

Tab 选择入口 · Enter 打开 · Esc 关闭