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)或初始化失败。典型的推荐顺序如下:
- IOVDD 先上电:确保 I2C 和 MIPI 接口电平稳定,避免控制总线误触发。
- DVDD 次之:数字核心供电,使内部逻辑开始复位。
- AVDD 最后:模拟部分上电,避免数字噪声耦合到模拟信号链。
下图展示了标准的上电时序波形关系:
常见陷阱: 部分 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、主控之间的连接关系:
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 稳定工作后再逐步优化延迟参数,以提升启动速度。