FPGA從垃圾箱救出範圍

我總是在了解我的實驗室的質量,這將尊重我的嚴格預算。最近,我發現自己用我所做的每一個項目都會推動赫茲障礙,因此絕望地期望高帶寬範圍。不幸的是,最近只有70 MHz到100 MHz變得真正實惠,而在500 MHz的新的四通道示波器到1 GHz範圍內仍然需要付出的財富。我唯一的選擇是以舊的高帶寬範圍的形式找到絕對奇蹟。

當我發現這個Dumpster注定的HP 54542C時,它似乎讓我下來的電子產品正在微笑著我。它似乎是雄厚的良好形狀,並且是它的一天頂級犬。但有些東西必須被打破?果然,屏幕顯然有缺陷和難以辨認。想知道我如何修復它?四個字母:FPGA。

問題
關於這個範圍的一些淺談揭示了一些有趣的歷史。這是惠普的第一個高端範圍與LCD,也是Infiniium系列範圍的前兆,這些範圍將繼續指導市場。液化歌唱局肯定會感覺像是發生了事後。該範圍具有另外類似的變體,具有CRT顯示器,並且我獲取的版本簡單地消除了CRT消化道和由HP安裝的彩色LCD。我希望液晶液晶顯示出錯,而不是ASIC的驅動它,這似乎是一個很好的賭注,因為在某些情況下,在某些情況下會把屏幕帶回生命!

我開始調查根本原因,並通過拍攝液晶來開始。我發現一些液體已經灑了一下;沒有什麼腐蝕,但清潔和重新安裝沒有任何差異。與垃圾箱重聚的範圍不是一個選擇,因為除了液晶顯示屏,範圍都感覺到絕對寶庫。儘管現在LCD的司機板現在完全沒用,但它來自行業尚未在電線連接器上移動到子模塊銷瀝青的時間。這暗示我可以方便地在傳統的26個引腳帶狀電視上焊接焊接所有所需的信號,然後開始逆向工程的過程中使用的協議。

逆向工程LCD協議

帶狀有線電視焊接在現有連接器頂部
該過程的第一步是識別連接器上的信號。我正在尋找驅動任何LCD所需的最通用信號集。這應該包括一些嚴格的周期性信號,這是一對偶有的隨機信號,以及典型的力量和地面。週期性信號很可能是像素時鐘和同步信號,它會標記新行和幀的開始;另一方面,隨機的信號將是要顯示的實際像素數據。判斷其年齡,預計會有一個相當簡單的協議。通過這種直覺引導,我開始探測連接器,很快就足夠了,我有25個信號弄清楚。

我只發現了兩個完美的周期性信號:一個,一個相對較低的31.25 kHz信號,在可疑60 Hz處門控,另一個25 MHz平方波。前者必須是集成的同步信號。 60Hz是一個死亡的贈品,與標稱幀速率相對應。然後,31.25 kHz底層信號應對應於幀內的水平線速率。最後,25 MHz信號必須是整個系統的時鐘,實際上它是像素時鐘。

接下來,我不得不理解顯然是像素數據的隨機性信號。首先,對某種並行RGB配置清楚地暗示了25針連接器的需求。總共發現九個這樣的信號,其完全分為三個並包裹起來,LCD使用每像素的九個比特和每種顏色通道R,G和B的三位。

示例:VGA露台計劃
弄清楚這個計劃和丟銷是挑戰的一部分。可能更重要的是弄明出了使用中信號的定時。幾乎總是,原始顯示信號具有所謂的“Porches”。這些可以被認為是無法寫入數據的每個幀內的區域。這些起源於CRT的日子,其中電子的物理束從一條線的末端掃回另一個的末端,或者甚至從屏幕的底部到頂部。雖然在現代電子屏幕中不那麼明顯,但這些區域仍然存在,因為LCD控制器需要時間處理並播放傳入數據。

確定時間

為了提取試圖將像素數據與同步信號相關聯的定時。我正在尋找一個像素始終如一的地區。

水平時間
在盯著數據後,它清除了LCD在集成同步信號的水平和垂直部分上使用簡單的單個露台方案。這很容易識別,因為像素設置為在此期間全高或全部低。一旦我確定了這些區域,我使用光標來測量它們的持續時間並將該時間轉換為等效的像素數。

這是一個重要信息,保證VGA監測率穩定和適當的繁殖。該計劃是將這些值作為常量送入Verilog,並使用計數器“跳閘”相應的邏輯以實現所需的波形。

垂直定時
最後,必須識別LCD的分辨率,因為我必須以相同的設置運行替換監視器。這是通過簡單地測量各種活動週期並將它們與其他信號的其他信號進行比較來完成的,這是通過的,例如具有周期40 ns的像素時鐘。水平有效時間確定為約25.7左右,從而構成總共642.5像素,類似地,垂直活動週期為15.42ms,水平時期為30,對應於481線。顯然這是傳統的640 x 480顯示器,其恢復為60 Hz。

