迅為 RK3399開發板Android8系統-ov13850攝像頭移植分析


迅為 RK3399開發板Android8系統-ov13850攝像頭移植分析

 

本文將講解 OV13850 攝像頭在開發板上的配置過程。接口效果圖如下所示:

 

 

 

 

21.18.1 設備樹配置

1 打開設備樹 itop-3399_8.1/kernel/arch/arm64/boot/dts/rockchip/rk3399-android.dtsi 文件,如下圖所示。

camera 我們使用 ISP1

 

 

 

 

21.18.2 驅動說明

Android 部分:

itop-3399_8.1/hardware/rockchip/camera/CameraHal 是攝像頭的 HAL 源碼

itop-3399_8.1/hardware/rockchip/camera/SiliconImage ISP 庫,包括所有支持模組的驅動源碼

itop-3399_8.1/hardware/rockchip/camera/SiliconImage/isi/drv/OV13850 OV13850 模組的驅動源碼

itop-3399_8.1/hardware/rockchip/camera/SiliconImage/isi/drv/OV13850/calib/OV13850.xml OV13850 模組的

調校參數

itop-3399_8.1/hardware/rockchip/camera/Config/cam_board_rk3399.xml 文件可以設置攝像頭的參數

Kernel 部分:

itop-3399_8.1/kernel/drivers/media/video/rk_camsys CamSys 驅動源碼

21.18.3 原理圖分析

配置攝像頭需要配置攝像頭的 GPIO 和時鍾,即可完成配置。我們打開攝像頭的原理圖,如下圖所示:

 

 

 

 

 

 

 

 

然后在開發板的底板原理圖找到這倆個引腳,再在找到核心板原理圖中找到對應的引腳,如下圖所示:

 

 

 

 

對應的接口

 

 

 

 

 

21.18.4 配置 Android

1 修改 itop-3399_8.1/itop-3399_8.1/hardware/rockchip/camera/Config/cam_board_rk3399.xml 文件用來

注冊攝像頭,如下圖所示:

 

 

 

接下來我們來分析一下分別代表什么含義。

1 Sensor 名稱

<SensorName name="OV13850" ></SensorName>

2 Sensor 軟件標識

<SensorDevID IDname="CAMSYS_DEVID_SENSOR_1A"></SensorDevID>

保證驅動標識不一致即可,可選項有

CAMSYS_DEVID_SENSOR_1A

CAMSYS_DEVID_SENSOR_1B

CAMSYS_DEVID_SENSOR_2

3 Sensor 采集控制器的名稱

<SensorHostDevID busnum="CAMSYS_DEVID_MARVIN" ></SensorHostDevID>

4 i2c 通道 i2c1,具體通道號請參考攝像頭原理圖連接主控的 I2C 通道號。原理圖查看了是 i2c1

<SensorI2cBusNum busnum="1"></SensorI2cBusNum>

5 sensor 寄存器地址長度,單位是字節

<SensorI2cAddrByte byte="2"></SensorI2cAddrByte>

6 sensor i2c 頻率,單位是 Hz,用於設置 I2C 的頻率。

<SensorI2cRate rate="100000"></SensorI2cRate>

7 sensor 輸入時鍾頻率,用於設置攝像頭的時鍾

<SensorMclk mclk="24000000" delay="1000"></SensorMclk>

8 Sensor AVDD PMU LDO 名稱 如果不是連接到 PMU,那么只需填寫 NC

<SensorAvdd name="NC" min="28000000" max="28000000" delay="0"></SensorAvdd>

9 Sensor DVDD PMU LDO 名稱

<SensorDvdd name="NC" min="12000000" max="12000000" delay="0"></SensorDvdd>

如果不是連接到 PMU,那么只需填寫 NC。注意 min max 值必須填寫,決定了 Sensor IO 電壓

10 Sensor DOVDD PMU LDO 名稱

<SensorDovdd name="NC" min="18000000" max="18000000" delay="5000"></SensorDovdd>

11 Sensor PowerDown 引腳

<SensorGpioPwdn0 ioname="RK30_PIN2_PD4" active="0"></SensorGpioPwdn0> //mipi

直接填寫名稱即可,active 填寫休眠的有效電平

12 Sensor Reset 引腳

<SensorGpioRst ioname="RK30_PIN2_PD3" active="0"></SensorGpioRst>

直接填寫名稱即可,active 填寫復位的有效電平

13 Sensor Power 引腳

<SensorGpioPwen ioname="NC" active="1" delay="1000"></SensorGpioPwen>

直接填寫名稱即可,active 填寫電源的有效電平

14 選擇 Sensor 作為前置還是后置

<SensorFacing facing="back"></SensorFacing>

可填寫

front”或“back”

15 Sensor 的接口方式

<SensorInterface mode="MIPI"></SensorInterface>

16 Sensor 的鏡像方式

<SensorMirrorFlip mirror="0"></SensorMirrorFlip>

17 Sensor 的角度信息

<SensorOrientation orientation="0"></SensorOrientation>

18 物理接口設置

<SensorPhy phyMode="CamSys_Phy_Mipi" lane="2" phyIndex="1" sensorFmt="CamSys_Fmt_Raw_10b">

</SensorPhy>

hyMode: Sensor 接口硬件連接方式,對 MIPI Sensor 來說,該值取"CamSys_ Phy_ Mipir"

Lane: Sensor mipi 接口數據通道數

Phyindex: Sensor mipi 連接的主控 mipi phy 編號

sensorFmt: Sensor 輸出數據格式,目前前支持 CamSys_ Fmt. Raw_ 10b

21.18.5 編譯內核

我們需要將驅動源碼 itop-3399_8.1/kernel/drivers/media/video/rk_camsys 編譯進內核,配置方法如下:

(1) itop-3399_8.1/kernel/arch/arm64/configs/rockchip_linux_defconfig 是內核默認配置文件,我們在修改之

前要將其備份。

(2) 然后用 itop-3399_8.1/kernel/arch/arm64/configs/rockchip_linux_defconfig 文件覆蓋

itop-3399_8.1/kernel/.config 文件,然后輸入 make menuconfig 進行配置,輸入以下命令:

cp -r arch/arm64/configs/rockchip_linux_defconfig .config

make menuconfig

 

 

 

 

 

(3) 將以下配置打開,如下圖所示:

-> Device Drivers

-> Multimedia support (MEDIA_SUPPORT [=y])

-> camsys driver (CAMSYS_DRV [=y])

(1)

-> RockChip camera system driver

 

 

 

 

 

 

 

 

 

(4)配置完之后生成新的.config 文件,我們將其覆蓋默認配置文件,然后重新編譯內核。

cp -r .config arch/arm64/configs/rockchip_linux_defconfig

編譯完成燒寫鏡像,終端下可以直接修改 /system/etc/cam_board.xml 調試各參數並重啟生效。Android8

源碼里面 itop-3399_8.1/RKDocs 可以查看詳細的資料。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM