2. 硬件环境检查:电源、时钟、复位
上板调试,第一步不是跑代码,而是先看看板子“活没活”。
我见过太多工程师,一上电就急着下载程序,结果折腾半天发现是电源没焊好。嗯,咱们先把基础打牢。
2.1 电源供电检查
电源是板子的心脏。心脏跳不好,其他都白搭。我个人习惯,拿到一块新板子,第一件事就是测电源。
2.1.1 电压测量
用万用表测各供电节点,别光看灯亮不亮。灯亮了不代表电压准。
- 核心电压(VCCINT):FPGA 内核通常 1.0V~1.2V,误差 ±3% 以内
- IO 电压(VCCO):根据 bank 不同,可能是 1.8V、2.5V、3.3V
- 辅助电压(VCCAUX):一般 1.8V,给 PLL 等模拟电路用
⚠ 注意: 我曾经遇到过一块板子,3.3V 实测只有 3.15V,灯也亮,程序也能下,但跑起来就随机死机。查了两天才发现是 LDO 虚焊。所以,别偷懒,每个点都要测。
2.1.2 电流监测
电流能告诉你板子是不是“吃多了”或者“没吃饱”。
| 现象 | 可能原因 | 对策 |
|---|---|---|
| 电流为 0 | 电源没通、保险丝烧了 | 检查电源路径、更换保险丝 |
| 电流偏大 | 短路、电容焊反、芯片损坏 | 热成像找热点、断开负载逐级排查 |
| 电流跳动 | 电源不稳定、负载突变 | 检查去耦电容、增加储能电容 |
说白了,电流就是板子的“体温计”。正常工作时电流应该稳定在一个范围内。如果突然飙升,八成是哪里短路了。
2.1.3 纹波测量
纹波是电源的“杂音”。用示波器看,AC 耦合,带宽限制 20MHz。
- 数字电路:纹波 < 50mVpp 通常可接受
- 模拟电路:纹波 < 10mVpp 才保险
- PLL 供电:纹波 < 20mVpp,否则时钟抖动会变大
💡 小技巧: 测纹波时,探头要靠近被测点,地线夹要短。我习惯用弹簧地线,比长地线夹少引入 10mV 以上的噪声。
2.2 时钟信号测量
时钟是板子的“脉搏”。没时钟,芯片就睡死了。
2.2.1 频率准确性
用示波器测频率,别只看波形。频率误差一般要求在 ±50ppm 以内。
// 举个栗子:50MHz 晶振,实测 49.997MHz
// 误差 = (50 - 49.997) / 50 = 60ppm
// 嗯,超了,得换晶振
2.2.2 占空比
理想时钟占空比 50%,实际允许 45%~55%。
为什么?因为 FPGA 内部 PLL 对占空比不敏感,但 DDR 接口对占空比要求很严。我做过一个 DDR3 项目,占空比偏到 48%,结果读写偶尔出错,调了晶振匹配电容才搞定。
2.2.3 抖动
抖动是时钟的“颤抖”。周期抖动(Jitter)会影响建立时间。
- 普通逻辑:抖动 < 100ps 没问题
- 高速 SerDes:抖动 < 10ps 才放心
🔑 关键点: 测时钟时,示波器采样率要够。至少 4 倍于时钟频率,最好 10 倍。用 100MHz 示波器测 50MHz 时钟?那波形都是假的。
2.3 复位电路验证
复位是板子的“重启键”。复位不好,芯片可能“半睡半醒”。
2.3.1 复位电平
FPGA 通常低电平复位。测一下复位引脚:
- 上电瞬间:低电平(0V~0.8V)
- 稳定后:高电平(VCCIO 的 70% 以上)
2.3.2 复位时序
复位信号要等电源稳定后再释放。这叫“上电复位时序”。
// 典型时序要求:
// 1. 电源稳定时间:10ms
// 2. 复位保持时间:至少 100ms
// 3. 复位释放沿:干净,无毛刺
⚠ 避坑指南: 我曾经遇到一个案子,复位信号用 RC 电路做的。上电时复位正常,但快速断电再上电,电容没放完电,复位时间不够,FPGA 配置失败。后来换了专用复位芯片,再没出过问题。
2.3.3 复位毛刺
用示波器看复位释放沿,有没有“抖一下”的毛刺?
有毛刺的话,FPGA 可能误判复位,导致内部状态机跑飞。解决办法:加施密特触发器,或者用软件滤波。
💡 我的习惯: 复位信号上拉一个 10kΩ 电阻,再并联一个 0.1μF 电容到地。简单粗暴,但能滤掉大部分毛刺。
知识体系总览
下面这张图,把硬件环境检查的核心逻辑串起来了。你想想看,电源、时钟、复位,这三样都正常了,板子才算“活”了。
好了,电源、时钟、复位这三样检查完,板子基本就“活”了。下一步,咱们才能放心地下载程序、跑逻辑。
📌 总结一句话: 上板调试,先看电源稳不稳,再听时钟准不准,最后确认复位干不干净。这三步走完,90% 的硬件问题都能提前发现。
可可精品资料库