i2c通信的详细讲解_【博文连载】SCCB(I2C)初始化时序介绍
生活随笔
收集整理的這篇文章主要介紹了
i2c通信的详细讲解_【博文连载】SCCB(I2C)初始化时序介绍
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
在正式開(kāi)始OV7725視頻采集實(shí)現(xiàn)之前,Bingo不得不先講解一下OV7725的寄存器配置接口。OV7725上電會(huì)默認(rèn)輸出YUV422格式的視頻流,但我們希望傳感器能夠按照我們預(yù)期的模式工作,我們需要配置分辨率,配置內(nèi)部時(shí)鐘,配置亮度、色差、3A參數(shù)等。因此我們需要一個(gè)接口,來(lái)完成OV7725寄存器的配置——這就是SCCB接口,即Serial Camera Control Bus,串行相機(jī)控制總線。OV7725的SCCB總線,實(shí)際上就是我們常用的I2C通信總線,這在前文已經(jīng)提到過(guò),只不過(guò)OmniVision針對(duì)Camera的控制,專門(mén)提供了一個(gè)術(shù)語(yǔ)。OV7725的SCCB接口有兩個(gè)信號(hào),即時(shí)鐘信號(hào)SCL、數(shù)據(jù)信號(hào)SDA。OV7725通過(guò)這兩個(gè)信號(hào),完成寄存器的配置,實(shí)現(xiàn)預(yù)期配置的視頻流輸出。Bingo曾在2012年的時(shí)候?qū)戇^(guò)《從零開(kāi)始走進(jìn)OV7670世界》,詳細(xì)的介紹了OV7725的SSCB(I2C)接口的HDL初始化,介紹了CMOS視頻數(shù)據(jù)的采集,同時(shí)介紹了YUV2RGB等內(nèi)容。由于OV7760與OV7725屬于OmniVision的同系列數(shù)字相機(jī),驅(qū)動(dòng)方式與時(shí)序完全一樣,因此SCCB總線的初始化可以參照該手冊(cè)。I2C/SCCB總線制方式簡(jiǎn)單,器件封裝形式小,主要有一下幾個(gè)特點(diǎn):(1) I2C總線只需要兩條總線:一條串行數(shù)據(jù)線SDA,一條串行時(shí)鐘線SCL(2) I2C總線不需要片選就可以實(shí)現(xiàn)多個(gè)設(shè)備的鏈接,并且通過(guò)從機(jī)為唯一地址識(shí)別器件,通過(guò)地址的響應(yīng),完成每一個(gè)器件的配置(3) I2C是一個(gè)真正的多主機(jī)總線,如果多個(gè)主機(jī)同時(shí)初始化,數(shù)據(jù)傳輸可以通過(guò)沖突檢測(cè)和仲裁防止數(shù)據(jù)被破壞(4) 串行的8 位雙向數(shù)據(jù)傳輸位速率在標(biāo)準(zhǔn)模式下可達(dá)100kbit/s,快速模式下可達(dá)400kbit/s,高速模式下可達(dá)3.4Mbit/s(5) 連接到相同總線的IC 數(shù)量只受到總線的最大電容400pF 限制官方手冊(cè)給出了SCCB總線8Bit數(shù)據(jù)串行發(fā)送的時(shí)序圖,如下圖所示(其中SCCB_E作為I2C的使能信號(hào),類似于SPI總線的CS信號(hào),這里我們不需要關(guān)心):SCCB總線通過(guò)串行方式發(fā)送8Bit數(shù)據(jù),先發(fā)送MSB,再發(fā)送LSB,與SPI總線協(xié)議的數(shù)據(jù)發(fā)送很類似(除了不需要SPI_CS)。在發(fā)送完8Bit數(shù)據(jù)后,通過(guò)器件的響應(yīng)信號(hào),完成一次數(shù)據(jù)的傳輸。很久前在《從零開(kāi)始走進(jìn)OV7670世界》中,Bingo移植并優(yōu)化了Terasic的I2C控制器;但是可讀性和bug實(shí)在太多,因此后面花了九牛二虎之力,自己大淘了一套I2C讀寫(xiě)代碼,每一個(gè)代碼都經(jīng)過(guò)苛刻的追求,無(wú)數(shù)次Modelsim+CMOS測(cè)試(雖然完美是沒(méi)有極限的)。在沒(méi)個(gè)Sensor采集工程中的cmos_i2c_oVxxxx,均可找到i2c_timing_ctrl.v文件,該模塊完整的描述了I2C時(shí)序,實(shí)現(xiàn)了CMOS Sensor的SCCB寄存器讀寫(xiě)功能。詳情請(qǐng)仔細(xì)分析i2c_timing_ctrl.v文件,Bingo在狀態(tài)機(jī)的基礎(chǔ)上完美的實(shí)現(xiàn)了I2C總線時(shí)序的封裝,接口及例化如下所示:從接口例化中可見(jiàn),Bingo還額外的為OV7725 SCCB初始化配套的設(shè)計(jì)了寄存器接口,如下表所示(部分參照了Terasic的代碼):
?
總結(jié)
以上是生活随笔為你收集整理的i2c通信的详细讲解_【博文连载】SCCB(I2C)初始化时序介绍的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 论文阅读笔记(三)【ACL 2021】L
- 下一篇: 对照表 - 用心整理了一批国内省份、城市