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% 的硬件问题都能提前发现。

可可精品资料库