fpga驱动rgb液晶屏_用FPGA设计LCD 转 VGA 其实vga和lcd驱动 非常类似
這個(gè)東西其實(shí)是在上一個(gè)冬天就做完了,而且似乎已經(jīng)產(chǎn)業(yè)化了,當(dāng)時(shí)是為一位朋友做的,這個(gè)朋友再賣給產(chǎn)業(yè)化的人,就像流于俗套的故事一樣,這個(gè)朋友拿到了錢(qián),不過(guò)不像項(xiàng)目開(kāi)始時(shí)說(shuō)的那樣與我有關(guān)。想想多年前一起吃喝拉撒的場(chǎng)景,嘆了一口氣抹去那些記憶,也只能算了。現(xiàn)在把這個(gè)設(shè)計(jì)寫(xiě)在博文博文中,一方面可以回憶回憶當(dāng)時(shí)的設(shè)計(jì)思路,也希望可以為其他設(shè)計(jì)FPGA的兄弟姐妹們提供一點(diǎn)參考。
當(dāng)時(shí)的寫(xiě)的ppt文檔可在下列地址下載:
這個(gè)板子其實(shí)就是在爛大街的S3C2410的板子上加一片F(xiàn)PGA EP2C5,SDRAM和ADV7123。由于2410有LCD控制器,在LCD接口的外面加一片Video DAC,這個(gè)板子上的ADV7123就可以輸出VGA信號(hào),就可以接顯示器了。但是當(dāng)輸出的分辨率過(guò)高,比如1024x768甚至更高的時(shí)候,LCD接口要求的帶寬過(guò)高,這樣就會(huì)影響2410上面的應(yīng)用的運(yùn)行速度。
因此就產(chǎn)生了這個(gè)設(shè)計(jì),這個(gè)設(shè)計(jì)的目的就是讓2410輸出高分辨率低幀率的信號(hào),比如1024x768@20HZ,通過(guò)FPGA把輸出的圖像保存在其控制的SDRAM中,然后FPGA中的圖像產(chǎn)生部分再把這些數(shù)據(jù)讀出來(lái),按照1024x768@60HZ的速度輸出到ADV7123上。
這個(gè)設(shè)計(jì)對(duì)于心電監(jiān)護(hù)這樣的設(shè)備已經(jīng)夠用了,因?yàn)樾碾娦盘?hào)的更新低于20HZ,其實(shí)它適用于所有刷新率要求不高但是要接VGA顯示器的場(chǎng)合。
系統(tǒng)的框架大概就是上面這個(gè)樣子的了,LCD Receiver是從2410LCD接口接收數(shù)據(jù)的了,其實(shí)就是檢測(cè)到HSYNC,VSYNC,VDEN后通過(guò)CLK將數(shù)據(jù)采集進(jìn)來(lái),然后存儲(chǔ)到FIFO中,這部分的邏輯需要根據(jù)2410的LCD時(shí)序進(jìn)行設(shè)計(jì)。使用FIFO有兩個(gè)用處,一方面是匹配讀寫(xiě)的速度,一方面是轉(zhuǎn)換數(shù)據(jù)寬度,因?yàn)橹皇怯?410 LCD輸出數(shù)據(jù)中的8bit數(shù)據(jù),即RGB332, 而SDRAM和RW Control 模塊都是按照16bit進(jìn)行操作的,因此可以通過(guò)一個(gè)8bit輸入16bit輸出的FIFO進(jìn)行轉(zhuǎn)換。
RW Control模塊顧名思義,主要是進(jìn)行SDRAM讀寫(xiě)控制了,當(dāng)收到dcfifo2的Almost Full的時(shí)候讀取dcfifo2將其寫(xiě)入SRAM,當(dāng)收到dcfifo1的Almost Empty的時(shí)候,讀取SDRAM中的數(shù)據(jù)將其寫(xiě)入dcfifo1供VGA模塊轉(zhuǎn)換。dcfifo1是一個(gè)16bit輸入8bit輸出的FIFO,其功能和dcfifo2 正好相反。
其中的PLL、FIFO模塊用的就是Altera Quartus中的現(xiàn)成模塊,SDRAM用的也是altera的開(kāi)源模塊,就是ref-sdr-sdram-verilog.zip,在google搜索有一大堆,只要把其中定義總線寬度的地方改一改就差不多可以用了,其它的關(guān)于刷新時(shí)間之類的SDRAM的初始化參數(shù)則是在RW Control模塊啟動(dòng)的時(shí)候發(fā)出命令,再讓SDRAM控制模塊傳給SDRAM芯片的。
VGA產(chǎn)生模塊從dcfifo1讀取圖像數(shù)據(jù),產(chǎn)生相應(yīng)的信號(hào)控制Video DAC。主要是要搞清楚前肩,后肩的概率,其實(shí)就是每一行(或一幀)后面和前面的間隙時(shí)間。輸出的時(shí)鐘頻率盡量符合標(biāo)準(zhǔn)的規(guī)范。
就像所有的開(kāi)發(fā)一樣,設(shè)計(jì)只是其中很小的一部分,最大的一部分是調(diào)試。Altera SignalTrap相當(dāng)于是一個(gè)免費(fèi)的邏輯分析儀,雖然其存儲(chǔ)深度和芯片內(nèi)部的存儲(chǔ)器大小相關(guān),但是還是相當(dāng)方便的。如何使用可以參考altera的application note。
參考資料
http://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-2613737244.20.P9tQJG&id=43634840829
http://www.cnblogs.com/ccjt/p/4376525.html
總結(jié)
以上是生活随笔為你收集整理的fpga驱动rgb液晶屏_用FPGA设计LCD 转 VGA 其实vga和lcd驱动 非常类似的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 如何从bitbucket到github的
- 下一篇: rgw bucket reshard流程