株式会社デバイスドライバーズE-KIT事業部
弊社製 組込みLinuxボード E!Kit-1100と拡張ユニバーサルボードを使用したNTSCビデオ出力の設計事例です。
Au1100の内蔵ビデオコントローラとFPGAによるNTSCダウンコンバート及びエンコード処理を使用して、Linuxカーネル2.6とNano-X WindowでNTSC出力実験を行い、動作確認をしました。
追加した回路の回路図です。 ダウンコンバート及びNTSCエンコード処理にはXILINX製FPGA XC3S200-4FT256Cが実装されている Spartan-3 Starter Kitを使用しました。部品の一覧表は下記の通りです。
種類 | 品名 | 数量 | 記号 | 備考 |
---|---|---|---|---|
IC | uPC29M33HF | 1 | U1 | − |
ADV7127KRU50 | 1 | U2 | ||
AD8051AR | 2 | U3, U4 | ||
インダクタ | 1.5u | 1 | L1 | |
抵抗 | 75 | 4 | R2, R5, R6, R9 | |
560 | 1 | R1 | ||
1.0K | 4 | R3, R4, R7, R8 | ||
コンデンサ | 100p | 1 | C9 | − |
680p | 1 | C8 | ||
0.1u | 6 |
C3, C4, C5, C6, C7, C10 |
||
47uF | 2 | C1, C2 | ||
1000u | 1 | C11 | ||
コネクタ | 2.54mmピンヘッダ(L型)2×20pin | 3 | CNA1, CNA2, CNB1 |
2×40pinの物を切断して使用 秋月電子通商 \100 |
RCA(黄) | 1 | CN3 | − | |
2.54mmピンヘッダ2×25pin | 4 | − |
2×40pinの物を切断して使用 秋月電子通商 \100 |
|
ICソケット | 丸ピンICソケット両端オス1×10pin | 4 |
1×20pinの物を切断して使用 秋月電子通商 \100 |
|
丸ピンICソケット両端オス1×14pin | 2 | |||
丸ピンICソケット1×10pin | 4 |
1×20pinの物を切断して使用 秋月電子通商 \70 |
||
丸ピンICソケット1×14pin | 2 | |||
基板/ボード | ユニバーサル基板(AE-2G) | 1 | 秋月電子通商 \200 | |
ピッチ変換基板(ICB-010) | 1 | 千石電商 \340 | ||
ピッチ変換基板(SSP-61) | 1 | 千石電商 \680 | ||
拡張ユニバーサルボード | 1 | − | ||
Spartan-3 Starter Kit | 1 |
10bitDAC(下位2bitは0固定)を1.3Vp-pで出力するようにし、
出力には3次のLPF(Bessel)を接続して折返しノイズを抑えています。
減衰値が-30[dB]では少ないと思うかもしれませんが
FPGA内のLPFのSNRが-30[dB]程度なので今回はこのようにしています。
あと折返しノイズ部分は、実際はDACのアパーチャ効果で減衰していますが
図では信号と同一レベルで書いています。
組立例です。
ユニバーサル基板やピッチ変換基板を使用しています。
Spartan-3 Starter Kit用のVHDLファイルです。
全体(top.vhd)と周辺回路を含めたブロック図です。
Spartan-3 Starter KitにはFPGA以外の機能(SRAMなど)がいろいろと
実装されていますが、今回はFPGA、50MHzクロックとDSUB15pinコネクタ以外の
機能は未使用です。50MHzのクロックからDFSを2個使用して28.63636MHzを生成しています。
あとE!Kit-1100のLCD信号をDSUB15pinコネクタに出力(8色)することで、
画像を確認できるようにしています。
(8色画像なのであくまで確認用です。)
ダウンコンバート(down.vhd)のブロック図です。
1024×16bitのデュアルポートRAMを使用して、E!Kit-1100側の映像(31.5KHz/640ドット)を
NTSC信号(15.7KHz/768ドット)に変換しています。
水平ドット数を640から768に変換しているのはアスペクト比を1:1にする為です。
垂直ライン数は480のままです。(480pから480iの変換は行っています。)
ダウンコンバート(down.vhd)の動作タイミングです。
ラインバッファ(デュアルポートRAM)への書込みが読出しを追い越さないように
E!Kit-1100側のタイミングを調整しています。
E!Kit-1100側とNTSC側のクロックが非同期な為、1クロック分のジッタが発生します。
NTSCエンコード(enc.vhd)のブロック図です。
S出力用の信号も生成していますが今回は未使用です。
図のなかでnTという表記は処理にnクロック必要ということです。
各信号のタイミングがずれないように必要な遅延を入れています。
E!Kit-1100側の水平周波数がカラーサブキャリア周波数と1:910にならないので
水平タイミングで位相を合わせることは省いています。
Xilinx ISE 7.1iで合成した結果です。 ガンマ補正と色変換に9個のテーブルを使用しているので BlockRAMの使用率が高くなっています。
Logic Utilization | Used | Available | Utilization |
Number of Slice Flip Flops: | 993 | 3,840 | 25% |
Number of 4 input LUTs: | 970 | 3,840 | 25% |
Logic Distribution: | |||
Number of occupied Slices: | 639 | 1,920 | 33% |
Number of Slices containing only related logic: | 639 | 639 | 100% |
Number of Slices containing unrelated logic: | 0 | 639 | 0% |
Total Number 4 input LUTs: | 1,022 | 3,840 | 26% |
Number used as logic: | 970 | ||
Number used as a route-thru: | 52 | ||
Number of bonded IOBs: | 122 | 173 | 70% |
Number of Block RAMs: | 10 | 12 | 83% |
Number of MULT18X18s: | 2 | 12 | 16% |
Number of GCLKs: | 4 | 8 | 50% |
Number of DCMs: | 2 | 4 | 50% |
E!Kit-1100用のカーネル2.6.12へのパッチです。
上記パッチをあてることで、E!Kit-1100側のLCDコントローラのタイミングを 必要なタイミングに設定することができます。 あとFramebufferを有効にする為の、カーネル設定の抜粋を掲載しておきます。 arch/mips/configs/ekit1100_defconfigにもパッチをあてているので それをそのまま使用しても良いです。
* * Graphics support * Support for frame buffer devices (FB) [Y/n/m/?] y Enable Video Mode Handling Helpers (FB_MODE_HELPERS) [N/y/?] n Enable Tile Blitting Support (FB_TILEBLITTING) [N/y/?] n Au1100 LCD Driver (FB_AU1100) [Y/n/?] y Epson S1D13XXX framebuffer support (FB_S1D13XXX) [N/m/y/?] n Virtual Frame Buffer support (ONLY FOR TESTING!) (FB_VIRTUAL) [N/m/y/?] n * * Console display driver support * VGA text console (VGA_CONSOLE) [N/y/?] n Framebuffer Console support (FRAMEBUFFER_CONSOLE) [Y/n/m] y Select compiled-in fonts (FONTS) [Y/n/?] y VGA 8x8 font (FONT_8x8) [Y/n/?] y VGA 8x16 font (FONT_8x16) [Y/n/?] y Mac console 6x11 font (not supported by all drivers) (FONT_6x11) [N/y/?] n Pearl (old m68k) console 8x8 font (FONT_PEARL_8x8) [N/y/?] n Acorn console 8x8 font (FONT_ACORN_8x8) [N/y/?] n Mini 4x6 font (FONT_MINI_4x6) [N/y] n Sparc console 8x16 font (FONT_SUN8x16) [N/y/?] n Sparc console 12x22 font (not supported by all drivers) (FONT_SUN12x22) [N/y/?] n * * Logo configuration * Bootup logo (LOGO) [Y/n] y Standard black and white Linux logo (LOGO_LINUX_MONO) [Y/n] y Standard 16-color Linux logo (LOGO_LINUX_VGA16) [Y/n] y Standard 224-color Linux logo (LOGO_LINUX_CLUT224) [Y/n] y * * Backlight & LCD device support * Backlight & LCD device support (BACKLIGHT_LCD_SUPPORT) [N/y/?] n
いろいろな画面をNTSC出力したときの写真です。 オーバースキャンになっているので上下左右の一部が見えなくなっています。 有効解像度は使用するテレビによって変わりますが8割り程度だと思います。 ここでは示していませんが、ffplayなどを実行してMPEGファイルの再生を行うことも もちろん可能です。
Linux起動画面
Nano-X Window System画面(1)
Nano-X Window System画面(2)
株式会社デバイスドライバーズE-KIT事業部 TEL: 042-363-8294 FAX: 042-363-8255 E-Mail: e-kit@devdrv.co.jp |
最終更新日: 2005年9月22日 |