PR 記事には広告が含まれています
スポンサーリンク
Translate

ESP32で生成した画像をMAX10FPGAでカラーのNTSC信号に変換しアニメーションする実験をしました

スポンサーリンク

MAX10FPGAでNTSCのカラー信号を生成する実験は以前行っていました。

今回は、これにイメージバッファと、外部からのデータの書き換え機能を追加してみたいと思います。

スポンサーリンク

ブロック図

ESP32からは、一般的な液晶ドライバと同じような方式で、データ/コマンドピンとSPI接続でイメージデータをFPGAへ転送します。

イメージデータは、NTSC信号が生成しやすいように、RGBではなく、色相16種類(内1つは無色)、輝度4段階のファミコンのイメージデータような仕組みになっています。

MAX10 FPGAには4MbitのSRAMをイメージバッファとして接続しています。ESP32から転送されたイメージをストアしておきます。

また、NTSCのタイミングでメモリから読み出し、NTSCの信号を生成してD/Aへ出力しています。

D/Aコンバータの出力は6dBのビデオアンプを経てモニターに接続しています。

スポンサーリンク

実験回路

FPGAボードは、MAX10 10M02 FPGA 実験セットを使っています。ESP32とFPGAとはたった4本でつながっていて、イメージデータの転送が行われています。

スポンサーリンク

プログラム

ESP32で、sin波形の模様をアニメーションしてFPGAへ転送するプログラムを作りました。FPGA側では、液晶ドライバーのように振る舞うインタフェースと、メモリのイメージデータからNTSCを生成するロジックを組みました。

スポンサーリンク

動作開始

ESP32でsin関数の模様のアニメーションを生成して、FPGAで表示しています。

綺麗に動作してとても嬉しいです。NTSCという仕組みは配線1本で映像を伝送できる、とても面白い仕組みですね。