加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權(quán)保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • 一、環(huán)境
    • 二、DW9714
    • 三、驅(qū)動移植
    • 四、調(diào)試信息
    • 五、驅(qū)動分析
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

Camera | 12.瑞芯微攝像頭自動焦距馬達驅(qū)動移植

2023/08/23
4183
閱讀需 15 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論
本為你主要講解如何讓攝像頭ov13850支持自動對焦功能。攝像頭的對角主要通過VCM馬達驅(qū)動芯片DW9714來實現(xiàn)的。

一、環(huán)境

soc??:?rk3568???
board:?EVB1-DDR4-V10
軟??件:Android?11
Linux:4.19.232
Camera:ov13850

二、DW9714

1.DW9714簡介

DW9714專為自動對焦和光學(xué)變焦照相手機、數(shù)碼相機和攝像機應(yīng)用而設(shè)計,

由韓國動運國際有限公司(Dongwoon )設(shè)計生產(chǎn)。

工作電壓可達3.6V。

DAC通過I2C串行接口控制,該接口以高達400kHz的時鐘速率操作DAC。

DW9714集成了上電復(fù)位電路、掉電功能和精確匹配的檢測電阻。

上電復(fù)位電路確保當(dāng)電源上電時,DAC輸出為0V,直到發(fā)生有效的寫位值。它具有斷電功能,可將器件的電流消耗降至最大1uA。

2. 特征

    用于自動對焦的VCM驅(qū)動程序關(guān)機功能:XSD=低電平有效VCM的10位分辨率電流吸收為120mAI2C串行接口(可用于1.8V輸入電平)集成電流檢測電阻保證所有代碼的單調(diào)性低至0.5uA(典型值)上電復(fù)位掉電功能2.3V至3.6V操作

3. 模塊圖

4. 引腳

序號 Pin Name I/O Description Note
1 IOUT Output current sink
2 VSS 接地
3 VDD 供電
4 SDA I2C interface input (DATA)
5 SCL I2C interface input/output (CLOCK)
6 XSD(1) 關(guān)機模式,低有效

5. 參考電路

6. i2c時序

由以下時序可以看到,vcm9714利用I2C接口通信時,每次讀/寫,直接傳輸2個字節(jié)的數(shù)據(jù),通信之前,不需要發(fā)送內(nèi)部寄存器地址。

7. 寄存器格式

引腳 說明
PD Power down mode
1: Power down mode (active high)
0: Normal operation mode
FLAG 寫操作時必須置為低
D[9:0] Data input
輸出電流 = (D[9:0]/1023) X 120mA
最大電流 = 120mA +/- 5%
S[3:2] Codes per step
0: 0 (no SRC) – direct driving
1: 1
2 :2
3: 4
S[1:0] 步進周期
0: 81
1: 162
2: 324
3: 648

三、驅(qū)動移植

vcm9714與rk3568連接圖:

    設(shè)備樹:
@arch/arm64/boot/dts/rockchip/rk3568-evb1-ddr4-v10.dtsi
560?????dw9714:?dw9714@c?{
561?????????compatible?=?"dongwoon,dw9714";
562?????????status?=?"okay";
563?????????reg?=?<0x0c>;
564?????????rockchip,camera-module-index?=?<0>;
565?????????rockchip,vcm-start-current?=?<10>;
566?????????rockchip,vcm-rated-current?=?<85>;
567?????????rockchip,vcm-step-mode?=?<5>;
568?????????rockchip,camera-module-facing?=?"back";
569?????};
570?
571?????ov13850:?ov13850@10?{
???……
584?????????lens-focus?=?<&dw9714>;
???……??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
591?????};

其中,下面這兩個屬性,必須要和對應(yīng)的的攝像頭ov13850信息保持一致

rockchip,camera-module-index?=?<0>;
rockchip,camera-module-facing?=?"back";

攝像頭支持的馬達驅(qū)動信息通過以下屬性關(guān)聯(lián)

lens-focus?=?<&dw9714>;
    Makefile
@kerneldriversmediai2cMakefile
obj-$(CONFIG_VIDEO_DW9714)??+=?dw9714.o
    Kconfig
@kerneldriversmediai2cKconfig
config?VIDEO_DW9714
?tristate?"DW9714?lens?voice?coil?support"
?depends?on?I2C?&&?VIDEO_V4L2?&&?MEDIA_CONTROLLER
?depends?on?VIDEO_V4L2_SUBDEV_API
?---help---
???This?is?a?driver?for?the?DW9714?camera?lens?voice?coil.
???DW9714?is?a?10?bit?DAC?with?120mA?output?current?sink
???capability.?This?is?designed?for?linear?control?of
???voice?coil?motors,?controlled?via?I2C?serial?interface.
    支持該驅(qū)動:
@?arch/arm64/configs/rockchip_defconfig?
572?CONFIG_VIDEO_DW9714=y??
    驅(qū)動:
rk_android11.0_sdk_220718kerneldriversmediai2cdw9714.c

四、調(diào)試信息

1. 啟動的驅(qū)動log

?[????0.800799]?vm149c?4-000c:?probing...
?[????0.800820]?vm149c?4-000c:?driver?version:?00.01.00
?[????0.800834]?vm149c?4-000c:?could?not?get?module?rockchip,vcm-max-current?from?dts!
?[????0.800847]?vm149c?4-000c:?could?not?get?module?rockchip,vcm-start-current?from?dts!
?[????0.800860]?vm149c?4-000c:?could?not?get?module?rockchip,vcm-rated-current?from?dts!
?[????0.800872]?vm149c?4-000c:?could?not?get?module?rockchip,vcm-step-mode?from?dts!
?[????0.800907]?vm149c?4-000c:?probing?successful?

