跳转至

Sensor 适配说明

1 概述

sample默认使用的 sensor 为 HY006-3814-0011。当需要在 Hi3516CV610 平台上更换或新增 sensor 时,除了编写对应sensor的驱动外,还需要按照本文档完成以下两类适配工作:

  1. 修改 sensor 时钟及相关加载配置。
  2. 适配 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 反馈。