鳥なき里のマイコン屋(96) GD32VF103VBT6開発ボード

JosephHalfmoon
JosephHalfmoon

前回までRISC-V搭載の小型で「お求めやすい」マイコンボード、Longan nanoをいじってきました。最大の不満と言えば、ボードも小さければ搭載MCUも小ピンで、全部の機能は取り出せないことです。そんな折、Longan nanoと同じGD32VF103、しかし100ピン版でほぼ全端子を使用可能に見える開発ボードを見つけてしまいました。思わず購入。

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

のつもりでソフトは書けそうな気がしてきました。

鳥なき里のマイコン屋(95) Longan nano、RISC-Vデバッガ へ戻る

鳥なき里のマイコン屋(97) GD32開発ボードにRISC-Vデバッガ接続 へ進む