找到一個能夠的替代品

8英寸救世主
因此,現有的顯示[原來是]最終相當常見,更換似乎完全是合理的。不幸的是,大小有點奇怪;很容易找到七英寸屏幕,但八個?即使我找不到網上替代品的任何相當定價的下降,剛剛發生的大小與汽車在汽車上的眾多現代化後使用的大小相同。這些是良好的低成本“Eyoyo”頂級質量屏幕(50英鎊),並完全接受所有從所有模擬到VGA甚至HDMI開發的視頻輸入。他們還支持1024 * 768的高得多分辨率。我驚訝這個屏幕在覆盆子PI社區內沒有大規模流行。

最後,一切似乎都在一起點擊。我不僅可以用這個VGA監視器取代液晶顯示器,它將完美地適應範圍,因為範圍甚至有足夠的房間給了CRT!

那麼完全是,如何將LCD轉換為VGA轉換?當然有一個fpga!

信號轉換

此時,站在ME和功能500MHz範圍之間的唯一事情成功將先前提到的LCD信號轉換為VGA。很清楚,這類相對快速的處理只能在FPGA上完成,但是哪一個?我的目標是,在某些時候,將FPGA留在屏幕範圍內,所以我需要一些小而便宜的東西。幸運的是,eBay似乎擁有這款舊的Altera Cyclone II基礎的開發板,因為心靈令人難以置信的10英鎊!這些是強行FPGA的,持有大約4k邏輯元素並為像這樣的小規模項目最佳。

使用這些顯示轉換的常用方式使用幀緩衝區。這個想法是緩衝整個框架,進行轉換並在另一端吐出它。可悲的是,在FPGA上呼籲一個受眾的大小外部RAM。這些FPGA闆對於沒有任何外部RAM是臭名昭著的,因此該計劃是不可能的。經過一點思考,我認為液晶顯示器和VGA畢竟並不是那種不相似的。如果我可以在按線條的基礎上從一個轉換到另一個,並且根本規避需要幀緩衝區的需要?

比較:VGA VS LCD。該圖適用於水平和垂直段
總之:

液晶有:

像素時鐘

組合同步信號

僅限前露台

vga有:

沒有像素時鐘

單獨的同步信號

前後露台具有同步期

集成的同步信號
詳細介紹VGA如何工作超出本文的範圍,但我稍後會解決。目前,如果我們只是檢查定時草圖,我們看到兩個信號之間的唯一區別是Porches的出現和位置的數量和有效數據的放置。

素描使轉換看起來很容易,但如果兩個幀完全同步,則只有有效。要告訴FPGA,開始在VGA上生成相應的LCD幀,我們應該首先識別來自LCD連接器的新幀的開始,以便我們可以同步到它。這可能是該過程的最棘手的部分,因為僅檢查來自LCD的集成同步信號的邊緣是不夠的。

相反,我們應該測量兩個邊緣之間的時間,並標記新幀的發生。其餘的是一組相對簡單的邏輯門,其產生上述時序圖。最後,隨著LCD沒有背面庭院或同步脈衝,輸入的RGB數據應該在時間使用小型FIFO進行平衡,以便它完美地對準VGA監視器期望它。一旦將上述等同於Verilog完成,我就會進行處理硬件。

硬件設置

硬件設置
硬件配置非常簡單。惠普並不完全利用液化股權局限度的最大潛力。檢查e的單個位ACH頻道揭示了許多冗餘:各種比特實際上總是相同的,表明整個九位調色板的利用非常淺。由於HP大多是從CRT版本的範圍內重複使用固件,這並不令人震驚。所有這些都暗示我只需在最終形像中掛鉤每個顏色頻道的MSB,在最終圖像中沒有損失。這讓我在FPGA上保存了更加珍貴的記憶。

最重要的問題是LCD使用5 V TTL信號。 FPGA可以以最佳的3.3 V信號接受,因此必須執行級別轉換。我選擇利用輸入夾緊二極管的一些74HC系列邏輯緩衝區來執行此轉換。儘管如此,這往往會摧毀/下降時間。例如,74HC4050甚至具有與模具中的二極管串聯的多晶矽電阻,使得對外部串聯電阻的需要。我播放它安全,並添加了1kΩ串聯電阻,以輸入這些緩衝區,並將輸出送入FPGA。 FPGA的HSYNC和VSYNC輸出的輸出直接連接到顯示器,同時RGB線路通過330Ω電阻連接。

成功

成功!
馴服25 MHz像素時鐘在麵包板上表現並將FPGA連接到新外部

Monitor的VGA端口,範圍被帶回其正式榮耀!雖然一切都完美地工作,但這個設置很容易發生。我現在需要做的就是製作一個PCB並授予VGA監視範圍內的永久居住。

所以你問的是什麼?嗯,目前唯一的保存屏幕截圖的方法是通過日期的軟盤驅動器。但是因為我們現在擁有液晶數據通過FPGA,為什麼不將其寫入SD卡?