exLeaf-iでiCE UltraPlusのLED Driverで遊んでみた

超低消費電力が売りのiCE40 UltraPlusですが,ちょっと遊べる(?)ボードexLeaf-iが社長の手によりバージョンアップ,LED DriverのポートにLEDが接続されてました.というわけで,なにはともあれ,LED DriverでLチカしてみました.ちなみに,ボードの名前はexICE5K v2.0っていうらしいです.

もちろん,バージョンアップ前同様,iCE40 UltraPlus 5K,コンフィグROM(M25P80互換),と,オシレータを搭載したシンプルな構成と,そのコンパクトなサイズは踏襲したまま.(前のバージョンについては,“iCE40 UltraPlusのコンフィグROMにRaspberryPiから書き込んでみた”に紹介があります.)

ボード上の,赤・緑・黄のLEDがLED Driverで駆動されています.

iCE40 UltraPlusのLED Driverとは

LEDをいい感じに点灯させるには,PWMを使うのが常套手段の一つですが,結構リソースを消費してしまいます.iCE40 UltraPlusにはロジック使用量を抑えつつPWMを使ってLEDを点灯できるように(LEDだけじゃなくてもいいのでしょうが)専用ロジックが搭載されていて,それがLED Driverです.

詳細は,RGB LED リファレンスデザイン に置いてある ユーザガイド iCE40 Ultra RGB LED Controller User Guide を見るといいです.

iCE40 UltraPlusのLED Driverを使ってみる

RGB Driverのインスタンスを生成,必要なポートとパラメタをセットすれば使えます.コードは次の通り.

また,ピン定義ファイルは,次のように用意しました(top.pcf)

合成と書き込み

合成

合成は,iCEcube2を使って合成hexファイルを生成します.Add Synthesis Filesでtop.vを,Add P&R Filesでtop.pcfを追加してGenerate Bitmapまで実行すれば top_bitmap.hex 他,コンフィギュレーション用のファイルが生成されます

書き込み

このボードはSPI ROMにhexファイルを書き込むことでコンフィギュレーションします.書き込みには,Diamond Programmerを使用します.残念ながら,JTAGスキャンでデバイスをみつけることができないのでマニュアルでプログラミング方法を設定します

  1. Diamond ProgrammerのDevice FamilyにiCE40 UltraPlus,DeviceにiCE40UP5Kを指定
  2. Fast ConfigrationになっているOperation部分をダブルクリックし設定ダイアログを開く
  3. ターゲットメモリにSPI Flash Memoryを指定,デバイスをM25P80に指定します.

設定は,こんな感じ.

設定が終わったら,Program Deviceボタンをクリックして,書き込み開始.書き込みが終わったら,プログラムアダプタを取り外してINITモードを解除,電源の再投入でFPGAが所望の動作を開始します.

次は

やっぱりRISC-Vでも載せませすかねー.あるいは,SenseAIも面白そうですよねー.

シェアする

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

フォローする