DIY示波器性能实测:从带宽到触发,摸清边界再调试
2026/9/5 18:43:11 网站建设 项目流程

先给结论:DIY示波器能不能用来做硬核调试?能,但前提是你得先把它的性能边界摸清楚。

这篇文章不打算劝你买某款成品示波器,也不吹“手搓一台媲美台式万用表+200M带宽示波器”的神话。我们要做的是一件更实用的事:拿着常见的嵌入式 DIY 示波器方案,像验收一个软件模块一样,给它的带宽、采样率、触发能力、噪声水平、上位机接口和批量数据导出做一轮完整的“性能实测”。

很多同学的情况是这样:单片机、串口调试助手、逻辑分析仪已经用得挺熟,但一调 PWM、CAN、PID 或者电机驱动,就会觉得缺一台能看真实波形、能抓异常毛刺、能验证时序的示波器。成品示波器价格不低,DIY 示波器方案又五花八门。本文会从调试需求出发,先说明 DIY 示波器在调试工具链中的真实定位,再给出一套可以照抄的测试流程、验证方法和常见排查清单。

最后你能得到两样东西:一份你自己机器的真实性能记录表,以及一条明确的判断标准——以后遇到 PWM 波形、串口乱码、CAN 通信不稳定、PID 调节过冲这类问题,这台 DIY 示波器到底能不能帮上忙。

1. 核心能力速览

先给一个通用能力表。因为“DIY示波器”不是一个固定项目,方案差异很大,下面内容按最常见的“模拟前端 + 高速ADC + MCU + 上位机/屏幕显示”结构来写,具体以你手头方案为准。

能力项典型说明
项目类型嵌入式电子测量仪器,DIY 自制示波器
硬件组成模拟前端(衰减、阻抗匹配)、ADC 采集、MCU/FPGA 处理、LCD 或 PC 上位机显示
启动方式上电自检 / 连接USB或串口后启动上位机,无统一标准
主要测量参数电压峰峰值、频率、周期、占空比、上升沿/下降沿时间、波形形态
主要调试场景PWM 波形验证、UART 串口波形、CAN 总线波形、PID 调节过程观察、电源纹波粗测
典型带宽范围因模拟前端和 ADC 采样率而定,中低端 DIY 方案整体有限,不能与商用宽带示波器直接对比
硬件门槛需要具备基础焊接和电路调试能力,部分方案需要自己校准
支持批量任务视上位机而定,通常可对采集到的波形批量保存或导出数据
接口 API部分上位机支持串口/VCP 或 USB 数据读取,可写脚本二次处理
适合人群单片机开发、嵌入式软件调试、电子DIY、无人机/电调调试、通信协议解析爱好者
不擅长场景高带宽射频信号、高压大电流环境、要求严格幅值精度的计量级测量

这张表的价值在于帮你控制预期。DIY 示波器和台式示波器比,最大的差距从来不是“能不能显示正弦波”,而是指标上限和测量可信度。你拿它去测 1kHz 的 UART 空闲电平,或者测 10kHz 的 PWM 占空比,完全没问题;你拿它去测 100MHz 时钟线上的串扰,那就超出能力范围了。搞清楚边界,比搞清楚怎么焊板子更重要。

2. 调试工具体系里的真实定位

做嵌入式调试时,工具往往要组合使用。我之前和不少做电机、无人机、CAN 通信的朋友聊过一个共同感受:串口调试助手能看数据,逻辑分析仪能看时序,但真正需要看“电压随时间变化”的时候,只能上示波器。

具体场景例如:

  • 调 STM32 的 PWM 输出,发现电机抖动。串口打印 CCR 寄存器值都是对的,这时候你得看 PWM 波形实际输出频率和占空比是不是和配置一致。逻辑分析仪能测高低电平时序,但如果你想看死区时间和上下管驱动波形,普通逻辑分析仪不够直观。

  • UART 串口接收乱码。串口调试助手里显示的十六进制数据时而对时而错。除了波特率配置,你还需要看总线上的电平翻转时刻是否稳定。用示波器抓 TX/RX 波形,能直接看到位宽是否均匀、是否存在幅度不足或上升沿过缓。

  • CAN 总线通讯不稳定。常规做法是接 USB-CAN 分析仪看报文,但报文时好时坏,很难定位是终端电阻问题、收发器电平问题,还是总线上的干扰。用示波器看 CAN_H / CAN_L 差分波形,比单纯看报文要直观得多。

  • PID 调节过程“过冲大、响应慢”。上位机只能记录给定值和反馈值的数字量,但执行端的 PWM 实际输出波形长什么样,需要示波器配合观察。

