FPGA學習日誌——攝像頭暫存器配置
阿新 • • 發佈:2021-02-09
FPGA學習日誌
鼓勵自己每天進行學習總結:2021.2.3
文章目錄
前言
想要學習FPGA的影象處理,學會使用攝像頭是很關鍵的。攝像頭的使用分兩步:暫存器的配製、資料的讀取。今天先來學習基於SCCB的攝像頭暫存器的配置方式。
一、SCCB簡介
人們都說SCCB跟IIC很像,但我其實不瞭解IIC協議。
雙線模式的SCCB傳輸只用到SIO_C和SIO_D,但這兩條線都大有用處!
開始:SIO_C處於高電平,SIO_D出現下降沿
結束:SIO_C處於高電平,SIO_D出現上升沿,注意結束前的SIO_C的低電平期間SIO_D要先置零才能有上升沿
感覺SIO_C有點像是使能訊號,高電平有效,所以SIO_D只能在低電平的時候完成資料的切換,否則會誤認為是“開始”或者是“結束”訊號;
但同時SIO_C又像是時鐘訊號,掌控著資料傳輸的時序
兩條線傳輸,把“開始”和“結束”分別放在下上邊沿,把資料放在電平,既體現了“開始”“結束”的瞬時性,又保證了資料的建立時間,保證了資料的可靠,不禁感嘆一波:妙極!
SIO_D:
注意SIO_D是一條雙向線,這就意味著對應的埠是inout型別,這就需要特別注意三態門的控制,要在讀狀態的第二段時序的讀資料的時候把三態門關上,成高阻態才能讀到資料
1、寫時序
ID Address:是指裝置的地址 8‘h42 (OV7670)
2、讀時序
讀時序分兩段,注意每段前後的“開始”和“結束”是下上邊沿,而不是高低電平!
第一段 ID Address = 0x42 (OV7670)
第二段 ID Address = 0x43 (OV7670)
特別注意要在Read Data這裡把SIO_D置成高阻態
二、module ov7670_config
module ov7670_config
(
input clk, //25MHz
input rst_n, //低電平復位
input config_en,
input[7:0] sub_addr,
input
//SCCB
output sio_c,
inout sio_d
)