2. 硬件排查基础
做Camera调试这些年,我有个很深的体会——七成以上的摄像头“死机”问题,根源都在硬件。软件调得再好,供电纹波一上来,画面照样花。所以这一章,咱们把硬件排查的四个基本功掰开揉碎讲清楚。
核心原则:先硬件后软件,先供电后信号,先静态后动态。别一上来就调I2C时序,先看看电压对不对。
2.1 电源供电检测
摄像头模组一般需要三路供电:
| 供电轨 | 典型电压 | 主要负载 | 纹波要求 |
|---|---|---|---|
| AVDD(模拟) | 2.8V | 像素阵列、模拟电路 | < 30mVpp |
| DVDD(数字) | 1.2V / 1.8V | ISP、逻辑核心 | < 50mVpp |
| IOVDD(接口) | 1.8V / 2.8V | MIPI、I2C、GPIO | < 30mVpp |
我个人的排查习惯是这样的:先测电压值,再看纹波,最后查上电时序。用万用表测电压只能发现“有没有电”,但纹波和时序才是真正坑人的地方。
小技巧:测纹波时把示波器带宽限制在20MHz,探头用短地弹簧,别用长地线夹。长地线夹会引入额外噪声,测出来的纹波可能比实际大两倍。
我在项目中遇到过一台设备,画面时不时出现横条纹。查了三天软件,最后用示波器一看——AVDD纹波高达80mVpp。换了一颗LDO,问题立刻消失。你想想看,如果一开始就测纹波,能省多少时间?
上电时序检查
很多Sensor对供电顺序有严格要求。比如OV系列,通常要求AVDD先于IOVDD,IOVDD先于DVDD。时序反了,轻则Sensor不工作,重则烧坏内部ESD保护二极管。
检查方法很简单:用示波器的4个通道同时抓三路供电和复位信号,看谁先谁后。我习惯把触发点设在AVDD上升沿,然后看其他信号相对它的延迟。
注意:有些PMIC的供电顺序是靠RC延时实现的,温度变化会导致延时漂移。量产时一定要做高低温验证,我吃过这个亏。
2.2 时钟信号测量
Camera的时钟源通常有两种:
- 主时钟(MCLK/XCLK): 24MHz或27MHz,由主控SoC提供
- PLL内部时钟: Sensor内部倍频后的高速时钟,用于像素读出
时钟出问题,表现五花八门:画面无输出、帧率不稳、图像抖动、甚至I2C通信失败。我一般用示波器测三个指标:
- 频率精度: 偏差应在±1%以内,最好±0.5%
- 占空比: 45%~55%,偏离太多会影响PLL锁定
- 抖动(Jitter): 周期抖动应小于200ps RMS
实战经验:有一次客户反馈摄像头偶尔不出图,我抓了MCLK波形,发现频率在23.8MHz到24.2MHz之间跳变。查了一圈,原来是SoC的时钟源配置成了内部RC振荡器,精度不够。换成外部晶振后,问题再没出现。
测时钟时,探头要用10x档,带宽开到全带宽。别用1x档,那会加载电容太大,把时钟波形压变形了。
2.3 复位时序验证
复位信号是Camera的“启动开关”。复位时序不对,Sensor可能一直处于复位状态,或者复位释放后还没准备好就被初始化了。
标准复位时序要求:
- 复位低电平持续时间:至少1ms(很多Sensor要求10ms以上)
- 复位释放到I2C通信开始:至少5ms
- 复位释放到MCLK稳定:至少1ms
我习惯用示波器的余晖模式抓复位波形。为什么?因为有些复位信号是开漏输出,上拉电阻不够强时,上升沿会变慢。余晖模式能清楚看到每次复位释放的波形一致性。
避坑指南:我曾经遇到一个案子,Sensor在低温下偶尔不启动。用示波器抓了100次复位波形,发现有一次复位低电平只持续了800μs。查代码发现,复位引脚被GPIO模拟控制,GPIO操作被高优先级中断打断了。解决办法:在复位操作前后关中断。
2.4 I2C通信排查
I2C是Camera调试中最常打交道的总线。它出问题,你连Sensor的寄存器都读不了,后面什么都干不了。
I2C常见故障模式
| 现象 | 可能原因 | 排查方法 |
|---|---|---|
| SCL/SDA一直低 | 总线被从设备拉死 | 逐个断开从设备,看哪个释放总线 |
| ACK丢失 | 地址错误/设备未上电 | 确认地址7位/8位模式,测供电 |
| 数据错位 | 时钟频率过高/上拉电阻不对 | 降速到100kHz试,检查上拉电阻 |
| 波形畸变 | 走线过长/容性负载大 | 用示波器看上升沿,加缓冲器 |
我个人排查I2C的步骤:
- 先看波形: 用示波器抓SCL和SDA,看起始条件、地址、数据、ACK位是否完整
- 再测电平: 低电平是否低于0.3×VDD,高电平是否高于0.7×VDD
- 最后查时序: 上升时间、保持时间是否满足规格书
重要提醒:I2C总线上如果有多个设备,地址不能冲突。我见过有人把两个相同地址的Sensor挂在同一总线上,结果读谁都是乱码。解决办法:用I2C多路复用器(如PCA9548)分通道。
I2C调试小工具
除了示波器,我强烈推荐准备一个USB逻辑分析仪。几十块钱的就能用,能直接解析I2C协议,显示每个字节的含义。比盯着示波器波形猜省事多了。
我的习惯:调试新Sensor时,先用逻辑分析仪抓一次完整的初始化序列,保存成参考波形。后面出问题时,对比参考波形,一眼就能看出哪一步异常。
知识结构总览
下面这张图把硬件排查的四个维度串起来了。你可以把它贴在工位上,排查问题时按图索骥。
这四个基础排查点,说白了就是Camera硬件的“望闻问切”。供电是气血,时钟是脉搏,复位是呼吸,I2C是神经。哪个出问题,Sensor都会“生病”。
我建议你下次遇到摄像头不工作,别急着翻datasheet调寄存器。先拿出万用表和示波器,按这个顺序查一遍。很多时候,问题就在眼皮底下。