在这类问题里,DIY 示波器的价值不是替代你的串口调试助手,而是提供数字逻辑之外的模拟量视角。它可以回答这些具体问题:这个方波的频率准不准?高电平是不是真的到了 3.3V?CAN 总线差分电压够不够?PID 输出的 PWM 占空比是不是在按预期变化?

反过来也要说清楚:它不适合用来做高精度电源纹波认证、高速差分信号一致性测试这类专业场景。如果你要测的是笔记本主板、开关电源原边高压、射频模块,手里的工具应该变成隔离示波器、差分探头或者频谱仪。

3. 实测前的准备

给 DIY 示波器做性能实测,不能拿两根表笔一夹就下结论。准备工作的核心是:让被测信号已知、可控、可重复。

3.1 信号源准备

手头没有函数发生器的同学,可以用 MCU 输出已知信号。比如用 STM32 的定时器输出一组频率可变的 PWM,这就是最廉价的方波源。建议准备三种信号:

  • 1kHz 方波,用来校验证频率读数、占空比读数。
  • 10kHz 到 100kHz 方波,用来测试带宽和高频衰减。
  • 慢速三角波或正弦波(通过 DAC 或 RC 滤波产生),用来观察线性度。

下面的示例代码结构用于在 MCU 上产生测试方波。实际使用中需要替换为对应 MCU 的定时器初始化库:

