MAX10 & Arduino SPI通信 (1)回路準備

2018年1月27日

いよいよArduinoとMAX10で何か動かしてみます。

(おい、Nios IIどうなった

え、何のこと。
と言うかこの記事は途中経過報告だよ(あ?

取りあえず通信出来る回路を用意する。

動作内容は、Arduino nanoとMAX10-FB間に単純にレベルシフタを入れてSPI通信を行います。

SPIでやることは、MAX10上の3色LED制御。

それと、以前実験したドットマトリクスをMAX10上に実装します。

予定としては、MAX10内部に各ドットのレジスタと表示器点灯/消灯の制御用レジスタを用意します。

  • レジスタアドレス一覧

MAX10の内部レジスタアドレスは以下の通り

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

  • SPIの送信データは内容

0~7bit:アドレス 0x00~0xFF
8~14bit:未使用(将来アドレスにも使える)
15bit:リード/ライト
16~23bit:データ

SPIのモジュールはIPを使わず(と言うか分かんない)自作します。
クロック極性(CPOL)、とクロック位相(CPHA)をArduinoと同じにする必要があるため変更(要コンパイル)出来るようにしておきます。(マスター側のArduinoを変更すればいい話ですが)

SPIについての詳しい説明は以下のリンクが参考になるかと。
複数の周辺機器を制御するSPI/I²Cバスライン

現状、Arduino側はSPIの確認が取れているので後は簡単に指示方法を考えるだけなのですが、FPGA側が中々進まずです。

でも、これさえ出来れば拡張出来そうなので、次回以降にでも進捗記事を載せておきます。

Nios IIは取り合えずこれが終わった”以降”になりそうです。
もうEnglishなUIの影響でアレルギーが辛いです。