立创EDA复刻硬木课堂便携示波器:H750核心板优化与示波器扩展板实战
立创EDA复刻硬木课堂便携示波器H750核心板优化与示波器扩展板实战最近看到硬木课堂的便携示波器项目挺火的很多朋友都想自己动手做一个。我也跟风用立创EDA复刻了一套从画板、打样到焊接调试整个过程踩了不少坑也积累了一些经验。今天就把这个完整的复刻过程特别是H750核心板的优化和示波器扩展板的实战调试分享给大家。无论你是想复刻这个项目还是想学习4层板设计和便携仪器开发相信这篇教程都能给你带来帮助。1. 项目概览与准备工作咱们这个复刻项目说白了就是自己做一台能揣进口袋的迷你示波器。整个系统由两块核心的电路板组成它们通过排针连接在一起。第一块是H750核心板。它的“大脑”是意法半导体的STM32H750VBT6微控制器性能非常强悍。这块板子我并不是从零开始画的而是参考了开源社区的一个优秀设计并针对我们这个示波器项目做了针对性的优化。比如我把大部分元件的封装换成了更常见的0603尺寸这样焊接起来对新手友好多了我还把板子上的排针接口顺序调整得和硬木课堂原版核心板一模一样这样就能无缝对接他们的示波器扩展板程序了。当然这块核心板本身功能完整你也可以把它单独拿出来当一块高性能的STM32H7开发板用。第二块是示波器扩展板。这块板子就是示波器的“身体”负责信号采集、处理和人机交互。它的原理图我基本照搬了硬木课堂训练营的示例工程只做了两个小改动一是把屏幕接口移到了核心板上让结构更紧凑二是把供电接口换成了现在更通用的Type-C。注意这是我第一次尝试画4层板设计上难免有考虑不周的地方。而且在调试过程中我发现了一个至今没完全解决的问题用这个示波器去测量核心板自己产生的DAC_OUT信号时始终测不到波形。但用一块专门产生PWM信号的小板子测试输入信号是能正常采集显示的。这个问题也写出来和大家一起探讨。工欲善其事必先利其器。在开始之前你需要准备好以下东西软件立创EDA专业版用于电路设计和PCB布局、Keil MDK ARM 5.35用于程序开发、STM32CubeProgrammer用于程序烧录。硬件所有元器件的采购清单BOM表可以在立创商城配齐。最重要的芯片STM32H750VBT6和屏幕等关键部件要提前确认库存。知识储备需要对STM32单片机有基本了解会用万用表和示波器进行电路调试当然还得有耐心和细心。2. H750核心板优化设计与焊接要点原版的开源核心板设计得很棒但为了更适合我们复刻和焊接我做了几处关键的优化。2.1 核心优化改动元件封装优化原设计可能使用了一些更小封装的元件比如0402这对焊接手艺要求很高。我把绝大部分的电阻、电容都改成了0603封装。这个尺寸大小适中用普通的电烙铁甚至热风枪都能比较容易地焊接大大降低了制作门槛。接口布局优化为了让这块核心板能完美兼容硬木课堂的示波器主板扩展板我仔细对照了原版核心板的排针定义将两排扩展接口的引脚顺序排列得和原版完全一致。这样下载官方的示波器程序后几乎不需要修改引脚配置就能直接运行。电路精简开源设计可能包含了一些我们这个示波器项目用不到的功能电路比如某些特定的通信接口。我去除了这些冗余电路让板子更简洁成本也更低。集成USB编程接口一个非常方便的改进是我在核心板上直接集成了USB接口Type-C和相关的编程电路。这意味着你不需要额外的ST-Link之类的下载器用一根USB线就能给芯片烧录程序极大方便了调试。2.2 焊接顺序与避坑指南焊接顺序很重要正确的顺序能帮你快速定位问题。我是按照以下步骤进行的推荐你也这样做第一步焊接电源部分先焊接Type-C接口和它周围的电源电路比如稳压芯片、滤波电容等。焊好后先不要焊主芯片用万用表测量板子的供电电压比如3.3V、1.8V等是否正常。确保电源没问题是后续所有工作的基础。第二步焊接MCU及最小系统电源测试OK后开始焊接STM32H750主芯片以及它的“生存必备”电路——也就是晶振、复位电路、启动模式选择电路和滤波电容。这部分焊好后可以再次上电测量主芯片的供电引脚电压是否正常。此时就可以通过USB口尝试连接STM32CubeProgrammer看看是否能识别到芯片初步判断最小系统是否工作。第三步焊接屏幕与基础测试接下来焊接LCD屏幕的接口和驱动电路。焊好后写入一个最简单的点亮屏幕的测试程序或者直接写入官方的示波器程序看看屏幕能否正常显示。如果屏幕亮了说明核心板的主要功能MCU、内存、屏幕接口都是好的。第四步焊接剩余外围电路最后焊接RGB LED、用户按键、扩展排针等剩下的所有外围器件。每焊接完一部分最好都简单测试一下功能。踩坑记录RGB LED灯珠这里我踩了第一个坑。我一开始没仔细看买了3528封装的共阴RGB LED。结果焊上去怎么都不亮。后来检查才发现原设计使用的是共阳RGB LED。两者内部结构不同驱动方式完全相反。赶紧换成共阳的立马就点亮了。大家采购元器件时一定要看清规格书共阴Common Cathode和共阳Common Anode千万别搞错。3. 示波器扩展板调试核心与电源陷阱扩展板是信号进来的通道它的稳定与否直接决定了示波器测量的准确性。这块板子我基本沿用了官方原理图但调试过程特别是在电源部分遇到了大麻烦。3.1 电源电路调试——一个烧毁多片芯片的深坑扩展板上需要不同的电压比如5V -12V等这里用了MT3608这类升压芯片来生成。问题就出在MT3608的反馈FB引脚电路上。故障现象我第一次焊接好扩展板的电源部分后一上电MT3608芯片瞬间发烫然后冒烟烧毁导致整个电源电路短路。排查过程我一开始只买了一片MT3608烧了之后又买了十片。然后就是漫长的排查不断更换新的MT3608同时反复拆卸、测量周围的分压电阻、滤波电容和二极管。用万用表仔细检查FB引脚到电阻分压网络再到输出端的通路是否连通。根本原因最终发现问题可能出在D6这个二极管上在官方原理图中它可能是一个瞬态抑制二极管。我买的这个二极管没有标注正负极我很可能把它焊反了这导致MT3608的FB反馈回路不通芯片无法感知输出电压于是持续满功率工作瞬间过流烧毁。不仅如此扩展板上-12V电路中的D4、D5二极管如果使用同款也会导致电压异常。解决方案我把D4、D5、D6全部换成了SS34肖特基二极管。SS34有明确的正负极标记通常有杠的一端是阴极不容易焊错。更换之后所有电源电路输出都恢复正常了。血泪教训对于电源芯片反馈回路必须确保绝对正确和连通。对于没有极性标记的二极管一定要用万用表二极管档位测量确认极性后再焊接。在不确定的情况下换成规格相近但有明确标记的常用型号如SS34、1N5819等是更稳妥的选择。3.2 焊接与测试建议扩展板的焊接顺序同样建议“电源优先”首先焊接电源电路的所有元器件芯片、电感、电容、二极管、电阻。上电前务必用万用表蜂鸣档检查输入是否有短路特别是Type-C接口的VBUS和GND。上电后不要急着接核心板先单独测量扩展板各个电压测试点的输出是否正常如5V -12V等。电源测试通过后再焊接模拟前端运放、衰减网络、BNC接口等其他器件。4. 软件程序烧录与引脚修正硬件准备就绪后就需要让软件跑起来了。4.1 开发环境搭建程序方面我们直接使用硬木课堂官方提供的示波器源码这省去了从头开发的麻烦。你需要准备Keil MDK ARM版本推荐使用5.35。STM32H7的Device Family Pack版本为2.7.0。这个包包含了H750芯片的寄存器定义和启动文件必须在Keil中安装好。从训练营群文件或其他开源平台获取到官方工程文件后用Keil打开即可。4.2 关键引脚修正在编译代码前有一个必须修改的地方。官方原版的H750核心板其排针上的PB8和PB9两个引脚定义标错了。我在画自己的核心板时没有仔细核对沿用了这个错误的定义。因此在程序里我们需要把这两个引脚的功能对调一下。修改方法很简单找到工程中关于继电器控制或相关功能的头文件例如relay.h里面会有类似#define RELAY_PIN GPIO_PIN_8这样的定义。你需要将PB8和PB9对应的引脚号交换。例如原代码可能是#define RELAY1_PIN GPIO_PIN_8 // 对应PB8 #define RELAY2_PIN GPIO_PIN_9 // 对应PB9根据你的实际电路连接可能需要改为#define RELAY1_PIN GPIO_PIN_9 // 现在对应实际板子的PB9 #define RELAY2_PIN GPIO_PIN_8 // 现在对应实际板子的PB8请根据你核心板PCB上的实际走线来确定如何修改。修改后编译工程应该就能顺利通过。4.3 程序烧录USB方式得益于我们在核心板上集成了USB编程电路烧录程序变得非常简单用Type-C数据线连接电脑和核心板的USB接口。按住核心板上的Boot按键或Boot0设置按键不放。给核心板上电如果是从电脑USB取电则相当于连接电脑时已上电。打开STM32CubeProgrammer软件连接方式选择USB。软件应该能自动识别到芯片。如果不行检查驱动或尝试重新插拔。在软件中点击“Erase”擦除整片可选然后点击“Programming”选择Keil编译生成的DAC.hex文件点击“Start Programming”即可完成烧录。烧录完成后断开USB线重新上电程序就会自动运行了。5. 组装、测试与待解之谜当两块板子都焊接调试好程序也烧录进去后就可以组合测试了。将H750核心板小心地插到示波器扩展板的排针插座上确保方向正确、引脚对齐。连接Type-C电源屏幕应该点亮并显示示波器的操作界面。你可以用一个信号发生器或者像我一样打一块简单的PWM测试板将信号接入扩展板的BNC接口看看屏幕上是否能稳定显示波形。通过面板上的按键和编码器尝试调整时基、电压档位测试触发功能等。然而就像开头提到的这个复刻版目前还存在一个未解问题当选择测量核心板自身产生的DAC_OUT数模转换输出信号时示波器无法采集到波形。但外部输入的PWM信号是能正常显示的。这可能是由于核心板DAC输出电路与扩展板输入通道之间存在设计冲突例如地线回路问题。程序中的信号通路选择配置可能需要调整。硬件上某处存在细微的短路或断路。这个问题我还在排查中如果你在复刻过程中找到了原因非常欢迎交流分享。搞硬件开发就是这样解决问题的过程本身就是最好的学习。最后你可以为你的便携示波器装上3D打印的外壳再贴上定制的面板一台属于你自己的、带有DIY印记的便携示波器就真正诞生了。从电路图到握在手中的实物这个过程充满挑战但最终的成就感也是无可替代的。希望这篇详细的实战记录能帮你少走些弯路顺利复刻成功。