/* * vgaC - capture VGA signals most simply... I wish * by uratan! 2013.3.7 */
とりあえず そこそこ動くようになったので…。
LPC1830-Xplorer とは SPI で接続してます。また LPC1830 の SPIFI インターフェースを、キャプチャーデータの吸出し専用 4bit parallel チャンネルとして活用してみました。
SPIFI インターフェースの MemoryMap 機能により memcpy() でデータの吸出しができますし、その気になれば LPC1830 内バッファーを省略して直接 USB 転送できます。
Xplorer 本体はブリッジ基板を経て 3階建てに。
LPC1830 FPGA ---------+ +---------- SPI|<===========>|SPI | | (SCK=25MHz) SPIFI_SCK|---+-------->|SPIFI_SCK | | | (25MHz) SPIFI_IO|<=====++====>|SPIFI_IO | | || | SPIFI_CS|------------>|SPIFI_CS | | || +--|ROM_xCS | | || | +---------- | V VV V | +----------+ | | SPIFI | | | flash | ---------+ +----------+
(クリックで拡大)vgaC に比べて、FPGA からの吸出しレートは 6.1倍、USB 転送レートは 28倍になってます。
表示には wvgaC.exe を そのまま使ってますが、 vgaC に合わせた「上から下へ(もしくは逆)の連続スキャン」方式では 待ちまくり、時間空きまくりです。
(クリックで拡大) (比較:Seq1)LPC1830 内バッファーも、FPGA バッファー 2枚分以上確保できます。 xc3s200 の 24KB バッファーもこれで日の目を見るというもの。 この状態でのパフォーマンスは以下のごとく。 (比較)
メモリも確保し転送速度も上がって single buffer / double buffer の差がなくなってます。消費電流は Xplorer の増分がそのままのって 0.37A ぐらいです。 (比較)
640x400
(720x400@70Hzを
25.2MHzで)640x480
(640x480@60Hzを
25.2MHzで)1000x770
(1024x768@60Hzを
63MHzで)xc3s200
(24KB)DELL
(USB2.0)
(24MB/s)color 14.0f/s
(up/76L)10.1f/s
(up/76L)4.0f/s
(up/49L)mono 35.2f/s
(down/303L)30.3f/s
(DBL/down/303L)20.0f/s
(down/195L)
さてここからどうしたものか…