exLeafはLatticeを搭載したSDカードサイズのFPGAボードです.exStickでArduinoに引き続いて,http://www.nxlab.fer.hr/fpgarduino/を利用して,exLeafもArduino端末に仕立ててみました.
FPGA側の準備編
残念ながら(当然ながら),exLeafはhttp://www.nxlab.fer.hr/fpgarduino/で公式にサポートされているボードではありません.Webサイトの”My board isn’t listed above, is there any hope?”の説明を元に自分でプロジェクトを作ることで対応させます.
というわけで対応ファイルを用意しました.次の手順で利用できます.
- 対応リソースをダウンロード f32c_exleaf.zip
- GitHubからプロジェクトをクローン % git clone https://github.com/f32c/f32c.git
- 必要なリソースを展開 % cd f32c; unzip (ダウンロードフォルダ)/f32c_exleaf.zip
- プロジェクト(rtl/proj/lattice/exleaf/bram/exleaf_bram.xise)をDiamondで開いて合成,配置配線
合成,配置配線のあと,JEDECファイルを作成して書き込めばexLeafをArduinoノードとして使えるようになります.
ハードウェアの構成は次の通り.
- CPUアーキテクチャ: MIPS
- 動作周波数: 50MHz
- メモリサイズ: 8KB
- UART: 115200bps
LEDとSWをPMOD端子に引き出しています.
プログラミング用のRS232CポートはTXをPMODコネクタJ5のP2,RXをMODコネクタJ5のP1に対応させています.
なお,私は,秋月電子のAE-UM232Rを使用してPCと接続していますが,PMODコネクタJ5のP2をAE-UM232RのRXDに,PMODコネクタJ5のP1をAE-UM232RのTXDに直結しました.
Arduino開発環境の準備
ソフトウェア開発環境の構築方法は,exStickでArduinoと同じです.
次は?
exStickに同梱のUDP/IP IPコアへのインターフェースを用意して,Arduinoスケッチから簡単にUDP/IPをつかえるようにするというのに取り組みたい…と思ったのですが,Arduinoコアだけでリソースの7割を使用してしまいました.exLeafでオリジナルハードウェアにArduinoコアを追加するためには,少し小さくする工夫が必要なようです…残念.
とはいえ,いわゆるArduinoとは違って,3割のロジックリソースを使って柔軟にI/Oを制御できるのも事実.一つ手元に置いておくと便利かもしれません.
コメント