前回決めた作業手順の1番目、動作確認用のWindowsアプリの作成です。
- Windows PC上でFPGAを操作するためのバイト列を作ってWifiで送信
- ESP-WROOM-32で受信したバイト列をSPIでFPGAに送信
- FPGAで受信したバイト列をデコードしてボード上のLEDを点滅
QsysにNios II/eを追加する代わりに Windows PC →(Wifi)→ ESP-WROOM-32 →(SPI)→ EP2C5T144のようにFPGAの外部からSPI経由で内部のペリフェラルI/Oを操作するには、Qsysのオンライン・マニュアル「Embedded Peripheral IP User Guide」の「SPI Slave/JTAG to Avalon Master Bridge Cores」に書かれているように、コマンド+アドレス+データをバイト列に変換してSPIで送信する必要があります(下から上の向きです)。
一つの8、16、32ビットの読み書きと連続アドレスをまとめて読み書きのコマンドがありますが、まずは一つの8、16、32ビットの書き込み命令の変換だけを実装します。
動作確認用のWindowsアプリの画面です。
- コマンド:0001(8ビット書き込み)、アドレス:01234567、データ:ef
- コマンド:0002(16ビット書き込み)、アドレス:01234567、データ:cdef
- コマンド:0004(32ビット書き込み)、アドレス:01234567、データ:89abcdef
(追記2017/9/21:Google Playに「FPGA SPI Bridge Console for Avalon Bus」を公開しました)
うまく変換できているようです。