GMSL1方案:? ? ? ? ? ? ? ?3Gbps
NOTE:
攝像頭模組采用森云SG2-AR0231C-0202-GMSL
NOTE:
攝像頭模組采用森云SG2-AR0233C-5200-GMSL2
1.2 camera模組信息:
SG2-AR0231C-0202-GMSL(GMSL1):
模組框圖:
默認(rèn)地址信息(8bit表示,7bit表示需要自己轉(zhuǎn)換):?
MAX96705 : 0x80? ? ? ? ?轉(zhuǎn)成7bit對(duì)應(yīng)為0x40
AP0202 : 0xBA
AR0231 : 0X20
關(guān)鍵參數(shù):
HDR支持
1920*1080/22fps
YUV422@8bit輸出
SG2-AR0233C-5200-GMSL2(GMSL2):
模組框圖:
默認(rèn)地址信息(8bit表示,7bit表示需要自己轉(zhuǎn)換):? ? ?
MAX9295A : 0x80? ? ? ? ?轉(zhuǎn)成7bit對(duì)應(yīng)為0x40
GW5200 : 0xDA
AR0233 : 0X20
關(guān)鍵參數(shù):
HDR支持
LFM支持? ? ? ? ? ? ? ? ? ? ? ? ? ? ---- LED閃爍抑制
LED在道路上的普遍使用,卻帶來(lái)“LED閃爍”現(xiàn)象。“LED閃爍”是由LED驅(qū)動(dòng)方式而產(chǎn)生的現(xiàn)象,LED燈以交流方式驅(qū)動(dòng),驅(qū)動(dòng)頻率一般在90Hz以上,即最慢脈沖周期為11毫秒左右,LED在11毫秒周期內(nèi)實(shí)現(xiàn)一次亮滅,為節(jié)能及延長(zhǎng)使用壽命,占空比通常不超過(guò)50%。
如果相機(jī)曝光時(shí)間較短(例如3毫秒),則有可能曝光時(shí)間正好對(duì)上LED被關(guān)滅期,這時(shí)候圖像傳感器抓到的就是LED滅掉的圖像,如果是LED陣列,在這種情況下拍到的圖像就是一部分亮,一部分暗,這就是“LED閃爍”現(xiàn)象
1920*1080/30fps
YUV422@8bit輸出
以GMSL1為例說(shuō)明
max96712:
首次上電通過(guò)CFG0上拉情況確定,具體詳情如下:
我們電路配置為0xD6,bit0為方向位,所以右移一位后7bit地址為0x6B
DEV_ADDR(0x00)為地址寄存器,可通過(guò)0x6B寫入新的地址,如寫入0x90,實(shí)際地址右移掉方向位bit0變?yōu)?x48,后續(xù)通過(guò)該地址操作max96712
default addr:0x80,右移一位后就是0x40,在i2c配置分別依次打開(kāi)lane通道的時(shí)候會(huì)分別去寫入新的地址到reg(0x00)上,LaneA、LaneB、LaneC、LaneD分別設(shè)置為0x41,0X42,0X43,0X44.
如下:
regArray[0] = 0x00;sendBuf[0] = 0x80 + 2 * (i + 1);i2c_ptr->I2cWrite(0x40, regArray, 1, sendBuf, 1); ? ?
note : max96705 有個(gè)i2c address translatation功能
regArray[0] = 0x09; ? ? ? ? sendBuf[0] = 0xba + 2 * (i + 1);i2c_ptr->I2cWrite(0x41 + i, regArray, 1, sendBuf, 1);
regArray[0] = 0x0a;sendBuf[0] = 0xba;i2c_ptr->I2cWrite(0x41 + i, regArray, 1, sendBuf, 1);
如上例子i=0時(shí)候,就是將0xba+2(0xbc,對(duì)應(yīng)的i2c address 是0x5e)轉(zhuǎn)換為0xba,也就是下面說(shuō)道的ap0202默認(rèn)地址。i分別從0到3就會(huì)分別把0x5e,0x5f,0x60,0x60轉(zhuǎn)換成0xba
AP0202:
我們的模組默認(rèn)是連接到VDDIO_H,所以是0xBA,和上面max96705的i2c address translation功能結(jié)合就可以達(dá)到配置ap0202的目的
max9295A:
default addr : 0x80,右移一位后為0x40,再依次打開(kāi)96712上的laneA-laneD通道時(shí)候分別將相應(yīng)的MAX9295A改為0x41-0x44,代碼如下:
linux下i2c-tools工具使用:
linux下的開(kāi)源代碼i2c-tools工具包,提供了多個(gè)i2c工具,可以基于該工具包掃描地址(i2c-detect),測(cè)試i2c寄存器讀取寫入等
GMSL1 pipeline圖:
說(shuō)明:
GMSL1模式下,每個(gè)串行器不能包含多個(gè)pipe,且進(jìn)入max96712后也不能隨意搭配內(nèi)部pipe,固定連接如上圖紅色部分:
GMSL1 A -->PIPE 0
GMSL1 B -->PIPE1
GMSL1 C -->PIPE 2
GMSL1 D -->PIPE3
GMSL2 pipeline圖:
說(shuō)明:
串行器可以配置為pipe X/pipe Y/pipe Z/pipe U 4個(gè)輸出pipe,一般情況下配置為一個(gè)即可(我們配置為pipe Z),但是如果需要輸出RAW原始數(shù)據(jù)或者HDR數(shù)據(jù)可以配置超過(guò)一個(gè)pipe,如上圖GMSL2 A/GMSL2 D都配置了兩個(gè)輸出pipe
96712解串器可以為pipe0-pipe7選擇輸入的PORTA-PORTD中的pipex/y/z/u,詳情可以參見(jiàn)寄存器0xF0,0xF1,0xF2,0xF3
pipe、map_src、map_dst、mipi-csi2相關(guān)寄存器和通路選擇配置、VC虛擬通道配置等請(qǐng)參加0X90A開(kāi)始的相關(guān)寄存器,如0x90a/0x90b/0x92d/0x90d/0x90e等等
我們?yōu)?6712的4個(gè)通道數(shù)據(jù)分別分配了VC為0/1/2/3等4個(gè)虛擬通道號(hào),占用兩個(gè)bit位
默認(rèn)方案:不使用外部GPIO來(lái)觸發(fā)FSYNC,使用內(nèi)部FSYNC信號(hào)
配置如下:
reg : 0x4a0? ? ? ? ? val : 0x02
PWM外部GPIO輸入96712觸發(fā)FSYNC
配置如下:
reg : 0x4a0? ? ? ? ?val : 0x08
reg : 0x4af? ? ? ? ? val : 0x9f
note:
該模式下需要soc觸發(fā)PWM并輸出到max96712的FSYNC同步管腳,可以實(shí)現(xiàn)控制多個(gè)camera的圖像觸發(fā)時(shí)間、同步、幀率,如下圖分別提供了20Hz/25Hz測(cè)試情況
20Hz:? ? 應(yīng)用層10幀圖片獲取間隔500ms
25Hz:? 應(yīng)用層10幀圖片獲取間隔時(shí)間400ms
YUV簡(jiǎn)述
分為三個(gè)分量,“Y”表示明亮度(Luminance或Luma),也就是灰度值;而“U”和“V” 表示的則是色度(Chrominance或Chroma),作用是描述影像色彩及飽和度,用于指定像素的顏色。
YUV分為planar和packed兩種格式,planar格式是先存儲(chǔ)所有像素的Y,再存儲(chǔ)UV,分為2-planar/3-planar。packed格式每個(gè)像素Y,U,V連續(xù)交替存儲(chǔ)
YCbCr中的Cb標(biāo)識(shí)U,Cr標(biāo)識(shí)V
YUV422 8bit:? ? ? ? ?重點(diǎn)說(shuō)明,其他格式自行學(xué)習(xí)