前回までRISC-V搭載の小型で「お求めやすい」マイコンボード、Longan nanoをいじってきました。最大の不満と言えば、ボードも小さければ搭載MCUも小ピンで、全部の機能は取り出せないことです。そんな折、Longan nanoと同じGD32VF103、しかし100ピン版でほぼ全端子を使用可能に見える開発ボードを見つけてしまいました。思わず購入。
※「鳥なき里のマイコン屋」投稿順Indexはこちら
GigaDevice社のGD32VF103のデータシートを拝見するに、この型番のもとに、
-
- Flash容量は16KBから128KBまで、SRAM容量は6KBから32KBまで4種
- パッケージはQFN36, LQFP48、LQFP64、LQFP100の4種
がラインナップされていることが分かります。全ての組み合わせが製造されているわけではないようですが、うち14品種がデータシートに記載されています。知らない人は多く感じるかもしれませんが、この程度の品種の多さは、シングルチップ・マイクロコントローラ、「マイコン」としては一般的じゃないかと思います。そのデバイスの中から、ボードメーカであるSipeed社は、Longan nanoに、
-
- 小型なLQFP48パッケージ版
- Flash/SRAM容量品は最大容量128KB/32KBのチップ(オリジナルLongan nano)
を採用することで、小型でお求めやすい割に高機能、を実現しておると考えられるのであります。なお、Flash/SRAM容量が少ないチップを搭載した「よりお求めやすい」Longan nanoも存在しているようです。
さて小ピンLQFP48を採用したお陰で、ボードは非常にコンパクトになりましたが、少ないピンを小さなボードにてんこ盛りの機能に割り当ててしまったので、自由に使える端子はそれほど多くない、ということはこれまで見てきた通りです。このGD32VF103というチップには、プログラム可能なIOピンは80ピンあり、LQFP100ピン版ではその全てが使用可能なようです。この100ピン版を搭載したボードはいくつか見つかるのですが、その中で「お求めやすさ」で断トツだったのが、
SeeedStudio社の GD32 RISC-V Dev Board
でした。SeeedStudio社は、ラズパイやArduinoなども販売している商社?的な存在にみえます。Longan nanoボードも販売しているようです。しかし、自社ブランドのマイコン開発ボードも販売しているみたい。この辺の会社間の関係は不明。とはいえ、このボードの説明ページを見たらば「PlatformIOで開発できる」ようなことが書かれています。それなら開発も簡単な筈?「お手頃価格」で即決購入。
クレジットカードサイズよりは一回り小さいですが、Longan nanoに比べると扱い易い大きさです。48ピンのピンヘッダ2列に信号が出ている(ピンヘッダは自分で半田付け必要です)ので、ほぼ自由に各端子にあたれそうです。ボードの裏面にみると全端子名が印字されており、非常に分かり易くなっているのも「開発ボード」としては得点が高い(誰の採点だ?)。また、ボードの4隅に取り付け孔があり、ちゃんと足が取り付けられる(足は自分で用意しないとダメですが)ところも、昔風のボードでいい感じ。
Longan nanoのように、無理やり感のあるLCD搭載ではなく、LCDはフラットケーブルのコネクタのみ搭載、別売のLCDパネルを外部接続可能。JTAG端子も10ピンのフラットケーブルをさせるコネクタになっていてしっかりしています。Longan nanoの苦し紛れ的デバッグ端子とは大違い。SDカードのスロットはLongan nano同様、背面にありますが、場所的にはカードを刺しやすい。さらにオンボードで外付けFlashとEEPROMも搭載しています。結構、試作などには実用的かもしれない、と思いました。ハードの「得点」は高い。しかし、問題は、開発環境の方でした。
確かにPlatformIO、Arduino環境でビルドできるけれど、
それは、外付けLCDパネルを使ったサンプルプロジェクトをダウンロードしてPlatformIOで開いたときに限った話です。ビルドしたオブジェクトファイルをPlatformIOの外側で、手動で指定して、ベンダのDFUツールで直接書き込む必要があるようです。私が確かめた時点では、
PlatformIOは、このボードはターゲットボードに入っていない
です。つまり、新規プロジェクトからボードを選ぶ、という方法では始められない?ほえほえ~。PlatformIOがサポートしていれば楽ちんにやれるけれども、これはこまった。
困った困ったと言っていたら思いつきました
端子数こそ違うものの、Longan nanoもこのボードもGD32VF103であり、かつ、FlashやSRAMの容量は同じ。端子は違うけれども、どうせビルドツールはそんなところ面倒見ないでしょう。
Longan nanoのつもりでSDKでプロジェクト作ればいいんじゃね
まあ、端子はLongan nanoとは違うので、ボードに合わせてコードを書いて、ビルドする。ビルドOK。そして、多分同じブートローダーが書き込まれているのだろうから、Longan nano同様の操作でファームもダウンロード出来る筈。
Longan nanoでDFUでダウンロードする場合、boot0という端子についたスイッチを押しながらRESETスイッチを押すことで、通常のコードを実行するモードから、DFUのコードを実行するモードにスイッチして書き込んでいました。このボードはと見ると、ボードの端にジャンパ端子があり、BOOT0、BOOT1はジャンパになっています。RESETにはボタンがあります。
PlatformIOからダウンロードする前に、BOOT0のジャンパを3V3側にしてからUSBを接続してみます。ちゃんと、Longan nanoと同様に認識されています。そこで、BOOT0のジャンパを書き込み後の自動再起動に備えGND側に戻しておきます。実際には、RESETかかるまではダウンロード可能なモードのままなので、PlatformIOから書き込みをできる筈。
書き込み成功
書き込み後、Longan nano同様、自動でRESETされ、書き込んだコードが実行されます。ほれこのように。
3個あるLEDは全て青色(ボード回路図の信号名は赤緑青)、入手した時点で書き込まれていたプログラムは3個を同時に点滅させていましたが、ちゃんと書き込めた証拠に、1個ずつ順番に点灯するようにしてみただけですが。
デカいLongan nano
のつもりでソフトは書けそうな気がしてきました。