exLeafでもArduino

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?”の説明を元に自分でプロジェクトを作ることで対応させます.

というわけで対応ファイルを用意しました.次の手順で利用できます.

  1. 対応リソースをダウンロード f32c_exleaf.zip
  2. GitHubからプロジェクトをクローン % git clone https://github.com/f32c/f32c.git
  3. 必要なリソースを展開 % cd f32c; unzip (ダウンロードフォルダ)/f32c_exleaf.zip
  4. プロジェクト(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を制御できるのも事実.一つ手元に置いておくと便利かもしれません.

 

シェアする

  • このエントリーをはてなブックマークに追加

フォローする