OV7670 的SCCB (I2C)波形記錄

前兩天,客戶YACD511SBDBC與我們的芯片無法通信,根據分析是,hold time 的問題,順便測了幾個好使的OV7670SCCB(其實就是I2C) 讀寫的波形(數字模式),反正也不能浪費了,在此以記之,供以後參考。

1.     幾個基本概念

A)  在數據傳輸階段,SDA的變化只能在SCK爲低電平的時候,如果在SCK高電平的時候有SDA的變化,則可能表示的是I2CStart或者Stop

B) Start:當SCK爲高時,SDA從高跳變到低表示I2C總線的Start

C) Stop:當SCK爲高時,SDA從低跳變到高表示總線的Stop

D)ACK:每次傳輸8bit以後,接收方都會有一個迴應,如果爲低表示ACK,表示OK,如果爲高表示NACK,但不表示就有問題,比如Master接收Slave的數據的過程中不想接收了,就可以發送NACK

E)  地址 Address:在尋址段,在7位格式的地址中,發送的8位數據前七位爲地址,如下圖中的0x42, 最後一位表示此次發起的是讀還是寫,讀爲高電平,寫爲低電平。

F)  子地址 SubAddress:這個東東在I2C的規範裏面其實是沒有的,不過很多廠家都喜歡整這個,其實就是地址段後面的一個或者兩個自己的數據(一般使用寫入R/W=0)。比如俺們以前的BB沒有這個概率,現在新的BB有了這個概念,還支持8位和16位。

 NO ACK

 

 

1.     一個寫時序

下面是一個寫的地址段,加兩個數據段的波形,先發送芯片ID0x42R/W=0, 然後發送兩個寫入的數據:0x320xb6。

 

 

write

 

 

1.     一個寫加一個讀

先寫一個地址段,0x42,然後寫入(RW=0subaddress 0x0B。然後重新啓動一次傳輸,發送地址段,0x42, 讀取之前寫入的subaddress裏面的值,讀出的值爲0x76,因爲Master此時爲receiver,要終止傳輸了,所以MasterSalve的迴應爲NACK。也就是SCCB規範裏面的一個2-phase write加一個2-phase read.

 

Read&Write

 

 

 4.最後來一個總線上沒有設備的波形,上拉很弱

 

no pullup

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章