MAX10 & Arduino SPI通信 (3)通信テスト

シェアする

前回の続きです。

なんとかArduinoとFPGAを組み合わせたSPI通信が出来るようになりました。

用意するもの

  • MAX10-FB,JB
(1)MAX10(2)ライタ(3)DVD付き! FPGA電子工作スーパーキット (トライアルシリーズ) | 圓山 宗智 |本 | 通販 | Amazon
Amazonで圓山 宗智の(1)MAX10(2)ライタ(3)DVD付き! FPGA電子工作スーパーキット (トライアルシリーズ)。アマゾンならポイント還元本が多数。圓山 宗智作品ほか、お急ぎ便対象商品は当日お届けも可能。また(1)MAX10(2)ライタ(3)DVD付き! FPGA電子工作スーパーキット (トライアルシリ...
  • Arduino nano など
Amazon | waves Arduino Nano V3.0 互換品 DCCduino Mini USB CH340 国内配送 ピンヘッダ装着済 | 電気・電力 | おもちゃ
waves Arduino Nano V3.0 互換品 DCCduino Mini USB CH340 国内配送 ピンヘッダ装着済が電気・電力ストアでいつでもお買い得。当日お急ぎ便対象商品は、当日お届け可能です。アマゾン配送商品は、通常配送無料(一部除く)。
  • ブレッドボード
  • ジャンプ線

動作内容

レジスタは前回と変わらずですが一応載せておきます。

  • レジスタアドレス一覧

0x00:LED_Rレジスタ 0~7bit (輝度:0~255)
0x01:LED_Gレジスタ 0~7bit (輝度:0~255)
0x02:LED_Bレジスタ 0~7bit (輝度:0~255)
0x08:ドットマトリクス制御 bit0 HIGH でON
0x10:ドットマトリクス1列目0~7bit

0x17:ドットマトリクス8列目0~7bit

3色LEDはそれぞれ0x00で消灯、0x01から最大輝度0xFFまでの設定。

ドットマトリクスの制御レジスタがON中でも各列の書き換えは可。
SPIの速度的に常にONでもいい気がしますが。

接続図については、基本的に過去に行ったArduino nanoのSPI通信のスレーブがMAX10になっただけなのと、MAX10側はユーザー自らがPIOを選択出来るためMAX10-FBと違うFPGAボードを使用した際にピンを間違えないようにと思い省略します。

プログラミングをする

と言ってもArduinoは前回のプログラムを追加、修正したものですけれど。

一個一個アドレスとデータを打ち込むのが面倒なのでいくつかパターンを用意しました。

以下、コマンド

“0001”:3色LEDをRed=>Green=>Blueの順で点灯させる。
“0002”:3色LEDをRed=>Green=>Blueの順で徐々に明るさを上げ/下げする。
“0003”:ドットマトリクスを網状に5秒間点灯させる。
“0004”:ドットマトリクスを網状に点灯させ一定間隔で反転させる。

簡単なものですが0002と0004は連続で書き込むので、書き換え失敗が色違いやドット抜けなどで簡単に分かるのでSPIの試験としてはいいと思います。

プログラムは別記事にArduinoとFPGAのものを用意しました。
FPGA側は色々設定する項目が沢山ありますがプログラムソースのみとしています。

動作確認

Arduinoの起動時のシリアルモニタはこんな感じです。

2018-02-07

で、コマンド実行は動画にして撮ってみました。

MAX10からの配線が多いですが、メインの制御がArduinoだとすれば使用ピン数がSPIの4本のみですからかなり削減できますね。

余裕がありましたら、SPIモジュールの書き込みを1アドレスのみでなく続けて複数のアドレスを書き換えられるようにしたいところです。そうすれば速度の向上が出来そうです。

(1)MAX10(2)ライタ(3)DVD付き! FPGA電子工作スーパーキット (トライアルシリーズ) | 圓山 宗智 |本 | 通販 | Amazon
Amazonで圓山 宗智の(1)MAX10(2)ライタ(3)DVD付き! FPGA電子工作スーパーキット (トライアルシリーズ)。アマゾンならポイント還元本が多数。圓山 宗智作品ほか、お急ぎ便対象商品は当日お届けも可能。また(1)MAX10(2)ライタ(3)DVD付き! FPGA電子工作スーパーキット (トライアルシリ...