立创EDA训练营实战:基于CW32F030的BLE多功能测试笔硬件设计与安全考量
立创EDA训练营实战基于CW32F030的BLE多功能测试笔硬件设计与安全考量最近在立创EDA的训练营里我跟着教程复刻了一个很有意思的小工具——点晶多功能测试笔。这个小东西麻雀虽小五脏俱全它不仅能像万用表一样测量信号还能自己产生信号并且通过蓝牙把数据传到手机或电脑上非常方便。很多朋友对如何从零开始设计这样一个集测量、发生、显示、无线通信于一体的便携设备很感兴趣今天我就把自己在设计和调试过程中的思路、关键电路以及踩过的坑给大家掰开揉碎了讲一讲。这个项目的核心是一颗国产的CW32F030C8T6单片机围绕它我们搭建了信号输入/输出电路、BLE蓝牙模块、TFT屏幕和五向摇杆。整个设计最花心思的地方其实不是功能实现而是安全防护。毕竟这东西要直接接触被测电路万一操作失误接上了高压保护没做好烧的可就不只是测试笔了。所以这篇教程我会重点聊聊硬件设计里的那些“安全门道”。1. 核心大脑CW32F030C8T6主控电路咱们先从整个设备的大脑——主控芯片说起。我选用的是武汉芯源半导体的CW32F030C8T6这是一颗基于ARM Cortex-M0内核的32位单片机资源够用性价比高非常适合这种便携式仪器。画原理图时第一件事就是把编程调试必需的引脚都引出来。对于CW32系列通常需要引出Vcc、GND、SWDIO、SWCLK和NRST这五根线方便后续用ST-Link之类的调试器烧录程序。这里有个小细节我在NRST复位引脚到地之间预留了一个复位按键的位置。实际焊接时这个按键不是必须焊上的。如果你手头没有贴片按键完全可以用镊子短接NRST和GND旁边的焊盘来实现复位这在调试时非常实用。给单片机供电的电源滤波也很重要。通常在Vcc引脚附近我会放置一个0.1uF的陶瓷电容和一个10uF的钽电容或电解电容分别用于滤除高频和低频噪声确保单片机工作稳定。2. 信号输出如何让单片机“发出”可调直流电压测试笔的一个核心功能是能输出一个可调的直流电压比如0-5V用来模拟信号源或者给其他电路供电。单片机引脚直接输出的是数字信号0V或3.3V或者PWM脉宽调制波怎么变成平滑的直流呢这里就用到了**PWM转直流PWM-DAC**的技术。2.1 基础思路PWM与低通滤波我的思路是让单片机的某个引脚输出一个固定频率比如20kHz的PWM波。PWM波的特点是其平均电压与占空比成正比。占空比100%时平均电压就是3.3V占空比50%时平均电压就是1.65V。然后我们用一个低通滤波器把这个PWM波里的高频成分就是那个20kHz的方波滤掉剩下的就是平滑的直流分量了。在原理图上你会看到信号先经过一个由电阻和电容组成的RC低通滤波网络。通常我会用两级滤波效果比单级要好得多输出的直流电压纹波更小。2.2 电压翻倍运放的作用但是这里马上遇到一个问题经过RC滤波后输出电压会比PWM的高电平3.3V略低一些因为有损耗。这意味着我们最大也输出不到3.3V更别说5V了。怎么解决我增加了一个运算放大器运放搭建了一个正向比例放大电路。把滤波后的电压信号接入运放的同相输入端通过精心选择反馈电阻的比值比如1:1将电压放大2倍。这样原本最大约3V的输入经过放大就能达到接近6V的输出轻松覆盖0-5V的需求。注意放大后的信号最好再经过一级简单的低通滤波以滤除运放可能引入的高频噪声让输出的直流信号更“干净”。3. 信号输入安全是第一要务信号输入电路是测试笔的“前线”也是最容易“阵亡”的地方。设计时我完全参考了专业示波器的前端设计思路核心就两个字防护。3.1 第一道防线TVS管信号进入测试笔首先迎接它的是一颗双向TVS管瞬态电压抑制二极管。你可以把它想象成一个电压敏感的“安全阀”。当输入端的电压瞬间异常升高比如不小心碰到了市电或者电路中有感性负载断开产生浪涌超过TVS管的击穿电压时它会瞬间从高阻态变为低阻态把多余的电流导向地线从而保护后级脆弱的模拟开关和单片机ADC。等电压恢复正常它又自动恢复高阻态不影响正常测量。3.2 第二道防线模拟开关与衰减网络TVS管后面我用了模拟开关芯片来构建一个灵活的输入通路。模拟开关3它控制信号是“进”还是“出”。当测试笔工作在信号输出模式时这个开关会把输出电路连接到探针工作在输入模式时则把探针连接到后面的测量电路。这样避免了输出和输入之间的冲突。模拟开关2与衰减网络这部分实现了类似万用表或示波器的X1/X10档位功能。默认我设置在了X10档位。这是什么意思呢它意味着输入信号先经过一个9M电阻和1M电阻组成的分压网络只有1/10的电压会进入后级的ADC。比如你测100V的电压实际进入ADC的只有10V当然后面还会通过程序换算回来。为什么默认用X10档这是最重要的安全习惯这就好比使用有独立开关的万用表用完收纳前我们一定要把档位拧到“交流电压最大量程”。对于这个测试笔默认置于X10档更高的输入阻抗和分压保护相当于给ADC加了一个“缓冲”即使你忘记切换模式或量程也能在很大程度上防止高压直接灌入烧毁芯片。这是一个非常好的工程实践。整个输入电路的输入阻抗设计为1MΩ这和大多数示波器、万用表是兼容的可以减少对被测电路的影响。4. 无线连接为什么选择BLE蓝牙作为一个便携设备拖着根数据线总是碍手碍脚。所以无线传输是必选项。我选择了低功耗蓝牙BLE而不是更常见的CH340 USB转串口方案主要基于三个考虑灵活性数据线有重量和硬度无线操作显然更自由。测量准确性如果插着USB线使用测试笔的“地”就会通过电脑连接到大地。当你测量非隔离电路中的某点电压时可能会无意中通过表笔将电路的地短路到大地导致测量错误甚至设备损坏。核心原因——安全隔离这是最关键的一点。想象一下如果防护电路失效高压窜入了单片机系统并把它烧毁这个高压很可能会沿着USB数据线继续前进直达你的电脑或手机的USB口后果不堪设想而使用蓝牙无线连接就实现了电气隔离物理上切断了危险电压传播的路径保护了你的贵重终端设备。在PCB布局上蓝牙模块的天线部分通常是一段蛇形走线或陶瓷天线周围一定要保持净空不要铺铜也不要走其他信号线下方各层也最好挖空。这是为了减少干扰保证蓝牙信号的传输距离和稳定性。5. 人机交互屏幕与摇杆5.1 TFT显示屏为了显示波形、电压值、菜单等信息我选用了一块0.96英寸的TFT彩屏分辨率是80*160驱动芯片是常见的ST7735。它通过FPC软排线焊接在PCB上使用SPI接口与单片机通信占用引脚少速度也够用。电路上有个小设计屏幕的背光BLK引脚通过一个限流电阻连接到单片机的一个GPIO。这样我就可以用程序控制背光的亮灭甚至可以用PWM来控制背光亮度实现省电或柔光效果。电阻R18就是用来限制背光LED电流的根据你屏幕背光的规格来选取阻值。5.2 五向摇杆开关所有操作都通过一个五向摇杆来完成。你可以把它理解为集成了上、下、左、右、按下五个独立按键的一个开关。编程时就把它当成五个普通的按键输入来处理即可单片机不断检测与之相连的GPIO引脚电平就能判断用户按下了哪个方向。比如向上摇可能是增加电压向下是减小按下是确认等等逻辑非常清晰直观。6. 至关重要的调试与校准步骤板子焊好程序烧进去先别急着用有两个必须做的步骤否则要么没反应要么数据不准。第一步飞线连接看原理图和PCB图找到标注为COM端和模拟地AGND端的焊盘或测试点。你必须用一根导线把这两点直接短接起来这是因为在电路设计中信号输入/输出的参考地需要和模拟电路的地连通形成完整的回路。不连这根线整个信号通路是断的自然无法工作。第二步开机校准任何依靠ADC模数转换器进行测量的仪器出厂或首次使用前都必须校准。我们的测试笔也一样。第一次上电后系统应该会引导你进入校准程序比如将探针短接调零接入一个已知的精确电压源进行满量程校准等。务必完成校准流程否则测量出来的电压、波形数据会偏差很大没有参考价值。如果忘了校准就开始用了怎么办别慌找到我们之前说的复位按键或者用镊子短接复位焊盘让单片机复位然后重新开机就会再次进入校准界面了。7. 设计复盘与心得回顾这个“点晶测试笔”的设计它不仅仅是一个功能堆砌更是一次关于系统思维和工程安全的实践。电源与信号的完整性模拟电路运放、ADC部分的地AGND最好和数字电路的地DGND通过磁珠或0欧电阻单点连接避免数字噪声干扰敏感的模拟信号。防护电路的优先级在输入端口TVS管、限流电阻、钳位二极管等防护器件的布局要尽可能靠近接入点让危险在门口就被化解。无线连接的权衡BLE带来了安全和便利但也增加了功耗和软件开发的复杂度需要处理蓝牙协议栈。对于纯有线调试的场景预留一个串口测试点也是个好习惯。这个小项目涉及了MCU选型、模拟电路设计、电源管理、无线通信和人机交互是一个非常好的嵌入式系统入门练手项目。希望我的这些设计和调试经验能帮你少走些弯路。最重要的是把安全设计的理念刻在脑子里这在你以后设计任何接入真实世界的电子设备时都会受益匪浅。