Day: August 15, 2022

FPGAはDumpsterFPGAはDumpster

0 Comment

からスコープを救助していますこの期間中のすべての高さまたはすべての低い。これらの地域を特定したら、私はカーソルを使用してそれらの期間を測定し、その時間を同等のピクセル数に翻訳しました。 これは、VGAモニタで安定した適切な再生を保証するであろう重要な情報であった。計画はこれらの値を定数としてVerilogに送り、必要な波形を達成するために対応する論理を「トリップ」するためにカウンタを使用することでした。 垂直タイミング 最後に、LCDSの解像度は同じ設定で交換用モニターを実行する必要があると識別されなければなりませんでした。これは、単に様々なアクティブ期間を測定し、それらを期間40nsのピクセルクロックなどの他の信号と比較することによって行われました。水平のアクティブ時間は米国毎に、合計642.5ピクセルの合計642.5ピクセルと同様に垂直アクティブ期間が構成されており、481ラインに対応する水平期間は30μmである。明らかにこれは60 Hzの活性化速度を有する従来の640 x 480ディスプレイであった。 代わるものを見つけること 8インチの救世主 そのため、最後に既存のディスプレイがかなり一般的であり、交換が完全にもっともらしいように見えた。残念ながら、サイズは少し奇妙でした。 7インチのスクリーンを見つけるのは簡単ですが、8? Web上での交換のかなり価格の低下を見つけることができなかったとしても、サイズは車の中で市場のLCDの設置後の多数の現代で使用されているものと同じであることがわかりました。これらは、優れた低コストの「上司」トップクオリティスクリーン(50ポンド)で、文字通りすべてのアナログからVGA、さらにはHDMIまでのビデオ入力のすべての開発を受け入れます。彼らはまた、1024 * 768のはるかに高い分解能をサポートしています。 最後に、すべてが一緒にクリックされているようでした。 LCDをこのVGAモニターに置き換えることができるだけでなく、範囲がCRTのための十分なスペースを持っていたので完全には合います! だからまさに、LCDをVGA変換にどのように実行しますか?もちろんFPGAで! 信号変換 この時点で、私と500MHzのスコープの機能のための唯一のものは、前述のLCD信号をVGAに変換しました。そのような比較的迅速な処理はFPGA上でのみ行うことができたのは明らかでしたが、どれですか?私の目的は、ある時点で、画面で範囲内にFPGAを残したままにすることになるので、私は小さくて安く何かを必要としました。幸いなことに、eBayはこれらの古いアルテラCyclone IIベースの開発委員会を持っているようです£10を強くする!これらはむしろ4K論理要素を保持し、このような小規模プロジェクトに最適なFPGAを保持することができます。 これらの表示変換が行われている一般的な方法はフレームバッファを使用しています。このアイデアは、フレーム全体をバッファリングし、変換を実行し、もう一方の端にそれを吐き出すことです。残念ながらこれはFPGA上の立派なサイズの外部RAMを呼び出します。これらのFPGAボードは、外部RAMを使用しないことに対して注力しているため、この方式は問題外でした。ちょっとした考えの後、私はLCD信号とVGAが結局のところ異なるものではなかったという実現に関連していました。私が1行ずつ他方からもう一方に変換でき、フレームバッファの必要性を回避することができればどうなりますか? 比較:VGA対LCD。この図は、水平セグメントと垂直セグメントの両方に適用されます。 要約すれば: LCDは: ピクセルクロック 同期信号を組み合わせる フロントパティオのみ VGAは次のとおりです。 画素クロックはありません 別々の同期信号 前後のパティオ同期期間 統合同期信号 VGAがどのように機能するかの詳細はこの記事の範囲を超えていますが、後でそれを修正します。今のところ、単にタイミングスケッチを調べると、2つの信号の唯一の違いは、ポーチの発生数とポーチの位置と有効なデータの配置です。 スケッチは変換を簡単に見せるが、2つのフレームが完全に同期している場合にのみ有効です。 FPGAにVGAを介して対応するLCDフレームを作成するようにFPGAに指示するには、まずLCDコネクタから来る新しいフレームの開始を特定する必要があります。 LCDからの統合同期信号のエッジを調べるだけでは十分ではないので、これはプロセスの最も厄介な部分である可能性があります。 代わりに私達は2つのエッジの間の時間を測定し、新しいフレームの発生にフラグを立てるべきです。残りは、上記のタイミング図を生成する比較的簡単な論理ゲートのセットである。最後に、LCDがバックパティオまたは同期パルスを持っていないので、受信RGBデータはTiny FIFOを使用して時間内にバランスアウトされるべきであるため、VGAモニタがそれを期待する場所に完全に整列します。上記をVerilogに等しくすると、ハードウェアに対処しました。 ハードウェアの設定 ハードウェア設定 ハードウェア構成は幸いなことに非常に最小限のものでした。 HPはLCDを最大限に活用していませんでした。 Eの個々のビットを検査するACHチャンネルは多くの冗長性を明らかにしました。さまざまなビットは実質的に常に同一でした。 HPはほとんどの場合、範囲のCRTバージョンからファームウェアを再利用していたので、これは衝撃的ではありませんでした。これはすべて、各カラーチャンネルのMSBを実質的に最終的な画像に損失しないだけでなく、私が逃げたことを暗示しました。これは私にFPGA上でさらに貴重なメモリをさらに節約しました。 最も重要な問題は、LCDが5VのTTLシグナルを使用していたことです。 FPGAは最良の3.3 Vの信号を受け入れることができるので、レベル変換が実行されなければならなかった。この変換を実行するために、74HCシリーズロジックバッファの中に入力クランプダイオードを活用することを選択しました。これは上昇/立ち下がり時間をかなり破壊する傾向があります。例えば、74HC4050はダイオードと直列にポリシリコン抵抗器を持ち、外部直列抵抗の必要性を変位させる。私はそれを安全に再生し、これらのバッファの入力に1kΩの直列抵抗を追加し、FPGAに出力された出力を供給しました。 FPGAのHSYNC出力およびVSYNC出力の出力は、RGBラインが330Ωの抵抗を介してリンクされている間、モニタに直接接続されました。 成功 成功! 25 MHzピクセルクロックをブレッドボード上に振る舞い、FPGAを新しい外部にフックアップした後 モニターのVGAポート、範囲はその正式な栄光に戻りました!すべてが完全に機能しましたが、この設定はかなり騒音が起こりやすいです。私が今する必要があるのはPCBを作り、VGAモニターを範囲内に永住権を監視します。 それでは、次に何が尋ねますか?まあ、現在スクリーンショットを保存する唯一の方法は、日付のフロッピードライブを介して行われます。しかし、我々は今やFPGAを通過するLCDデータを持っているので、それをSDカードに書き込めないのですか?