/* 伪代码示例:输入 PWM 频率和占空比 */ void pwm_output_config(uint32_t freq_khz, uint8_t duty_percent) { // 1. 使能定时器时钟,配置输出引脚为复用推挽模式 // 2. 计算预分频值和自动重装载值 // 定时器时钟频率 / (freq * arr) 选择合适分频 // 3. 设置比较值:CCR = arr * duty_percent / 100 // 4. 开启 PWM 输出,使能定时器 // 建议只用低压 3.3V/5V 输出,确保在 DIY 示波器输入范围内 }

如果你手上有现成的 DDS 信号发生模块或者带波形输出的开发板,直接用硬件信号发生器更省事,因为它能输出正弦波、三角波和扫频信号,方便测频率响应。

3.2 探头和连接方式

探头是影响测量结果的最大变量。不少 DIY 示波器直接用杜邦线或鳄鱼夹连接被测信号,这在低频调试时还能凑合,一旦频率上到几十 kHz,寄生电感和电容就会把波形弄得“面目全非”。

几个实用建议:

  • 尽量使用带屏蔽的探头或同轴线,减少噪声拾取。
  • 注意探头衰减比。如果探头是 10x,需要确认仪器端是否支持对应档位,或者手动在读数上乘 10。
  • 测量时保持探头地线尽量短,不要拖一根长地线在空中。
  • 接地方式很关键,很多“DIY 示波器噪声大”的问题其实来自接地回路。

从调试角度看,最稳的组合是:被测板子和 DIY 示波器共地,并且用同轴短线连接测试点

3.3 软件环境

部分 DIY 示波器自带屏幕,上电直接能看。但如果你用的是“采集板 + PC 上位机”方案,建议提前确认三件事:

  • 驱动是否安装,是否枚举成串口或自定义 USB 设备。
  • 上位机软件版本是否与固件匹配,避免采样率配置错乱。
  • 是否有数据导出功能,至少能保存截图或 CSV 文件。

有条件的话,建议前期就在脚本层面把数据通路打通。这部分后面会单独讲接口和数据导出的写法。

4. 精度校准与自检

很多 DIY 示波器首次使用时的误差来源不是硬件设计差,而是没有校准

常见校准方式有两种:

校准方式操作能解决的误差
硬件校准调节模拟前端的增益电阻或电位器,让输入电压与显示电压一致直流增益误差、垂直偏置误差
软件校准通过上位机输入增益补偿系数,或者写入校准偏移量幅值读数偏差、零点漂移

如果你的 DIY 方案支持软件校准,建议先输入一个已知电压,比如用 3.3V LDO 的输出作为参考源,记录实测值,再计算增益系数。

还要做一个零基线检查:把探头接到 GND,观察屏幕上的基线是否在 0V 位置。如果存在明显偏移,需要修正偏置。否则后续测直流分量时会累积误差。

校准这个步骤看起来不“硬核”,但它决定了后面所有“实测数据”是否可信。很多 DIY 示波器使用体验不佳,第一原因不是带宽不够,而是从来没有校准,导致测直流电压都偏差很大,自然没法信任它做的任何测量。

5. 性能实测的五项核心指标

接下来进入正题。这组测试不依赖高端仪表,只需要能产生已知信号的信号源和目标示波器。每测完一项,记录数据。

5.1 频率与周期测量精度

把信号源设置为方波或正弦波,分别测试 1kHz、10kHz、100kHz 这几个频点。记录示波器的频率读数,计算相对误差。

测试时建议把时基调整到能看到完整波形的范围。如果示波器读数波动很大,可以切换为平均值测量模式,或者多测几次取中值。

判断标准没有统一值,取决于你 DIY 方案的时基晶振精度。通常 MCU 时钟有内部 RC 和外部晶振之分,用外部晶振的频率读数会更稳。如果 1kHz 信号被读出 1060Hz,建议先检查采样率设置和触发阈值,而不是直接下结论说机器有问题。

5.2 幅值测量精度

分别输入 1V、2V、3.3V 的直流或峰峰值信号,记录示波器读数。这类测试能暴露出模拟前端的增益误差和 ADC 参考电压误差。

需要注意量程选择。如果被测信号只有 3.3V,但错选了大衰减档位,ADC 分辨率会被浪费,读数自然不准。

5.3 带宽响应测试

带宽定义是信号幅度衰减到 0.707 倍(即 -3dB)时的频率点。实际操作中不必做得这么严格,但可以做一个趋势测试:

  • 从 10kHz 方波开始观察波形上升沿是否变缓。
  • 逐步提高频率到 50kHz、100kHz、500kHz,观察方波的“方”的程度。
  • 如果方波已经明显变成正弦状,说明该频点已经超出了一般有效带宽。

DIY 示波器最常见的现象是:低频波形很完美,到几百 kHz 时上升沿明显变缓、幅值读数下降。这不是坏了,而是模拟前端带宽或采样率限制了上限。不要用超过有效带宽的信号去测上升沿,因为得到的上升时间不是真实信号上升时间,而是示波器自身的响应。

5.4 触发稳定性测试

把信号源调成 1kHz 方波,调节触发电平。分别设置到高电平以上的位置、信号中部的有效位置、低电平以下的位置,观察波形是否还能稳定显示。

触发不稳定会表现为波形水平方向来回跑动。排查顺序是:

  1. 检查触发源是否选在正确通道。
  2. 检查触发电平是否落在信号幅度范围内。
  3. 检查触发边沿选择是否正确。
  4. 确认时基档位是否太大或太小。

对调试来说,触发能力往往比带宽更影响体验。如果无法稳定触发一串 UART 波形,你就很难看清每个数据位的宽度。

5.5 噪声与底噪测试

把探头接到 GND,不输入任何信号,测量屏幕上的噪声峰峰值。这个数值就是当前增益档位下的底噪参考。

底噪过大会掩盖小信号细节。如果噪声偏大,可以检查以下几点:

  • 探头是否悬空,悬空探头本身就会像天线一样接收干扰。
  • USB 供电时,电脑开关电源的干扰是否引入到测量回路。
  • 模拟前端是否放在金属屏蔽盒中。
  • 采样率和显示插值方式是否会放大噪声。

做硬件测试时,建议把底噪记录写成一个常量,以后测小信号时可以直接判断当前信号是否被噪声湮没。

6. 结合嵌入式调试的实测项目

单纯的指标测试数字不够直观。下面把常用调试场景拆成几个可以照做的实测项目,每个项目都按“现象 -> 测试操作 -> 判断方法”的顺序展开。

6.1 场景一:PWM 波形与占空比验证

使用场景是单片机 PWM 输出驱动电机、LED 调光或蜂鸣器。

测试操作:

  1. MCU 配置输出 10kHz、50% 占空比 PWM。
  2. 用 DIY 示波器测量频率和占空比。
  3. 修改代码,让占空比变成 10% 和 90%,再次记录读数。

判断方法:

  • 频率读数应接近配置值,偏差通常在时钟误差范围内。
  • 占空比在小范围档位内线性变化,输出 10% 时读数不应变成 13%。
  • 波形上升沿/下降沿不能出现明显振荡。如果电机驱动板上下管切换时波形有振铃,可能是死区设置或驱动芯片问题,DIY示波器能帮助你早期发现问题。

典型代码(用于产生 PWM 信号)已经在第 3 节给出,这里不再重复。重点结论是:PWM 输出频率和占空比的问题,DIY 示波器测量结果非常可信。

6.2 场景二:UART 串口波形与乱码定位

串口调试助手显示乱码时,通常软件层面查不出问题。此时用示波器看 TX 引脚波形可以定位以下情况:

  • 实际波特率和配置波特率不一致,表现为每个位宽度明显偏离理论值。
  • TX 引脚电平没有完全拉低到 GND,导致接收端判断错误。
  • 电平翻转沿太缓,说明驱动能力不足或上拉/负载问题。
  • 波形上有明显毛刺干扰,导致个别起始位误判。

测试操作:

  1. MCU 通过串口发送固定字符,比如0x55(二进制为 01010101),这样每一帧都有规律的位翻转。
  2. 将示波器通道接在 TX 引脚,触发方式选择下降沿。
  3. 展开波形,按当前配置的波特率读取一个位的时间宽度。

判断方法:

理论位时间可以用下面的方式估算:

# 以波特率计算单个 bit 的持续时间(微秒) baud_rate = 115200 bit_time_us = 1_000_000 / baud_rate print(f"单个 bit 时间: {bit_time_us:.2f} us")

如果配置 115200 波特率,一个 bit 的理论时间为 8.68us 左右。示波器实测一个 bit 宽度应该在理论值附近。偏差超过 3% 时,发送端和接收端可能有累计误差风险。

串口波形是 DIY 示波器最值得花时间做的一类测试,因为信号本身只有 3.3V、速度不高,正好处于 DIY 方案的舒适区。

6.3 场景三:CAN 总线波形观察

CAN 总线调试时,报文分析仪能看到数据内容,但总线物理层的波形需要示波器来确认。

测试操作:

  1. 在 CAN_H 和 CAN_L 之间接两根测量线,或者用差分方式观察。
  2. 用单片机或 USB-CAN 分析仪发送周期报文。
  3. 观察显性电平与隐性电平的电压差。

判断方法:

  • 终端电阻正确时,总线空闲电平应在 2.5V 附近。
  • 显性位时,CAN_H 升高,CAN_L 降低,差分电压通常在 2V 左右。
  • 如果波形幅度偏小,检查终端电阻和总线长度。
  • 如果波形边沿出现很多台阶或畸变,可能是总线节点过多、接线方式不对或收发器故障。

注意:直接测 CAN 收发器输出时,需确保被测系统与 DIY 示波器共地,并且不要超出量程。测量时如果示波器底噪过大,CAN 显性电平仍然可以辨认,因为电平差异远大于噪声幅度。

6.4 场景四:PID 调节过程观察

PID 调试时,传统方式是看数字量曲线变化。DIY 示波器也能参与进来。

方法是把 PID 控制器的 PWM 输出引脚接到示波器,调节目标值后观察 PWM 输出占空比随时间的变化趋势。如果使用带余辉或滚动显示功能的示波器,还可以观察到占空比包络线是否存在过冲。

结合网上常提到的 PID 串口调试经验,一个很有用的做法是:用串口调试助手每隔一段时间打印一次目标值和反馈值,同时用示波器观察执行端 PWM 波形。

如果数字量曲线和 PWM 输出不一致,说明问题可能出在输出通道或驱动电路,而不是 PID 算法本身。这种“上位机数字量 + 示波器模拟量”共同验证的思路,比单纯调参更可靠。

6.5 场景五:为什么逻辑分析仪偶尔帮不上忙

很多同学在 Keil 调试或采集信号时会遇到“逻辑分析仪找不到信号”的问题。逻辑分析仪擅长观察数字时序,但它只能判断高于阈值为 1、低于阈值为 0,看不到电压幅度异常、上升沿缓慢或振铃。

这也是嵌入式维护中经常出现的情况:一套代码在开发板上跑得很稳,换到自己的板子上就偶发超时。此时如果逻辑分析仪无法提供更多信号,可以尝试直接用 DIY 示波器观察对应引脚的波形质量。如果引脚低电平被外部干扰抬到 1V 以上,逻辑分析仪可能依然认为它是 0,但芯片内部的施密特触发器可能已经错误翻转。

DIY 示波器放在这个场景中的角色,是给逻辑分析仪补上一个“模拟量雷达”。它不一定每次都能直接定位 bug,但能帮你缩小怀疑范围。

7. 接口 API 与批量数据导出

示波器屏幕截图适合人工分析,但要做性能实测、误差统计、多组数据对比时,最好把原始数据导出到 PC 再处理。

7.1 从串口/VCP 读取数据

许多 DIY 示波器方案在 PC 上被枚举成串口。若已知固件的数据帧协议,可以通过 Python pyserial 读取波形数据。

下面是一个仅供参考的通用模板。实际使用时通道协议、帧头、校验方式必须按你自己的示波器方案修改:

import serial import struct import csv PORT = "COM3" # Windows 示例,Linux 下通常是 /dev/ttyACM0 BAUD = 115200 ser = serial.Serial(PORT, BAUD, timeout=2) # 假设上位机协议:收到 0xAA 0x55 后,后面跟着 1024 个 uint16 采样点 # 这里只是示例,请替换为自己设备的协议解析方式 def read_waveform_samples(num_samples=1024): ser.reset_input_buffer() # 发送取数命令,具体命令字以方案文档为准 ser.write(b"\xAA\x55\x01") data = ser.read(2 + num_samples * 2) if len(data) < 2 + num_samples * 2: raise ValueError("读取超时") samples = [] for i in range(num_samples): raw = data[2 + i * 2: 4 + i * 2] samples.append(struct.unpack("<H", raw)[0]) return samples samples = read_waveform_samples() with open("waveform.csv", "w", newline="") as f: writer = csv.writer(f) writer.writerow(["index", "adc_value"]) for idx, val in enumerate(samples): writer.writerow([idx, val]) ser.close()

这段代码能直接解决“波形数据无法二次分析”的问题。只要能把采样值导出成 CSV,后面你想计算频率、占空比、FFT 或者统计噪声,都很方便。

7.2 用 Python 分析导出数据

拿到 CSV 后,可以写一个脚本自动分析波形参数:

import csv import math with open("waveform.csv", "r") as f: reader = list(csv.reader(f)) values = [int(row[1]) for row in reader[1:]] # 根据实际电压范围和 ADC 位数换算电压 def adc_to_voltage(adc_value, v_ref=3.3, adc_max=4095): return adc_value / adc_max * v_ref voltage_series = [adc_to_voltage(v) for v in values] v_max = max(voltage_series) v_min = min(voltage_series) v_pp = v_max - v_min # 粗略计算频率:统计信号穿越中间电平的次数 mid = (v_max + v_min) / 2.0 crossings = 0 for i in range(1, len(voltage_series)): if (voltage_series[i-1] - mid) * (voltage_series[i] - mid) < 0: crossings += 1 # 穿越次数除以 2 为周期数,再除以总时间得到频率 sample_rate_sps = 1_000_000 # 根据实际采样率修改 total_time = len(voltage_series) / sample_rate_sps frequency_hz = (crossings / 2) / total_time print(f"峰峰值: {v_pp:.3f} V") print(f"估算频率: {frequency_hz:.3f} Hz")

需要注意的是,这个计算逻辑只适合低频周期信号。如果采样率设置不对,频率计算会完全错误。但它的意义在于提供了一套自动化的数据验证流程:手动测试记录一次,再跑脚本算一次,两者相近说明读数可信。

7.3 批量任务思路

如果你需要对多个测试点批量记录数据,可以提前设计一个简单的目录结构:

tests/ ├── 01_pwm_10k_duty50/ │ ├── config.json │ ├── raw.csv │ └── screenshot.png ├── 02_uart_115200/ │ ├── config.json │ ├── raw.csv │ └── screenshot.png └── 03_can_250k/ ├── config.json ├── raw.csv └── screenshot.png

每次测试前把被测信号的参数写入 config.json,再把结果和截图归入同一目录,长期积累后就能形成一份自己设备的实测数据档案。后续如果换了固件版本或改了模拟前端,同一套测试流程还能对比改进效果。

8. 性能观察与误差管理

DIY 示波器不像深度学习任务那样看显存占用,它的“资源观察”主要集中在以下三个地方,直接影响你是否信任测量结果。

8.1 ADC 采样率与实际带宽

采样率决定可测信号的频率上限。按奈奎斯特采样定理,理论上采样率至少是信号最高频率的两倍,但实际调试中,为了看到方波的上升沿,采样率往往是信号频率的 10 倍以上。

举个例子:如果方案实际采样率只有 1MSa/s,测 100kHz 方波时每个周期只采样 10 个点,波形会明显失真。此时提高分辨率没有用,因为瓶颈在采样率。

8.2 显示刷新率和触发稳定性

有些 DIY 示波器屏显刷新很慢,波形看起来在“跳动”。这在测量低频 PWM 时影响不大,但在测量信号频率变化较快的场景会让人误判。

遇到波形无法稳定时,优先使用“单次触发”模式。单次触发适合抓偶发异常波形。如果你发现单次触发也抓不住,大概率是触发条件或采样深度设置问题。

8.3 测量结果误差记录

建议做测试时保留原始 CSV 和读数记录,并按如下表格整理:

测试项目信号源设置值示波器读数相对误差备注
频率测试 1kHz1.000 kHz填入实际值计算后填写记录时基档位
频率测试 100kHz100.000 kHz填入实际值计算后填写观察上升沿是否变缓
幅值测试 3.3V3.300 V填入实际值计算后填写记录衰减探头比例
占空比 50%50.0%填入实际值计算后填写高电平时间测量值

这套方法的核心不是让你得出“我的示波器准确”这个结论,而是帮你搞清楚:这台仪器的误差范围大概是多少,哪些测试果断可信,哪些测试只适合做趋势观察。

9. 常见问题与排查方法

DIY 示波器在调试过程中会遇到的问题,相当一部分可以通过统一的排查流程解决。

问题现象可能原因排查方式解决方案
上电后屏幕黑屏或花屏固件没烧录或屏线接触不良检查电源电流、重新烧录固件、检查屏排线重新刷固件,或更换排线
屏幕上波形噪声很大探头悬空、接地线过长、电源不干净探头接 GND 看底噪换同轴线、短接地、USB 供电加磁珠/电容滤波
频率读数明显偏大或偏小采样率计算错误、时基档位不对用 1kHz 方波验证重新检查采样率配置,修复固件参数
波形出现低频“滚动”或跳动触发电平不在信号范围内调节触发电平,尝试上升沿和下降沿切换重新设置触发条件,必要时开单次触发
测量高电平电压偏低输入衰减档位错、探头 10x 未换算用已知 3.3V 直流校正校准增益,或读数乘 10
上位机连接不上USB 驱动未安装、COM 口号占用、固件协议不匹配查看设备管理器端口,换个 USB 口重装驱动,关闭占用串口调试助手的进程
信号源是 3.3V 但测不到信号通道没打开、输入阻抗异常、模块损坏测量 GND 通道确认基线正常重新检查模拟前端电源与芯片
测高频方波变成正弦波该频率已经超出模拟前端带宽降低频率对比明确频率使用上限,不要继续测高频
批量导出数据量大时上位机卡死串口缓冲区溢出或脚本读取不及时减小读取数据量,增加超时时间脚本中加延时或启用硬件流控

排查思路上有一条建议值得反复强调:**先把信号源和连线固定,换不同档位看结果,不要同时动多处变量。**很多 DIY 仪器的“故障”只是探头悬空或线缆松动造成的,不一定是硬件坏了。

10. 最佳实践与安全边界

10.1 使用建议

结合我平时接触嵌入式调试的经验,DIY 示波器的正确打开方式不是“替代一切测量设备”,而是作为日常开发台上随手可用的快速观察工具。

建议在长期使用中固定一套最小可运行配置,比如:

  • 保持模拟前端和探头的连接方式不变。
  • 将不同测试场景的触发条件、时基档位和电压档位保存成预设。
  • 每次调板前先测板上已有的 3.3V 电源方波或串口波形,确认仪器本身工作正常。
  • 把采集到的波形按“日期+被测信号描述”命名,统一存放在同一个目录下。
  • 批量测试时使用脚本自动读取数据并输出 CSV,减少手动读屏误差。

这样做的目的非常明确:当某天突然出现一个难排查的 bug 时,你能快速信任自己的测量结果,而不是怀疑是不是仪器又出了问题。

10.2 安全边界

下面这些安全提醒非常关键。

  • DIY 示波器一般只有单端输入,被测电路必须与示波器共地。不要用它直接测量开关电源原边、220V 交流电或其他高压电路。
  • 需要测量电机驱动桥臂中点、感性负载两端或反电动势时,波形可能存在明显尖峰和负压,务必确认输入电压在模拟前端允许范围内。必要时使用隔离探头或差分探头。
  • 如果自制探头或衰减电路,先测量已知电压,再连接真实被测板。
  • 不要带电插拔测试夹,避免瞬间短路损坏接口。
  • 测量电池供电设备和电机驱动电路时,要留意浪涌和反电动势,最好先串限流电阻或低压稳压板做安全测试。
  • 如果被测设备或协议数据涉及公司项目、还处于保密阶段,导出的波形和报文不要随意发布到公网或上传到公共平台。

DIY 的核心是持续迭代。如果你想让它长期保持准确,建议在需要较高精度时重新进行增益校准,并且每次修改固件或模拟前端后都重新跑一遍第 5 节的基本测试。这个过程和软件开发的回归测试非常像——改动硬件之后,必须回归验证仪器基本功能没有退化。

11. 总结与下一步

DIY 示波器的价值,不在于参数表上写得有多唬人,而在于你清楚它每一个参数背后的真实表现,并且能在调试中熟练利用它的长处。

如果你正准备开始玩 DIY 示波器,先把基础功能跑通,然后用 1kHz 方波完成频率、幅值、占空比三项基本校准,再去看那些复杂波形。最容易踩的坑往往不是采样率不够,而是没校准就开始测信号,导致积累了一批不可信的读数。如果想让这台机器长期可用,一定要学会导出波形数据并用脚本分析,不要只停留在肉眼看屏幕这个层面。

下一步你可以尝试的方向很多:

  • 在 PID 调试中建立“数字量 + 模拟量”双通道观察流程。
  • 把 DIY 示波器接到电调或无人机的低压信号调试环节,观察电机转速变化时的 PWM 输出。
  • 综合使用串口调试助手、逻辑分析仪和 DIY 示波器,建立一套完整的嵌入式调试工具链。
  • 如果现有上位机功能不够用,可以自己写一套批量采集和波形分析的脚本,让仪器满足你自己的工作习惯。

从“能显示波形”到“敢于相信测量结果”,中间隔的就是一次完整的性能实测。这篇文章给出的流程如果对你有帮助,建议收藏备用。改天调遇到难缠的软硬件交互问题时,再拿出来照着跑一遍,会让排查过程少走不少弯路。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询