Sensor 适配说明
1 概述
sample默认使用的 sensor 为 HY006-3814-0011。当需要在 Hi3516CV610 平台上更换或新增 sensor 时,除了编写对应sensor的驱动外,还需要按照本文档完成以下两类适配工作:
- 修改 sensor 时钟及相关加载配置。
- 适配 sample 的编译与加载参数。
本文档面向开发板使用者与 sample 维护者,涉及硬件时钟寄存器、sys_config、加载脚本与编译宏的修改。
2 适配流程总览
整个适配过程分为两大步骤:
- 修改 sensor 时钟:配置 CRG 时钟寄存器,并在
sys_config与加载脚本中适配新增 sensor(见第 3 章)。 - 适配 sample:在编译配置中切换 sensor 宏并完成加载(见第 4 章)。
3 修改 sensor 时钟
3.1 配置 CRG 时钟寄存器
sensor 时钟由 CRG(时钟复位生成)寄存器控制,寄存器基地址为 0x1101_0000。相关寄存器配置请参见《Hi3516CV610 超高清智慧视觉 SoC 用户指南》的“3.2.4 CRG 寄存器概览”小节。
sensor 时钟配置涉及的寄存器如下:
| 偏移地址 | 名称 | 描述 |
|---|---|---|
| 0x8440 | PERI_CRG8464 | SENSOR0 时钟复位配置寄存器 |
| 0x8460 | PERI_CRG8472 | SENSOR1 时钟复位配置寄存器 |
根据所用 sensor 支持的时钟频率,配置对应的时钟分频与复位。
3.2 适配 sys_config
新增 sensor 需要在 sys_config 中配置其对应的时钟与初始化参数。
- 文件位置:
soc/drivers/interdrv/sysconfig/sys_cfg.c - 修改要点:参考
SENSOR_NAME_HY006_3814_0011宏定义,新增 sensor 对应的宏定义SENSOR_NAME_xxx及相应代码流程。
下面以 sensor 时钟为 24 MHz 为例,说明修改内容:

3.3 适配加载脚本传参
新增 sensor 后,还需要在加载脚本中将新增的 sensor 参数传入内核。
- 文件位置:
output/mpp/ko/load_ko/ - 修改要点:在
load3516cv610_xx脚本中适配新增 sensor 的传参。
修改内容示例如下:

4 适配 sample
编译 sample 前,需要确定使用哪种 sensor。默认的 sample 配置为 HY006_3814_0011_MIPI_4M_30FPS_10BIT。
如新增 sensor,可搜索并参考 HY006_3814_0011_MIPI_4M_30FPS_10BIT 宏定义,按与之相同的方式完成新增 sensor 的相关修改。确定使用哪种 sensor 之后,才能对 sample 进行编译;加载前还需修改加载脚本,或通过传入命令参数的方式加载。
4.1 修改 Makefile.param
- 文件位置:
samples/mpp/Makefile.param - 修改要点:切换或新增 sample 使用的 sensor 宏定义。
修改内容示例如下:

5 适配检查要点
请逐项确认以下内容均已按本文档进行适配,再进行sensor的测试验证:
- 第 3.1 节 CRG 寄存器时钟配置已按所用 sensor 要求完成调整。
- 第 3.2 节
sys_cfg.c中已新增SENSOR_NAME_xxx宏定义及对应代码流程。 - 第 3.3 节加载脚本已传入新增 sensor 参数。
- 第 4.1 节
Makefile.param已切换或新增对应的 sensor 宏。 - 文档与代码中的 sensor 名称一致(文档用连字符,如
HY006-3814-0011;代码宏与帧格式名用下划线,如HY006_3814_0011_MIPI_4M_30FPS_10BIT)。
6 声明与反馈
- 本文档涉及的寄存器、宏、文件位置与示例代码,以实际发布版本为准。
- 常见问题(故障排查)请依据实际发布的异常现象补充填写。
- 如发现本说明不清晰或过时,欢迎通过 issues 反馈。