2、核心器件选型:主控芯片、ADC与运放
好,咱们直接进入正题。做示波器,核心器件就那么几个:主控、ADC、运放。这三样选好了,项目就成功了一半。我这些年折腾过不少方案,踩过坑也捡过宝,今天就把我觉得最靠谱的组合分享给你。
2.1 主控芯片:STM32F103C8T6
为什么选这颗芯片?说白了,就是因为它「够用、便宜、好买」。你想想看,一个几十块钱的C8T6,能跑72MHz主频,有2路12位ADC,还有DMA和定时器,简直是为示波器量身定做的。
我个人习惯,做这种低成本项目,首选就是ST的F1系列。原因很简单:生态成熟。网上随便一搜,例程、库函数、原理图,要啥有啥。你遇到问题,大概率别人已经遇到过并解决了。
核心参数速览:
- ARM Cortex-M3内核,72MHz主频
- 64KB Flash,20KB SRAM
- 2路12位ADC,最快1μs转换时间
- 7路定时器,支持PWM、输入捕获
- 2路SPI、2路I2C、3路USART
- LQFP48封装,引脚间距0.5mm
嗯,这里要注意一点:C8T6的Flash只有64KB。如果你想把FFT、波形存储、菜单系统全塞进去,空间会有点紧张。我建议你写代码时多用const常量,把查表数据放到Flash里,别浪费RAM。
我的小技巧: 用C8T6的DMA+定时器触发ADC采样,可以做到完全不占CPU。我之前的项目里,就是用TIM1的更新事件触发ADC,然后DMA自动把数据搬到内存。CPU只管处理和显示,效率很高。
2.2 ADC芯片:ADS830E vs AD9280
这两颗芯片,是低成本示波器里最常见的ADC方案。我直接给你对比表,一目了然。
| 参数 | ADS830E | AD9280 |
|---|---|---|
| 分辨率 | 8位 | 8位 |
| 最高采样率 | 60MSPS | 32MSPS |
| 输入带宽 | 100MHz | 50MHz |
| 信噪比(SNR) | 47dB @ 10MHz | 45dB @ 10MHz |
| 功耗 | 180mW | 95mW |
| 封装 | SSOP-28 | SSOP-28 |
| 价格(批量) | 约15元 | 约8元 |
看到没?ADS830E的采样率是60MSPS,比AD9280的32MSPS高了一倍。这意味着什么?你测10MHz的信号,用ADS830E能采到6个点,用AD9280只能采到3个点。波形还原度,差距很明显。
我建议你选ADS830E。虽然贵几块钱,但换来的是更高的带宽和采样率。我在项目中遇到过用AD9280测方波,上升沿根本看不清楚,换了ADS830E之后,波形瞬间清晰了。
避坑指南: 我曾经在布线时没注意模拟地和数字地的分割,结果ADS830E的采样数据跳得厉害,低两位一直在抖。后来把模拟部分单独铺地,用0欧电阻单点连接,问题才解决。记住:ADC的模拟地和数字地一定要分开处理。
2.3 运放芯片:OPA356选型理由
运放是信号链的「守门员」。信号进来,先经过运放调理,再送到ADC。如果运放选不好,ADC再好也白搭。
我选OPA356,理由有三:
- 带宽够高: 200MHz的增益带宽积,处理几十MHz的信号绰绰有余。你想想看,ADS830E的输入带宽是100MHz,运放带宽至少得是它的两倍,才不会成为瓶颈。
- 压摆率快: 300V/μs的压摆率,意味着它能跟上快速变化的信号。测方波时,上升沿不会变缓。
- 单电源供电: 2.5V到5.5V都能工作,非常适合我们这种低成本设计。不用额外搞负电源,省事又省钱。
OPA356关键参数:
- 增益带宽积:200MHz
- 压摆率:300V/μs
- 输入噪声:8.5nV/√Hz
- 供电范围:2.5V ~ 5.5V
- 静态电流:8.3mA
- 封装:SOT23-5
嗯,这里有个细节要注意:OPA356是CMOS输入,输入偏置电流只有pA级别。这意味着你可以在前端加高阻值的分压电阻,不会影响信号精度。我之前的项目里,用1MΩ和100kΩ分压,输入阻抗做到1MΩ,完全没问题。
我的经验: OPA356的输出驱动能力一般,大概能输出±50mA。如果你要驱动长同轴电缆(比如50Ω负载),建议在输出端加一个缓冲器。不过在我们这个示波器方案里,ADC输入阻抗很高,直接驱动完全够用。
最后总结一下:STM32F103C8T6做主控,ADS830E做ADC,OPA356做运放。这个组合,成本控制在50元以内,性能却能到60MSPS采样率、几十MHz带宽。说实话,十年前这个指标得花上千块才能实现。现在,你花一顿饭钱就能搞定。
下一章,咱们聊聊原理图设计。我会把每个模块的电路细节掰开揉碎了讲给你听。