SCCB控制ov7670简介
轉(zhuǎn):http://archive.cnblogs.com/a/2011464/
測(cè)了幾個(gè)好使的OV7670的SCCB(其實(shí)就是I2C) 讀寫(xiě)的波形(數(shù)字模式),反正也不能浪費(fèi)了,在此以記之,供以后參考。
1. 幾個(gè)基本概念
A) 在數(shù)據(jù)傳輸階段,SDA的變化只能在SCK為低電平的時(shí)候,如果在SCK高電平的時(shí)候有SDA的變化,則可能表示的是I2C的Start或者Stop
B) Start:當(dāng)SCK為高時(shí),SDA從高跳變到低表示I2C總線的Start
C) Stop:當(dāng)SCK為高時(shí),SDA從低跳變到高表示總線的Stop
D)ACK:每次傳輸8個(gè)bit以后,接收方都會(huì)有一個(gè)回應(yīng),如果為低表示ACK,表示OK,如果為高表示NACK,但不表示就有問(wèn)題,比如Master接收Slave的數(shù)據(jù)的過(guò)程中不想接收了,就可以發(fā)送NACK
E) 地址 Address:在尋址段,在7位格式的地址中,發(fā)送的8位數(shù)據(jù)前七位為地址,如下圖中的0x42, 最后一位表示此次發(fā)起的是讀還是寫(xiě),讀為高電平,寫(xiě)為低電平。
F) 子地址 SubAddress:這個(gè)東東在I2C的規(guī)范里面其實(shí)是沒(méi)有的,不過(guò)很多廠家都喜歡整這個(gè),其實(shí)就是地址段后面的一個(gè)或者兩個(gè)自己的數(shù)據(jù)(一般使用寫(xiě)入R/W=0)。比如俺們以前的BB沒(méi)有這個(gè)概率,現(xiàn)在新的BB有了這個(gè)概念,還支持8位和16位。
一個(gè)寫(xiě)時(shí)序
下面是一個(gè)寫(xiě)的地址段,加兩個(gè)數(shù)據(jù)段的波形,先發(fā)送芯片ID,0x42和R/W=0, 然后發(fā)送兩個(gè)寫(xiě)入的數(shù)據(jù):0x32,0xb6。
一個(gè)寫(xiě)加一個(gè)讀
先寫(xiě)一個(gè)地址段,0x42,然后寫(xiě)入(RW=0)subaddress 0x0B。然后重新啟動(dòng)一次傳輸,發(fā)送地址段,0x42, 讀取之前寫(xiě)入的subaddress里面的值,讀出的值為0x76,因?yàn)镸aster此時(shí)為receiver,要終止傳輸了,所以Master給Salve的回應(yīng)為NACK。也就是SCCB規(guī)范里面的一個(gè)2-phase write加一個(gè)2-phase read.
4.最后來(lái)一個(gè)總線上沒(méi)有設(shè)備的波形,上拉很弱
總結(jié)
以上是生活随笔為你收集整理的SCCB控制ov7670简介的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 月夜思乡(杜甫的月夜思乡,言在彼而意在此
- 下一篇: 太子摩托车(大地鹰王150全新车要多少钱