立创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选型、模拟电路设计、电源管理、无线通信和人机交互,是一个非常好的嵌入式系统入门练手项目。希望我的这些设计和调试经验,能帮你少走些弯路。最重要的是,把安全设计的理念刻在脑子里,这在你以后设计任何接入真实世界的电子设备时,都会受益匪浅。
