SPI Bridge Scope(1)Windows版アプリ試作


雑誌「トランジスタ技術 2018/9」に触発されて、FPGA内部のデータを読み出してオシロのように波形表示するアプリを作ってみました。QsysにSPI Slave to Avalon Master Bridgeを追加して、データを記録するRAMをFPGA内部に追加すると、Nios II/e無しでFPGA内のデータをSPI経由でPCなどから読み出せるようになります。

Windows PC ーWLANー> ESP32 -SPIー> FPGA

Cyclone II EP2C5T144Cyclone IV EP4CE6E22、どちらでも使えます。

FPGAのクロック周波数をアプリ画面に入力すると、Scope表示の時間軸、FFT表示の周波数軸が適切な値になります。次の画面は、FMステレオ復調に使った19kHzと38kHzを出力するNCOの出力をRAMに書き込んで、SPI経由で読み出して表示しています。ラジオと違い50MHzクロックで動作させています。ラジオでは384kHzで動作させていたので階段状の波形でしたがこちらは滑らかな波形です。

クロックを間引くことでオシロの時間軸のような調整もできます。

 

 

FFTはMath.NET Numericsライブラリを、グラフはOxyPlot.WindowsFormsライブラリを使いました。両方ともRaspberry PiのMonoの環境でも標準で使えるので、Raspberry Pi用アプリにも挑戦する予定です。

Raspberry Pi -SPIー> FPGA

とシンプルですが、Raspberry Piの標準のSPI0はLCDに使ってしまうので、FPGAとの接続にはSPI1(Auxiliary SPI)を使わないといけません。このハードルが高そうです。