1. 程式人生 > 其它 >FPGA學習日誌——攝像頭暫存器配置

FPGA學習日誌——攝像頭暫存器配置

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_C有點像是使能訊號,高電平有效,所以SIO_D只能在低電平的時候完成資料的切換,否則會誤認為是“開始”或者是“結束”訊號;
但同時SIO_C又像是時鐘訊號,掌控著資料傳輸的時序
兩條線傳輸,把“開始”和“結束”分別放在下上邊沿,把資料放在電平,既體現了“開始”“結束”的瞬時性,又保證了資料的建立時間,保證了資料的可靠,不禁感嘆一波:妙極!
SIO_D:
注意SIO_D是一條雙向線,這就意味著對應的埠是inout型別,這就需要特別注意三態門的控制,要在讀狀態的第二段時序的讀資料的時候把三態門關上,成高阻態才能讀到資料

1、寫時序

在這裡插入圖片描述ID Address:是指裝置的地址 8‘h42 (OV7670)

Sub-address:是指攝像頭內部暫存器地址

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 )