2. 硬件基础:Sensor 电源域(AVDD、DVDD、IOVDD)详解

在骁龙平台进行 Camera Sensor 驱动移植时,电源域配置是上电时序验证的基石。Sensor 通常需要三路独立的电源输入:AVDD(模拟电源)、DVDD(数字核心电源) 和 IOVDD(I/O 接口电源)。这三路电源的电压等级、上电顺序和纹波要求直接影响 Sensor 的初始化成功率与图像质量。

核心原则: 电源域配置错误会导致 Sensor 无法识别、输出花屏、甚至物理损坏。在驱动调试初期,务必使用示波器实测各电源域的上电波形,而非仅依赖代码配置。

2.1 三大电源域的功能与电压范围

下表列出了主流骁龙平台 Camera Sensor 的典型电源域参数。实际电压值需以 Sensor 数据手册(Datasheet)为准。

电源域 全称 典型电压范围 供电对象 纹波要求
AVDD Analog VDD 2.8V – 3.3V 像素阵列、模拟信号链(ADC、PGA) < 30mVpp
DVDD Digital Core VDD 1.05V – 1.8V 数字逻辑核心(ISP 内部处理、寄存器逻辑) < 20mVpp
IOVDD I/O Interface VDD 1.8V – 2.8V MIPI CSI 接口、I2C 控制总线、GPIO < 50mVpp
调试提示: 骁龙平台的 PMIC(电源管理芯片)通常通过 LDO 或 SMPS 输出这些电压。在驱动代码中,需要将电源域名称与 PMIC 的 regulator 节点正确绑定。例如,AVDD 可能对应 pm8550_l5,DVDD 对应 pm8550_l6。

2.2 电源域上电顺序与依赖关系

绝大多数 CMOS Image Sensor 要求严格的电源上电顺序,违反顺序可能导致 Sensor 内部闩锁(Latch-up)或初始化失败。典型的推荐顺序如下:

  1. IOVDD 先上电:确保 I2C 和 MIPI 接口电平稳定,避免控制总线误触发。
  2. DVDD 次之:数字核心供电,使内部逻辑开始复位。
  3. AVDD 最后:模拟部分上电,避免数字噪声耦合到模拟信号链。

下图展示了标准的上电时序波形关系:

Sensor 上电时序波形图(推荐顺序) IOVDD 1.8V / 2.8V DVDD 1.05V / 1.2V AVDD 2.8V / 3.3V t0 t1 (IOVDD 稳定) t2 (DVDD 稳定) t3 (AVDD 稳定) 延迟要求:t1-t0 > 0ms, t2-t1 > 0.1ms
常见陷阱: 部分 Sensor 要求 AVDD 必须在 DVDD 之前上电(反序)。务必查阅具体型号的 Datasheet 中的 "Power-Up Sequence" 章节。骁龙驱动中的 power_seq 配置数组允许自定义每路电源的延迟时间。

2.3 电源域在驱动代码中的配置结构

在骁龙 Camera 驱动(通常基于 cam_sensor_core.c)中,电源域通过 struct cam_sensor_power_setting 结构体描述。以下是一个典型的配置示例:

static struct cam_sensor_power_setting sensor_power_setting[] = {
    {
        .seq_type = CAM_SENSOR_POWER_SEQ_IOVDD,
        .seq_val = CAM_VOLTAGE_1800MV,
        .config_val_low = 0,
        .config_val_high = 1,
        .delay = 0,
    },
    {
        .seq_type = CAM_SENSOR_POWER_SEQ_DVDD,
        .seq_val = CAM_VOLTAGE_1200MV,
        .config_val_low = 0,
        .config_val_high = 1,
        .delay = 100,  // 100us 延迟
    },
    {
        .seq_type = CAM_SENSOR_POWER_SEQ_AVDD,
        .seq_val = CAM_VOLTAGE_2800MV,
        .config_val_low = 0,
        .config_val_high = 1,
        .delay = 200,  // 200us 延迟
    },
};
关键字段说明:
  • seq_type:电源域类型枚举,必须与硬件设计一致。
  • seq_val:目标电压值,单位 mV。
  • delay:上电后的等待时间,单位 us。用于满足 Sensor 的稳定时间要求。

2.4 电源域验证清单

在移植调试阶段,建议按照以下清单逐项确认电源域状态:

检查项 验证方法 通过标准
电压幅值 示波器 DC 耦合测量 误差 < ±3%
上电顺序 示波器多通道捕获上升沿 符合 Datasheet 时序图
纹波噪声 示波器 AC 耦合,20MHz 带宽限制 AVDD < 30mVpp,DVDD < 20mVpp
下电顺序 示波器捕获下降沿 AVDD 先于 DVDD 下电(通常)
Regulator 映射 检查 DTS 中 regulator 节点名称 与原理图 PMIC 输出一致

2.5 电源域架构关系图

下图展示了骁龙平台中 Sensor 电源域与 PMIC、主控之间的连接关系:

骁龙平台 Sensor 电源域架构图 骁龙 PMIC (如 PM8550) LDO / SMPS 输出 Camera Sensor (如 IMX586 / OV64B) 内部电源域引脚 IOVDD (1.8V) DVDD (1.2V) AVDD (2.8V) 骁龙主控 (SM8550 / SM8650) I2C 控制 (IOVDD 电平) MIPI CSI (IOVDD 电平) 注意:IOVDD 同时为 I2C 和 MIPI 接口提供电平参考,必须最先稳定

2.6 常见问题与调试建议

  • Sensor ID 读取失败:优先检查 IOVDD 电压是否达到目标值,以及 I2C 上拉电阻是否连接到正确的电源轨。
  • 图像有固定条纹噪声:使用示波器 AC 耦合测量 AVDD 纹波,若超过 30mVpp,需在 AVDD 输入端增加 1uF + 0.1uF 去耦电容。
  • 上电后 Sensor 发热严重:立即断电,检查 DVDD 电压是否过高(例如 1.8V 误配到 2.8V),或 AVDD/DVDD 顺序颠倒导致内部短路。
  • 下电时系统挂死:确保下电顺序与上电顺序相反,且每路电源完全放电后再进行下一次上电。
实战经验: 在首次上电验证时,建议将驱动中的 power_seq 延迟设置为 Datasheet 推荐值的 2 倍,待 Sensor 稳定工作后再逐步优化延迟参数,以提升启动速度。