[筆記]8組LVDS_TX和LVDS_RX的調試心得


2014-04-02  13:55:22周三

DownScaling記錄:

RX:FHD120,UHD30,UHD60。每組LVDS的輸出是480X1080X4, 960X2160X4, 480X2160X8

TX:FHD120,FHD30,FHD60。每組LVDS的輸出是480X1080X2, 1920X1080X1, 960X1080X2

當RX-FHD120進行無FRC處理得到TX-FHD60時,輸出的是960X540X2,叫540P半屏是一幀。

 

FPGA的LVDS OUT接6509屏時, 要注意輸出線上要有12V的電壓,TCON打開后才能顯示。

FPGA板子C與E的8個LED燈位置不一致。

當不知道R,B的組合是什么顏色時,可以借用PC上的顏色管理器查看,GOOD!

 

Altera Arria5板子的DownScaling test,特別注意Xilinx和Altera的LVDS格式對應不同,因此在提取和合並LVDS的數據時,要注意DE/V/H的位置。          

             

Altera中LVDS格式排列:28位和35位一致。

RX4

34

33

32

31

30

29

28

RX3

27

26

25

24

23

22

21

RX2

20

19

18

17

16

15

14

RX1

13

12

11

10

9

8

7

RX0

6

5

4

3

2

1

0

Xilinx中LVDS格式排列: 35位

RX4

4

9

14

19

24

29

34

RX3

3

8

13

18

23

28

33

RX2

2

7

12

17

22

27

32

RX1

1

6

11

16

21

26

31

RX0

0

5

10

15

20

25

30

Xilinx中LVDS格式排列: 28位

RX3

3

7

11

14

18

22

27

RX2

2

6

10

13

17

21

26

RX1

1

5

9

12

16

20

25

RX0

0

4

8

14

15

19

24

 

來源:F:\2014\2014_task\Xilinx\Spartan6\downscaling_rx4_tx2_2\doc

和F:\2014\2014_task\Xilinx\Spartan6\downscaling_rx4_tx2_3

這兩個工程都已經測試通過了,實現的功能是

輸入信號源可能是CMI屏中兩種信號(UHD30和FHD120)和CSOT屏中一種信號(UHD60),要做到可以自動識別這三種信號且做相應的DownScaling功能。

 一、CMI屏的特點是

80板子上--需要外接轉接線板子。。

1、4K2K@30HZ  做DownScaling到FHD@30HZ

4K2K@30HZ相關參數是4 組LVDS INPUT 960*2160

FHD@30HZ相關參數是1組LVDS INPUT 1920*1080

行上像素少一半,場上行少一半。。。

1、  FHD@120HZ 直接做LVDS Bypass兩路到工廠的儀器K-2715上,該儀器能識別到且可以FRC到FHD@60HZ的HDMI輸出。

FHD@120HZ相關參數是4組LVDS INPUT  480*1080

2、  FHD@120HZ做DownScaling到FHD@60HZ,而沒有做FRC功能。

場上行少一半,幀上場少一半。。。體現在1080P到540P,半屏是一幀。。

二、CSOT屏的特點是

81板子上Source (input) 2580進入CSOT的工廠模式。。。

818板子出來的時鍾只有72MHZ左右,達不到74.25MHZ。。。主要是H_Total只有533。時鍾是如何計算了。。。。

4K2K@60HZ  做DownScaling到FHD@60HZ

UHD60---4K2K@60的相關參數是8組LVDS INPUT 480*2160。。。

//CSOT V_TOTAL  此時HDMI子板不支持,分析原因是單組LVDS的H_TOTAL只有533,而一般FHD60要達到550.

parameter H_SYNC=11,H_FRONT=22,H_BACK=20,H_VISIBLE=480;// 4K2K@60Hz---8 lvds groups

parameter V_SYNC=10, V_FRONT=8,V_BACK=72,V_VISIBLE=2160;//2160--2250

1、4K2K@60HZ有8路LVDS,LVDS1234和LVDS5678

LVDS1234的數據格式是1-2-3-4,5-6-7-8,9-10-11-12,。。。

LVDS5678的數據格式是1990+     1-2-3-4,5-6-7-8,9-10-11-12,。。。

2、LVDS的格式中沒有V,H的參數,V,H始終為低電平。。。。

調試方案一:

FPGA板子信號出來直接接PANEL,不經過LVDS轉HDMI子板。因為PANEL對行消隱區沒那么嚴格(一般變動范圍比較大)。確實如我所想的。因為我當初在FPGA內部觀察信號都正確,可是HDMI子板出來的信號不對,就覺得是行消隱區為奇數的影響。

后面驗證外部接信號源,出現顏色不對的現象,RX的信號源是10bit的JEATA格式,而PANEL端是8bit的VESA格式。因此需要進行LVDS格式轉換。。。

由於8bit的VESA是采用LVDS 4組格式,因此我仍然用LVDS 5組格式,最高兩位會被丟掉。分析結果是正確的。。終於將這路打通了,不容易啊!!!!其實也可以采用LVDS 5組進行發送,只要5組中的4組是嚴格按照LVDS 4組的信號格式發送的就好。

問題解決:

    由於8組LVDS外部信號是通過兩個獨立的芯片進來的,因此數據會不同步,1234與5678(1990+1234)的數據需要同步處理,采用DE來判斷。。。當5678組LVDS的數據是(1990+1,2,3,4)時,需要進行Conv處理,

LVDS的TX只能位於BANK0或者BANK2,而LVDS的RX可以位於任何BANK。

2012-12-13  周四 晴

今天開始研究LVDS的TX和RX均采用外部PLL的情況。

2012-10-23  周二 晴

