RDK X5 相机传感器 Bring-up
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_b4996f22/rdkx5-camera-bringup。
技能介绍
要解决什么问题
在 RDK X5 的 hobot-camera 子系统里接入一款新 CMOS 传感器,通常要同时改驱动目录、inc/*_setting.h 里的寄存器表,以及 hobot-spdev 里 vp_sensors/ 的管线配置。规格散落在 datasheet 与厂商 setting 文件中,寄存器宽度、MIPI lane 数、分页机制各不相同,照抄错误模板会导致编译通过但 I2C 或出图失败。
技能如何工作
本技能把 bring-up 拆成可执行阶段,而不是一次性堆代码:
- 信息收集:按清单补齐型号、I2C 地址与总线、分辨率/帧率/VTS、MIPI 与时序、RAW/Bayer、寄存器架构与控制寄存器、MCLK 与 GPIO 极性等;信息不全时要求你查 datasheet,不猜测寄存器值。
- 参考传感器:按寄存器位宽、lane 数、厂商匹配模板(如 Sony 2-lane 参考
imx219,OV 8-bit 分页参考ov08d/f37,GalaxyCore 4-lane 参考gc8613等),并对照*_utility.c与*_setting.h的结构。 - 驱动生成:在
source/hobot-camera/drivers/sensor/下创建version.mk、Makefile、*_utility.c(sensor_poweron/off、sensor_init、sensor_start/stop、sensor_linear_data_init等)及inc/*_setting.h;按地址宽度设置CAM_MODULE_FLAG_A8D8或CAM_MODULE_FLAG_A16D8。 - vp_sensors 集成:新增
linear_*_raw*_fps_*lane.c,并在vp_sensors.c的vp_sensor_config_list[]中注册。 - 构建与收尾:用仓库约定的
./mk_debs.sh hobot-camera验证lib.so产出,并给出文件摘要、硬件验证步骤与 I2C 排查要点。
适用边界与注意点
- 面向 RDK X5 / x5rdkmain 既定目录布局与
hb_i2c代码风格;DTS 在内核树source/kernel/arch/arm64/boot/dts/hobot/,技能流程以驱动与 vp 配置为主。 - 父级 Makefile 通过
find自动发现子目录;仅当某传感器不参与编译时才需写入notuse。 - 编译失败时查语法与 setting 数组格式;I2C 失败时重点核对 7-bit 地址、OV 分页(如
0xfd)以及 MCLK 是否先于 I2C 开启。
使用场景
- 厂商提供新型号 setting 与 datasheet,需在 `hobot-camera/drivers/sensor/` 下生成 `*_utility.c` 与 `inc/*_setting.h` 并通过 `./mk_debs.sh hobot-camera` 编译。
- 要在 CAM2 等总线上接入 2-lane RAW10 传感器,需按 imx219 或 ov08d 等模板选定参考驱动并补齐曝光、VTS、增益寄存器定义。
- 驱动 `lib.so` 已产出但应用选不到分辨率模式,需在 `vp_sensors/` 新增 `linear_*_lane.c` 并在 `vp_sensors.c` 的列表中注册。
- Bring-up 时 I2C 读 Chip ID 失败,需对照技能清单核对 7-bit 地址、OmniVision 分页寄存器及 MCLK 先于 I2C 开启等条件。
适合人员
- 维护 x5_rdk_main 中 `hobot-camera` 传感器目录的 BSP 工程师,要把 IMX/GC/OV 新料按仓库风格接入并过编译。
- 首次在 RDK X5 上改相机栈的嵌入式开发,需要从参考 `*_utility.c` 理解 power/ stream 与 `CAM_MODULE_FLAG` 含义。
- 负责 MIPI CSI-2 板级联调的硬件或 FAE,需与软件对齐 lane 速率、RAW 格式与 GPIO 复位极性再写 setting。
- 把厂商多分辨率寄存器表转成 C 初始化数组,并对接 `sensor_mode_config_init` 与可选 AE 控制的相机中间件开发。