2. 查看拓撲結(jié)構(gòu)

media-ctl?-p

……………
?-?entity?74:?m00_b_ov13850?4-0010?(1?pad,?1?link)
?????type?V4L2?subdev?subtype?Sensor
?????device?node?name?/dev/v4l-subdev4
???pad0:?Source
?????[fmt:SBGGR10/4224x3136]
?????->?"rockchip-csi2-dphy0":0?[]

?-?entity?78:?m00_b_gpio-flash?(0?pad,?0?link)
?????type?V4L2?subdev?subtype?Flash
?????device?node?name?/dev/v4l-subdev5

?-?entity?79:?m00_b_dw9714?4-000c?(0?pad,?0?link)
?????type?V4L2?subdev?subtype?Lens
?????device?node?name?/dev/v4l-subdev6

五、驅(qū)動分析

vcm9714驅(qū)動比較簡單,基于i2c總線,

核心就是要注冊基于v4l2的subdev,

提供給用戶層調(diào)用的核心回調(diào)函數(shù)如下:

    獲取并設(shè)置當(dāng)前馬達的pos
static?const?struct?v4l2_ctrl_ops?dw9714_vcm_ctrl_ops?=?{
?.g_volatile_ctrl?=?dw9714_get_ctrl,
?.s_ctrl?=?dw9714_set_ctrl,
};
static?int?dw9714_init_controls(struct?dw9714_device?*dev_vcm)
{
?struct?v4l2_ctrl_handler?*hdl?=?&dev_vcm->ctrls_vcm;
?const?struct?v4l2_ctrl_ops?*ops?=?&dw9714_vcm_ctrl_ops;

?v4l2_ctrl_handler_init(hdl,?1);

?v4l2_ctrl_new_std(hdl,?ops,?V4L2_CID_FOCUS_ABSOLUTE,
?????0,?VCMDRV_MAX_LOG,?1,?VCMDRV_MAX_LOG);
?……
}

 

static?const?struct?v4l2_subdev_core_ops?dw9714_core_ops?=?{
?.ioctl?=?dw9714_ioctl,
};

static?const?struct?v4l2_subdev_ops?dw9714_ops?=?{
?.core?=?&dw9714_core_ops,
};

static?int?dw9714_probe(struct?i2c_client?*client,
???const?struct?i2c_device_id?*id)
{
?v4l2_i2c_subdev_init(&dw9714_dev->sd,?client,?&dw9714_ops);
}?

所有camera原創(chuàng)文章已經(jīng)匯總成pdf,

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風(fēng)險等級 參考價格 更多信息
74HC595BQ,115 1 NXP Semiconductors 74HC(T)595 - 8-bit serial-in, serial or parallel-out shift register with output latches; 3-state QFN 16-Pin
$0.41 查看
CMWX1ZZABZ-078 1 Murata Manufacturing Co Ltd LORA MODULE

ECAD模型

下載ECAD模型
$16.04 查看
24LC256-I/ST 1 Microchip Technology Inc 32K X 8 I2C/2-WIRE SERIAL EEPROM, PDSO8, 4.40 MM, PLASTIC, TSSOP-8

ECAD模型

下載ECAD模型
$1.05 查看
瑞芯微電子

瑞芯微電子

瑞芯微專注于移動互聯(lián)網(wǎng)、數(shù)字多媒體芯片設(shè)計,是專業(yè)的個人移動信息終端SOC解決方案供應(yīng)商。瑞芯微在移動互聯(lián)網(wǎng)領(lǐng)域有多個較完整的自主創(chuàng)新的知識產(chǎn)權(quán)群,為中國電子業(yè)發(fā)展做出積極努力。目前產(chǎn)品涵蓋Android平板電腦、Android電視機頂盒(智能電視)、電子書、WIFI/藍牙音頻解決方案等。

瑞芯微專注于移動互聯(lián)網(wǎng)、數(shù)字多媒體芯片設(shè)計,是專業(yè)的個人移動信息終端SOC解決方案供應(yīng)商。瑞芯微在移動互聯(lián)網(wǎng)領(lǐng)域有多個較完整的自主創(chuàng)新的知識產(chǎn)權(quán)群,為中國電子業(yè)發(fā)展做出積極努力。目前產(chǎn)品涵蓋Android平板電腦、Android電視機頂盒(智能電視)、電子書、WIFI/藍牙音頻解決方案等。收起

查看更多

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

公眾號『一口Linux』號主彭老師,擁有15年嵌入式開發(fā)經(jīng)驗和培訓(xùn)經(jīng)驗。曾任職ZTE,某研究所,華清遠見教學(xué)總監(jiān)。擁有多篇網(wǎng)絡(luò)協(xié)議相關(guān)專利和軟件著作。精通計算機網(wǎng)絡(luò)、Linux系統(tǒng)編程、ARM、Linux驅(qū)動、龍芯、物聯(lián)網(wǎng)。原創(chuàng)內(nèi)容基本從實際項目出發(fā),保持原理+實踐風(fēng)格,適合Linux驅(qū)動新手入門和技術(shù)進階。