4. Sensor 上电时序基础:电源域划分、复位时序与时钟要求
Sensor 的上电时序是驱动开发中最基础也最容易出问题的环节。RK 平台下,DVP 接口 Sensor 通常需要三路独立电源(AVDD、DVDD、IOVDD),并严格遵循先电源、再复位、最后时钟的启动顺序。任何一路电源的时序偏差都可能导致 Sensor 初始化失败、图像异常甚至芯片损坏。
4.1 电源域划分:AVDD / DVDD / IOVDD
Sensor 内部由模拟电路、数字核心电路和 I/O 接口电路三部分组成,分别由独立的电源域供电。三路电源的典型电压范围如下表所示:
| 电源域 | 全称 | 典型电压 (V) | 供电对象 | 纹波要求 |
|---|---|---|---|---|
| AVDD | Analog VDD | 2.8 / 3.3 | 像素阵列、模拟信号链、PLL | < 30 mVpp |
| DVDD | Digital Core VDD | 1.2 / 1.5 / 1.8 | 数字逻辑核心、ISP 预处理 | < 50 mVpp |
| IOVDD | I/O Interface VDD | 1.8 / 2.8 / 3.3 | DVP 数据/同步信号、SCCB 接口 | < 100 mVpp |
关键提示:IOVDD 必须与 RK 主控对应 GPIO bank 的电压域匹配。例如 RK3588 的 DVP 接口通常使用 1.8V 或 3.3V 电平,若 IOVDD 与主控电压不匹配,会导致信号电平无法识别甚至烧毁 IO。
三路电源的上电顺序通常遵循 先模拟、再数字、最后 IO 的原则,但具体顺序需以 Sensor 数据手册为准。下图展示了典型的电源域划分与供电关系:
4.2 复位时序
Sensor 复位分为硬件复位(通过 XCLR / RESET 引脚)和软件复位(通过 SCCB 寄存器写操作)。在 DVP 接口中,硬件复位是上电流程的必要环节。
4.2.1 硬件复位时序要求
- 复位低电平持续时间:通常要求 ≥ 1 ms(部分 Sensor 要求 ≥ 10 ms)。
- 复位释放后的稳定时间:从复位引脚拉高到 Sensor 内部 PLL 锁定,通常需要 1 ~ 5 ms。
- 复位与电源的关系:复位引脚必须在所有电源稳定之后才能释放,否则可能导致内部状态机异常。
常见踩坑点:部分开发者将复位引脚直接上拉到 IOVDD,导致复位信号与电源同时上升,无法满足“电源先稳定、复位后释放”的时序要求。正确的做法是使用主控 GPIO 控制复位引脚,并在驱动中通过延时确保时序。
4.2.2 复位时序波形图
4.3 时钟要求
DVP 接口 Sensor 需要外部提供主时钟(MCLK / XCLK),用于内部 PLL 倍频产生像素时钟和系统时钟。时钟质量直接影响图像采样精度和帧率稳定性。
4.3.1 主时钟参数
| 参数 | 典型值 | 说明 |
|---|---|---|
| 频率范围 | 6 ~ 27 MHz | 常见为 24 MHz 或 27 MHz |
| 频率精度 | ± 1% | 超出范围可能导致帧率偏移或 PLL 失锁 |
| 占空比 | 45% ~ 55% | 非对称时钟会影响内部采样时序 |
| 抖动 (Jitter) | < 200 ps RMS | 过大抖动会引入图像噪声 |
4.3.2 时钟与上电时序的配合
主时钟必须在复位释放之前稳定提供,否则 Sensor 内部 PLL 无法锁定,导致初始化失败。典型的时钟启动顺序为:
- 所有电源域稳定(电压达到标称值 90% 以上)。
- 主控输出 MCLK 时钟信号,等待时钟稳定(通常 ≥ 1 ms)。
- 释放 Sensor 复位引脚(拉高)。
- 等待 Sensor 内部 PLL 锁定(通常 1 ~ 5 ms)。
- 通过 SCCB 读取 Sensor ID 确认通信正常。
RK 平台实践:在 RK 设备树中,MCLK 通常由
clocks 属性指定,驱动中通过 clk_prepare_enable() 使能时钟。务必在复位 GPIO 操作之前调用该函数,并加入适当延时。
4.3.3 时钟树结构图
4.4 上电时序完整流程总结
将电源、复位、时钟三要素整合,得到 Sensor 上电的完整操作序列。以下流程适用于大多数 DVP 接口 Sensor,具体参数需查阅对应数据手册:
| 步骤 | 操作 | 最小延时 | 检查点 |
|---|---|---|---|
| 1 | 使能 AVDD 电源 | 0.1 ms | 电压 ≥ 标称值 90% |
| 2 | 使能 DVDD 电源 | 0.1 ms | 电压 ≥ 标称值 90% |
| 3 | 使能 IOVDD 电源 | 0.1 ms | 电压 ≥ 标称值 90% |
| 4 | 使能 MCLK 时钟 | 1 ms | 时钟频率稳定、占空比正常 |
| 5 | 释放 RESET 引脚(拉高) | 1 ~ 5 ms | PLL 锁定完成 |
| 6 | 读取 Sensor ID 寄存器 | — | 返回值与手册一致 |
调试建议:如果上电后无法读取 Sensor ID,优先使用示波器测量各电源域的上升沿时序、复位引脚的拉高时刻以及 MCLK 波形。常见问题包括:电源上升斜率过慢、复位释放过早、MCLK 占空比严重偏离 50%。