ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

用原理图思维写技术博客:从PCB设计到内容创作的底层逻辑

用原理图思维写技术博客:从PCB设计到内容创作的底层逻辑 1. 第256天一个二进制整数带来的“自检时刻”1.1 程序员的时间刻度256这个数字对大部分人是“一年还没满但已经过了大半年”对写代码、画板子的人来说完全是另一层含义——它是8位无符号整数的上限是从0xFF装回0x00的那个溢出点是LED流水灯从第255次跳变回到初始状态的那一下。我特意挑在这一天停下来没急着继续写下一篇而是把过去两百多天产出的内容摊开像检查一张画了很久的图纸那样从头到尾把网络、引脚、封装、层次关系都重新过了一遍。说实话这一遍复盘比写任何一篇技术教程都更有价值。因为当创作周期拉长到两百多天一个问题会变得非常具体你写的东西本身有没有“电气连接”意义上的自洽性换句话说读者按着你说的步骤做能不能真的导通这个问题普通的工作笔记回答不了只有一张严格意义上的“原理图”能回答。这里说的原理图不单指Altium Designer里那个绿色网格上的符号和连线而是指一种思维方式把复杂系统拆成有明确引脚的元件用网络标号说明连接关系用层次图组织功能模块最后通过设计规则检查找出悬空引脚和短路网络。这是我画了多年PCB之后刻进肌肉记忆的工作方式而在第256天回头看我发现技术博客想要写得真正有用恰恰也就是这么回事。1.2 从“随手记”到“原理图”之间的距离刚起步那阵我的博客和大多数人一样属于“接线草图”级别。所谓接线草图就是只有自己能看懂的那种记录今天调通了某个驱动记录几个关键寄存器明天解决了某个报错贴一段日志偶尔心血来潮把某个完整模块从头到尾写一遍。这样的内容不是没有价值它的价值是即刻的、私人的像是画在草稿纸背面的引脚定义能帮当时的自己回忆起刚刚做过的事。但草图的问题在于它经不起时间检视。两周之后你在文章里写“IN4007二极管”但实际电路用的是SS34肖特基两种管子压降、反向恢复时间都不同草稿上却完全看不出来。三个月之后有人私信问你“按你的电路图搭了怎么不工作”你回头翻文章发现供电部分没画滤波电容晶振位置离芯片太远复位电路用了手册里不推荐的方式——这些问题在草稿里被跳过却恰恰是原理图设计中最基本的ERC检查项。第256天这个节点我做的第一件事就是承认过去大部分文章只能算“高级笔记”不够格叫“原理图”。这个承认很重要因为只有你先意识到差距后面的改造才有方向。就像画原理图之前必须先弄明白信号流向写博客之前也得先想清楚这篇文章的输入是什么读者看完能拿到的输出是什么中间经过哪些“元件”和“连接”哪一处是致命的开路哪一处是无所谓的NC引脚。1.3 热搜词里的另一个世界当然单靠自己的复盘还不够。我在第256天还专门做了一件平时不太做的事——把“原理图”相关的搜索热词拉出来看了一遍。dtp的标题虽然写的是“技术博客成为第二份原理图”但热搜词里藏着大量真实需求stm32f103c8t6原理图、stm32最小系统板原理图、5v转3.3v稳压电路原理图、tb6612电机驱动原理图、max485ed应用原理图、dht11原理图嘉立创画图、ad检查原理图有没有连上……这些搜索背后是无数个正在实验室里画图、流片、调试的工程师和学生。看完这些词我意识到一个被我忽略了很久的事实大家在搜索“xx原理图”的时候真正想要的往往不只是那张图本身而是“为什么这个引脚要这样接”“为什么这个电阻要放在这里”“网络标号该取什么名字才能让PCB布局更顺畅”这一连串的问题。也就是说他们缺的不只是一张静态的图纸而是一套决定图纸形态的判断逻辑。这恰恰是技术博客最应该给、也最难给的东西——像原理图一样结构化的知识连接关系。2. 博客“原理图化”改造层次结构、网络标号与设计规则检查2.1 先画顶层框图目录与写作地图原理图设计有个基本习惯先画层次框图再往下展开具体电路。顶层框图只放功能模块和接口关系不关心具体引脚和阻容取值到了底层子图才逐个放置元器件、连线、标注网络名。层次结构的好处是不管是画图的人还是看图的人都能在30秒内理解系统全貌然后按需深入任意细节。我在第256天之后的博客改造第一刀就砍在结构上。以前写文章是“线性流水账”引言、环境配置、代码、运行结果、总结。现在改成“层次化设计”开头必须有全局视图说明这个方案解决什么问题、由哪几个功能块组成、彼此之间怎么交接中段的每个功能块独立成段允许读者精确跳转结尾再回到顶层把各模块合起来讲一遍整体行为。你可能觉得这不就是“总-分-总”吗不完全是。原理图层次的精髓是“每个层次都能独立阅读、独立验证”。按这个标准去写博客意味着中段每个功能块都必须有自己的输入输出描述必须清楚标注它与前后模块的连接条件。就拿我写“STM32最小系统板”这篇文章举例顶层是电源、时钟、复位、下载调试四个子系统电源子图里详述5V转3.3V的LDO选型和去耦电容布局时钟子图里讲8MHz晶振起振电路、匹配电容计算复位子图里规范上电复位时序下载调试子图里标注SWD接口定义与目标板供电关系。每一层剥开都有完整信息读者甚至不需要看其他段落就能把某一部分做出来。2.2 网络标号关键词不是标签是连接点原理图上两个相距很远的引脚靠一个相同的网络名比如VCC_3V3、SCL、TX1完成电气连接不需要画一条横跨整张图的导线。这种“通过网络标号连接”的机制放在博客里就是关键词和术语索引的用法。以前写文章提到某个芯片或某份文档我倾向于把它当“标签”处理第一次提到时加个超链接后面就不再解释。这种写法的问题在于它只是单方向的索引不是双向的连接。读者如果从文章中间某个章节进入搜索引擎带来的流量大多如此他根本不知道这个术语被定义在什么地方也不知道它和当前上下文存在什么约束关系。原理图式的写法要求每个关键网络名在一篇文章里始终指向同一个逻辑对象并且首次出现时给出充分定义。比如“PA9”这个引脚名不能一会儿写成“PA9”一会儿写成“USART1_TX”一会儿又写成“串口发送脚”。这三个其实描述的是同一网络的三个侧面在原理图里它们可以被标成同一个网名附上别名注释在博客里我就得在第一次提到时写明定义方式PA9是GPIO端口位复用功能是USART1_TX调试时需要外接TTL电平转换芯片。之后再出现统一使用一个主名称其余作为备注。这样做的好处和原理图里网络标号的好处一模一样改起来方便。假如读者反馈某篇文章里的通信线需要调整极性你只需要找到那一个网络名的定义处做修改所有依赖这个定义的段落自然成立不用满文乱找“串口”“UART”“USART”“TTL”各种叫法。2.3 写作前的ERC/DRC检查像查原理图一样查文章原理图画完不是终点还要跑一遍Electrical Rules Check和Design Rule Check。ERC管的是电气错误比如输出引脚直接接电源、引脚悬空、网络冲突DRC管的是物理规则比如焊盘间距过小、走线宽度不足。这两个检查流程救了我无数次到了写作这件事上它们的对应物也意外地清晰。我的做法是每篇博客定稿之前强制跑一遍“电气”和“物理”两轮自查。电气层面的自查清单包括开篇是否定义了所有专业术语文中出现的引脚名、寄存器名、芯片型号是否与官方手册一致每个操作步骤是否有明确的输入条件读者需要先准备好什么和可观察的输出结果做到哪一步能看到什么现象有没有出现“前面的结论依赖后面才解释的概念”这种悬空网络。物理层面的自查则偏向表达格式代码块是否标注了语言类型电路原理图是否标注了关键参数而不是只有一张光秃秃的截图表格是否把对比对象的差异列清楚超链接是否指向稳定来源段落长度是否适合屏幕阅读而不是一大坨。这两轮检查听着繁琐实际操作下来每篇也就是多花二十多分钟。但这二十分钟省掉的是发布后几十条“我照着做怎么不对”的追问。我自己的记录是执行这套检查之后博客底下需要反复追问澄清的留言减少了七成以上。原理图领域常说“好的设计是查出来的不是画出来的”写博客其实也是这个道理。3. 热搜词里躺着读者真正的“PCB布局”需求3.1 电源、最小系统、通信接口三条不变的主线仔细看热搜词会发现它们大体落在三个范畴最小系统板stm32f103c8t6、stm32f407zgt6、esp32-wroom-32、电源电路5v转3.3v、整流桥、IP5209充电和通信/驱动接口RS232、MAX485、TB6612、JTAG、蜂鸣器。这和PCB设计的底层规律完全对应任何一块板子无论功能多花哨都离不开可靠的供电、稳定的核心系统、清晰的对外接口。作为写博客的人理解这三条主线比追热点重要得多。第256天我对照热搜词重新梳理了自己的选题库发现过去两百多天有一半以上的内容其实都在这三根线上打转只是自己没意识到它们之间的关联。意识到之后选题就不再是“今天遇到啥写啥”的无序状态而是变成了一个有约束条件的规划问题这篇文章有没有落在三大主线之一如果没有它和主线之间有没有清晰的可追溯关系我举一个具体例子。有一阵我发现不少人在搜“stm32c8t6原理图”的同时也会搜“5v转3.3v稳压电路原理图”。这两者看似独立实际是同一个系统里的两个层次最小系统板是核心供电网络是骨干。于是我把它们合并成一个系列先讲最小系统板的电源设计为什么通常从5V经LDO转3.3V再讲如果改用DC-DC方案纹波、静态电流、PCB布局各会受什么影响。单篇文章解决的问题变多了读者从供电方案跳转到核心板设计的过程也变得自然。3.2 看懂搜索词背后的人学生、转岗技术员与竞赛队伍关键词分析如果只停留在“这些人要什么”那还远远不够。我自己会再往下想一层这些人是谁在第256天的复盘里我把“原理图”搜索人群粗略分了几个类型。第一类是高校学生主要在课程设计和电子设计竞赛场景下需要快速搭出能用的电路搜索习惯偏向“某某板原理图”“某某芯片应用电路”。第二类是转岗的技术员他们的特点是懂生产、会焊接、看得懂实物但从实物经验向原理图设计能力跨越时最需要的是“实物和图纸之间的一一对应关系”而非单纯的电路理论。第三类是已经在做产品开发的工程师搜索关键词更加具体比如“ad检查原理图有没有连上”“cadence打印原理图不显示nc器件”“orcad原理图页码重复”这类搜索暴露的是工作流里的精确痛点。这三种人就算搜同一个词需求也是分裂的。比如搜“dht11原理图嘉立创画图”的人很可能是一个拿到传感器模块但不知道怎么在软件里画出可生产文件的学生他要的不只是DHT11的数据手册而是从元件库调用、符号放置、网络连接到生成Gerber的完整路径。同样是DHT11一个工程师搜的可能是“DHT11上拉电阻取值与总线长度关系”关注的是总线可靠性和大批量一致性。理解了这一点我写作时就会刻意避免“一篇文章试图服务所有人”的陷阱。如果热搜词是“某某原理图”我会默认读者至少已经拿到了芯片和手册心存“我想复现一个能用的设计”的明确目标这时候文章重心就放在选型理由、外围参数计算、布局注意事项如果热搜词包含了“嘉立创画图”“eplan”这样的工具名我会默认读者处于学习工具的阶段文章重心就调整到软件操作路径和常见误区上。3.3 将热搜词反推为创作路线图我以前对搜索热词有偏见觉得那是运营才关心的事技术作者研究这个不够“体面”。但第256天的数据拉练改变了我的看法。搜索词本质上是海量工程实践问题的镜像——每当一个词条被反复搜索就说明有相当数量的人在同一个地方被卡住。技术博主的核心价值不正是帮人从卡住的地方往前走一步吗按照这个逻辑我把热搜词整理成了一张“需求映射表”左边是搜索词中间是真实痛点右边是我的回应方式。拿热搜词里的“原理图引脚连接报目请单”这明显是输入法把“报告清单”打成了“报目请单”来说痛点就是很多人不会看生成的连接报告、不知道哪些告警可以忽略、哪些必须处理。针对这个痛点我专门写了关于“ERC报告分级解读”的内容把告警分成致命错误、必须人工确认项、可忽略项三档并给出每种情况下的实例。这篇的内容后来成了我博客里长尾流量最稳的文章之一说明真实需求确实是被压制了很久的。这套映射表的另一个优点是它能帮我看清哪些“网红选题”其实没人搜。比如有很多人讲“STM32入门”但真正卡住新手的从来不是“入门”这个抽象概念而是具体到“下载器连不上”“复位电路不工作”“PA9和PA10为什么还要交叉连接”。与其写一篇泛泛的入门文不如把热搜词里那些具体到不能再具体的问题一个个啃下来。抽象的概念留给教材具体的坑留给博客。4. 建立个人“元器件库”写作素材、代码片段与踩坑记录的封装和复用4.1 封装不匹配的教训原理图设计里最让人头疼的一类错误是封装不匹配。原理图符号看着是对的引脚编号也对得上但一到PCB布局阶段发现某个电阻实际尺寸比丝印大了一圈或者某个连接器的引脚顺序和实物完全相反。这种错误如果在打样之后才发现轻则割线飞线重则整个板子报废重做。写作这件事上的“封装不匹配”我在前两百多天里也反复踩过。最典型的一种情况是从别的文章或项目里复制了一段代码没检查硬件连接假设就直接贴进自己的工程。代码运行报错之后才发现别人的代码用的是Arduino的引脚映射而我用的STM32的GPIO完全不是一回事。去网上找解决方式又看到一份标注着“适用于STM32F103系列”的文档结果把F103C8T6的引脚定义套到F407ZGT6上又是一轮新的不匹配。这类教训让我意识到博客写作必须像管理元器件库一样管理自己的素材每一种可复用的内容都要有明确的封装信息——适用平台、版本条件、依赖关系、验证状态。缺了封装信息再好的代码块和电路图也只是散落的引脚连不成可用的系统。4.2 三类核心“元器件”案例库、代码库、踩坑库第256天的复盘里我尝试把自己过去积累的内容分成了三类“元器件库”并且给每个器件都写了封装描述。第一类叫案例库。这类内容的最小单位不是代码而是一个完整的、可独立工作的设计组合。比如“STM32F103C8T6最小系统板”它包含原理图、PCB布局建议、BOM清单、下载配置方法。我要求案例库里的每一条记录都必须注明使用的IDE版本芯片封装的具体型号晶振匹配电容的计算过程以及在什么环境条件下实际跑通过。这就像原理图库里的元件Symbol如果只有图形没有属性放到图纸里迟早出问题。第二类是代码库拆到函数或模块粒度。与案例库不同代码库更适合处理“单片机的某类外设怎么配置”这种局部问题。比如“用定时器输出PWM控制舵机”“用DMA接收不定长串口数据”“用ADC采集多通道电位器”。我给自己定的规矩是代码库的每段代码必须有头注释说明硬件接法和前提条件不能光秃秃贴代码。甚至版本更新之后旧代码要标记为“已废弃”而不是悄悄删除就像元器件库里的旧封装一样标记过时但不影响历史项目引用。第三类是踩坑库记录真实调试过程中遇到的问题和解决路径。比如“JTAG接口因为SWDIO被复用导致无法下载”“DHT11时序在慢速单片机上的微妙差异”“TB6612电机驱动板输入逻辑与PWM频率的搭配问题”。踩坑库里的每一条都要交代现象、排查链路、根因以及如何避免。这几乎就是原理图DRC报告的人工注释版——不是错误本身有价值而是找到错误的过程有价值。4.3 模块复用与原理图移植原理图设计中成熟的模块画好一次就可以反复调用比如经典的5V转3.3V电路、USB转串口电路、电池充电电路。每次调用只需要根据新项目的输入输出条件微调个别参数整体的连接关系和布局经验直接继承。这个思维用到博客写作上最大的收益是产出速度的提升。以前写一篇带电路图的技术文我需要从头把每个元件、每条网络都重新组织一遍语言动辄折腾一整天。现在元件库里的“5V转3.3V稳压电路”模块已经有了一个成熟表达先说明输入输出范围和最大电流再放原理图然后给出去耦电容为什么选0.1uF和10uF组合的理由最后补一条关于PCB布局时LDO要靠近负载侧的经验。不管这篇文章的主线是传感器采集还是电机驱动只要涉及供电这个模块就能以调整过的形式复现我只需改掉与上下文强相关的描述即可。但模块复用不等于无脑复制这里要强调的是“根据上下文适配”。原理图里同一个模块在不同的系统位置可能需要调整VCC的去耦电容数量或者改变反馈电阻的分压比博客里的同一段文字放在一篇面向新手的文章和一篇面向进阶工程师的文章里详略和措辞也必须不同。我的处理方式是元器件的“标准封装”只保证基础连接正确真正面向某一篇具体文章时还会像改PCB封装一样做一次“适配性重检”把不适用的细节删掉把缺失的前提补上。5. 把写博客当成画一块不断改版的PCB第二次“打样”的经验5.1 版本管理不是只管代码也要管文档硬件工程师都清楚一块板子很少一次打样就量产。V1.0验证功能V1.1修正某些信号线的串扰V1.2调整结构件干涉V2.0再引入新的功能模块。版本管理的核心不是“存了多少历史文件”而是每一次改版都能追溯到明确的变更原因并且回退路径清晰。博客的写作也是同样的道理。以前我写完一篇文章就直接覆盖发布等过几个月想回头改才发现自己根本想不起当初为什么这么写。第256天之后我给自己的内容体系引入了版本化思维每篇博客的草稿、修改记录、发布版分别保存内容的更新原因要写在文末的“修订记录”里比如“V1.1根据读者反馈补充去耦电容布局建议”“V1.2将AMS1117替换为XC6206待机功耗更低”。这样无论是自己回溯还是读者理解演进都有迹可循。顺带说一个细节版本化操作让“重构老文章”变得不那么痛苦了。以前看到一篇早期文章到处是洞总觉得改起来工程量大干脆放着不管。现在我会把老文章当成一块需要加改版的旧PCB把它拆成模块替换过时的“封装”比如某些已经停产的芯片型号修正存在误导的连接描述然后升一个版本号重新发布。这种增量式更新比憋大招似的“彻底重写”可行得多。5.2 用DRC的精神审视内容哪些是需要剔除的“废引脚”原理图设计规则里有一条我很喜欢的原则任何引脚要么有连接要么有明确标注的NCNot Connected。悬空的引脚在DRC里会被标出来不一定是错误但你必须知道它悬空是有意的还是遗漏的。这个原则放到博客写作中对应的是对“信息密度”的审视。我回头统计过早期文章里大概有三分之一的段落属于“悬空引脚”它们看起来存在实际上没有跟文章主线产生任何连接。比如客套式的开头“随着科技的发展”、大段的背景介绍、堆砌的术语罗列删掉之后对读者的理解和操作毫无影响——这就是典型的NC引脚不标注就等于设计疏忽。第256天之后我给自己定了一条规矩每篇文章的每个段落都必须能回答“这段和主线有什么关系”。没有关系的要么重新建立连接要么直接删除。这条规矩带来的最直观变化是文章篇幅未必变短但阅读效率明显提升读者从开头走到结尾不再需要穿越一堆冗余信息就像PCB上的信号走线不再绕远路损耗自然降低。判断“废引脚”的方式我建议作者们拿出自己的某一篇文章逐段问三个问题这段话删掉之后后面有没有需要它做铺垫的地方这段话有没有给出可操作的、具体的信息这段话有没有与标题或热搜词建立可识别的连接三个问题回答完了能留下来的段落自然就是真正参与“电气连接”的内容。5.3 更新的节奏与自己的边界还有一个不能回避的现实问题更新频率。第256天我在审视这一路时发现自己曾经为了保持日更而被迫降低单篇质量这本质上和为了赶交期而省掉DRC检查的打样没什么区别——短时间看产出多了长期看废品率也上去了。后来我调整了节奏每周两篇是底线一篇偏深度长文加一篇偏工具技巧的短文。深度长文对应的是原理图设计中的“完整子系统”需要充分的调研和实测工具技巧短文则像是标准元件库里的一个简单调用花的时间少但必须保证单点信息准确。这个组合既能满足输出频率又不至于把每篇文章的深度拖垮。坦白说这样的调整让我的写作变慢了但文章的有效周期变长了。以前日更的内容很多一周后自己都不想再看现在一周两篇的内容有些发布几个月后还在收到“这篇文章帮我解决了问题”的留言。对一个把博客当成“第二份原理图”来维护的人来说没有比这更令人满足的正反馈了。
返回列表