BeMicro Max10+ESP-32(1)Wifi+SPI経由でLチカ


EP2C5T144に続いて、BeMicro Max10ボードもQsysにNios II/eを追加する代わりに Windows PC →(Wifi)→ ESP-WROOM-32 →(SPI)→ BeMicro Max10のようにFPGAの外部からSPI経由で内部のペリフェラルI/Oを操作します。

動作確認用のWindowsアプリとESP-WROOM-32側のArduinoスケッチはEP2C5T144のときと同じです。FPGAのプログラムだけ移植します。

Qsysの画面はEP2C5T144のときとPIOのビット数以外同じです。Nios II/eの代わりにSPI Slave to Avalon Master Bridgeを追加しています。ほかにはLEDを接続するためにPIOを追加しています。動作確認用のWindowsアプリからPIOに接続されたLEDを点滅します。

HDLの記述もLEDの数が増えたので少し変わります。内容はFPGAのピンとQsysの出力したモジュールを接続しているだけです。

module ledtest (
	RST_N,
	CLK,
	LED1, LED2, LED3, LED4, LED5, LED6, LED7, LED8,
	SCLK, CS_N, MOSI, MISO
);
input CLK, RST_N;
output LED1, LED2, LED3, LED4, LED5, LED6, LED7, LED8;
input SCLK, CS_N, MOSI;
output MISO;
wire [7:0] leds_sig;

    unsaved u0 (
        .clk_clk                                                    (CLK),                                                    //         clk.clk
        .pio_for_led_export                                         (leds_sig),                                         // pio_for_led.export
        .reset_reset_n                                              (RST_N),                                              //       reset.reset_n
        .spi_bridge_mosi_to_the_spislave_inst_for_spichain          (MOSI),          //  spi_bridge.mosi_to_the_spislave_inst_for_spichain
        .spi_bridge_nss_to_the_spislave_inst_for_spichain           (CS_N),           //            .nss_to_the_spislave_inst_for_spichain
        .spi_bridge_miso_to_and_from_the_spislave_inst_for_spichain (MISO), //            .miso_to_and_from_the_spislave_inst_for_spichain
        .spi_bridge_sclk_to_the_spislave_inst_for_spichain          (SCLK)           //            .sclk_to_the_spislave_inst_for_spichain
    );

assign LED1 = ! leds_sig[0];
assign LED2 = ! leds_sig[1];
assign LED3 = ! leds_sig[2];
assign LED4 = ! leds_sig[3];
assign LED5 = ! leds_sig[4];
assign LED6 = ! leds_sig[5];
assign LED7 = ! leds_sig[6];
assign LED8 = ! leds_sig[7];

endmodule

ピン配置です。

LEDはアドレス0x00000000のPIOに接続したので、動作確認用のWindowsアプリからアドレス0x00000000にデータ0x55を書き込みます。結果はこのページ最初の画像をご覧ください。

(追記2017/9/21:Google Playに「FPGA SPI Bridge Console for Avalon Bus」を公開しました)

次へ