portant;">好了,進(jìn)入正是,說(shuō)說(shuō)lvds調(diào)試。如下圖,采用軟硬結(jié)合板設(shè)計(jì),左側(cè)為FPGA主板部分,右側(cè)主要是一些接口,包括Camlink、VGA,中間采用柔性電路板相連。
portant;">
portant;">首先,按照連載3的程序調(diào)試lvds接口,使用bank5的差分管腳輸出lvds信號(hào),結(jié)果采集卡采不到圖,這下壞了,開(kāi)始懷疑引腳分配不正確,一番檢查,問(wèn)題不在這;
portant;">
portant;">接著覺(jué)得走線可能不對(duì),看了看PCB,5對(duì)差分信號(hào),對(duì)內(nèi)線長(zhǎng)差控制在0.254mm內(nèi),對(duì)間線長(zhǎng)差控制在2mm內(nèi),走線沒(méi)有問(wèn)題;
portant;">再接下來(lái),懷疑Camlink位分配不正確,Camlink在base模式下包含11對(duì)差分線(4對(duì)數(shù)據(jù),1對(duì)時(shí)鐘,2對(duì)串口,4對(duì)相機(jī)控制),Camlink協(xié)議中有詳細(xì)的位分配表,
portant;">
portant;">下表說(shuō)明了在base模式下,各種圖像模式(24bit RGB、8bit、10bit、14bit、16bit灰度等)下位分配情況。
portant;">
portant;">然后查看287手冊(cè),就可得到位分配信息。
portant;">
portant;">又是一番檢查,位分配完全正確。
portant;"> datain3 <= {spare, 1'b0, 1'b0, 1'b0, 1'b0, tx_data[7:7], tx_data[6:6]};
portant;"> datain2 <= {dval , fval, lval, 1'b0, 1'b0, 1'b0, 1'b0};
portant;"> datain1 <= {1'b0 , 1'b0, tx_data[13:9]};
portant;"> datain0 <= {tx_data[8:8] , tx_data[5:0]};
portant;">經(jīng)過(guò)同學(xué)的點(diǎn)撥,發(fā)現(xiàn)了問(wèn)題,原來(lái)在于時(shí)鐘的串行化問(wèn)題,我使用的是lvds_tx核的tx_outclock作為差分時(shí)鐘,而287的手冊(cè)上7倍時(shí)鐘串化對(duì)應(yīng)的時(shí)鐘信號(hào)分別為1,1,0,0,0,1,1,問(wèn)題已經(jīng)比較明白了,clk差分通道數(shù)據(jù)如下,使用5個(gè)channels,如下圖所示。
portant;">cl_clk <= {1'b1,1'b1,1'b0,1'b0,1'b0,1'b1,1'b1};
portant;">
portant;">重新編譯,下載,圖像輸出正常,lvds調(diào)試完成??!
portant;">由于lvds_tx核使用了一個(gè)ip核,邏輯中使用一個(gè),qsys中使用一個(gè),這樣總共4個(gè)ip核就用了3個(gè),所以相關(guān)使用外用pll,結(jié)果出來(lái)的數(shù)據(jù)又不對(duì)了,至今沒(méi)有解決這個(gè)問(wèn)題,后面有進(jìn)展了再行總結(jié)吧。