今天用ArriaV開發板調試1080P的PANEL,需要用到2組4通道7位的LVDS,RGB分別是8位。由於原理圖的原理有很多組線的信號需要取反。有時我自己也搞暈了。對於LVDS_TX的測試一直都沒有輸出,我也覺得無計可施,后來Master說你可以將DE所在通道賦給其他通道,即所有通道都選用DE的通道,這樣至少可以先保證DE、HD、VD這些關鍵信號是正確的。我覺得很有道理,因此也嘗試了下結果就真的能輸出了,只是屏幕顯示的東西可能不是如你所願。現在要分析原因了。

后面才發現我用的是8組5通道7位的LVDS,RGB分別是10位。這樣要轉化成組4通道7位的LVDS,RGB分別是8位時,需要注意DATA[34:0]與DATA[27:0]間的對應關系。即LVDS在4通道和5通道的映射是不同的。

 

 

鍵盤上Alt+-->可以返回上一層。(在PDF文件中方便用)

 

在signal_gen中當R=G=3FFB=000時,對應的35位數據是6F7BD8C3D

1、工程名:ArriaV_lvds_tx_1g,在lvds_tx_5ch_1中接收到的5ch_7bit對應如下:14,1d,0f,1b,1d,14,19。時序仿真波形如下所示:由於《arriav_handbook.pdf》第157/426頁可知差分信號在時鍾的上升沿開始輸出,而在PANNELLVDS是從第三個小時鍾才開始輸出。因此,在Ronnie的建議下,我采用了他的方,即將輸出時鍾也當成一個通道來傳輸,只是給定的數據是(4:3)7'b1100011或者(3:4)7'b1100001,此時就不需要tx_outclock信號。這個想法非常好,我也想不到的。學習了。

 

 2、工程名:ArriaV_lvds_tx2_1g,在lvds_tx_5ch_2中采用洪鴻榕的方案,得到的時序仿真波形如下所示:時序仿真結果正確!! 

 32LVDS_TX時序仿真情況:綜合后占用一個PLL 

44LVDS_TX時序仿真情況及綜合情況:

38LVDS_TX出現如下錯誤信息:

出現下圖錯誤的原因是我將發送模塊的時鍾端口直接與FPGA上的27MHZ引腳鎖定,如果不鎖定該引腳就可以編譯通過,解決這個問題的方案還在思考中。 

在這步進行了好久,由於一直找不到原因。因此,我改變了想法。從8LVDS_RX8ALT_FIFO再送給8組的LVDS_TX的工程。在編寫完整個工程后,我對它進行功能仿真可以出結果,進行時序仿真時發現DPA信號鎖不住,結果不對。

這步出錯的主要原因是因為我在寫激勵文件時,都是發送同一個35位數據,應該使發送的35位數據有變化,這樣DPA信號才可以鎖住。其實頂層模塊是沒錯的。難怪自己找不到原因。不過不明白要發送不同數據的我,也是對文檔研究的不夠導致的,要吸取這個教訓。

我發現它跟我直接將一組的ArriaV_lvds_rx2tx復用8次所有進行的動作一樣。因此,我又卡在這邊了。后來,我就想這么說8組的LVDS_TX可以編譯通過了,這才反應過來還開心了一會兒。后面我就針對這個8LVDS_TX編寫了個激勵文件,這個文件結合的8signal_gen來實現的。在功能仿真和時序仿真上,我都遇到一個很奇怪的問題,是關於庫的編譯順序,還是Ronnie幫我解決的。我覺得他很有想法,也很有調試手段,他能沉得住。發現signal_gen編譯時,一定要將work庫放在第一個,否則會提示找不到它的端口。嗯,后來洪鴻榕說將signal_gen重新命名試下,我也試了,不過我還發現我程序中有個端口是[4:0],而我寫成[34:0],這是復制而欠缺思考的下場。在百般克服之下,我順利地測試了8LVDS_TX程序。

還有我晚上跟他們(rain and ronnie)調試了4K2K PANNEL,很厲害,居然將變化的參數穩住了。現在就看明天別人的答復。如果55寸的PANNEL能點亮,我覺得大家都會很開心的。 

Dear KEVIN:

          針對下方的第一個問題:在編寫了8組的LVDS_RX2TX程序,編譯可以通過且功能仿真可以出來,但時序仿真中DPA鎖不住即時序仿真不通過。

這個問題出錯的原因是我在寫頂層模塊的激勵時,發現差分信號的輸入必須是變化的,不能一直都是同一個35位數據,否則DPA會鎖不住。

  針對下方的第一個問題:單獨的8組LVDS_TX程序在編譯時卻出現PLL方面的錯誤。

這個問題出錯的原因是8組LVDS_TX的PLL輸入時鍾不能直接鎖定到時鍾引腳上,必須通過中間信號才可以。

     目前,我想實現8組LVDS_TX的PLL輸入時鍾直接鎖定到時鍾引腳上,應該如何做才能實現?

     能否請您再幫忙確認下LVDS外部來的數據差分對能否對換。按照我們的理解是LVDS的差分對電氣性能一樣,因此可以進行對調。時鍾差分對不能對換是可以理解的。

     還有一個問題是LVDS_RX在功能仿真上是將7位拆分成4-3,而在時序仿真上卻是拆分成3-4,導致需要調整的位數不一致,想請您幫忙確認下哪種才是對的,為什么會出現這種現象?

期待您的回復,謝謝!

PS:附件是當LVDS_TX的PLL輸入時鍾鎖定在時鍾引腳上時,超過4組就會報錯的工程。如果LVDS_TX的PLL輸入時鍾不鎖定在時鍾引腳上時,可以滿足8組的需求。但我們需要的是鎖定在時鍾引腳上且達到8組的情況,能否幫忙解答。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM