• 正文
    • 硬件原理
    • IOMUX配置
    • 修改設(shè)備節(jié)點(diǎn)
    • 配置OV5640驅(qū)動(dòng)
    • 編譯測(cè)試
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

飛凌嵌入式ElfBoard ELF 1板卡-開發(fā)板適配之CSI

02/22 09:00
655
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

i.MX6ULL的CSI(CMOS Sensor Interface),即,CMOS傳感器接口,是一種攝像頭并行數(shù)據(jù)接口,支持8-bit/10-bit/16-bit Bayer,YUV,YCrCb,RGB數(shù)據(jù)輸入,也支持CCIR656格式數(shù)據(jù)輸入。ELF?1開發(fā)板支持8位并行DVP接口的數(shù)字?jǐn)z像頭OV5640。

硬件原理

CSI_DATA0—CSI_DATA7是CSI數(shù)據(jù)信號(hào)引腳;

CSI_PIXCLK是像素時(shí)鐘;

CSI_MCLK為攝像頭提供主時(shí)鐘,保證功能實(shí)現(xiàn);

CSI_HSYNC、CSI_VSYNC作為攝像頭的行場(chǎng)掃描模式信號(hào),提供行場(chǎng)信息;

IIC2_SDA和IIC2_SCL用來(lái)配置攝像頭設(shè)備地址為0x30;

CSI_PWDN是CSI的電源使能引腳,由SN74HC595D擴(kuò)展芯片控制。

IOMUX配置

NXP官方的i.MX6ULL EVK板,使用的CSI接口與ELF?1開發(fā)板一致,所以,已經(jīng)配置好CSI接口和I2C2的的IOMUX:

修改設(shè)備節(jié)點(diǎn)

ELF?1的攝像頭和NXP官方使用的方案一致,都是OV5640攝像頭,但硬件設(shè)計(jì)略有區(qū)別,需要做出一些改動(dòng)。

根節(jié)點(diǎn)下csi節(jié)點(diǎn):

I2C2節(jié)點(diǎn)下內(nèi)容如下,Elf1底板上給OV5640做了硬件復(fù)位,無(wú)需軟件復(fù)位,因此,需要對(duì)設(shè)備樹做出一些修改,去掉復(fù)位部分以及修改電源引腳:

????????ov5640: ov5640@3c {

????????????????compatible = "ovti,ov5640";

????????????????reg = <0x3c>;

????????????????pinctrl-names = "default";

????????????????pinctrl-0 = <&pinctrl_csi1>;

????????????????clocks = <&clks IMX6UL_CLK_CSI>;

????????????????clock-names = "csi_mclk";

????????????????pwn-gpios = <&gpio_spi 4 1>;

??????????????/* rst-gpios = <&gpio_spi 5 0>;*/

????????????????csi_id = <0>;

????????????????mclk = <24000000>;

????????????????mclk_source = <0>;

????????????????status = "okay";

????????????????port {

????????????????????????ov5640_ep: endpoint {

????????????????????????????????remote-endpoint = <&csi1_ep>;

????????????????????????};

????????????????};

????????};

效果如下:

reg = <0x3c>;攝像頭設(shè)備的I2C地址

clocks = <&clks IMX6UL_CLK_CSI>;配置CSI時(shí)鐘

clock-names = "csi_mclk";時(shí)鐘名稱

pwn-gpios = <&gpio_spi 4 1>;攝像頭電源使能引腳,由SN74HC595D 的QE控制。

rst-gpios = <&gpio_spi 5 0>;攝像頭復(fù)位引腳,此引腳沒有用到,所以注釋掉此屬性。

csi_id = <0>;CSI ID

mclk = <24000000>;攝像頭主時(shí)鐘設(shè)置為24M

mclk_source = <0>;時(shí)鐘源

配置OV5640驅(qū)動(dòng)

在內(nèi)核源碼當(dāng)中已經(jīng)集成了OV5640的驅(qū)動(dòng),路徑為:drivers/media/platform/mxc/subdev/ov5640.c。但這個(gè)驅(qū)動(dòng)需要修改后才能使用,在ELF?1的資料包當(dāng)中,提供了修改好的版本,路徑為:ELF 1開發(fā)板資料包