Superb Garbages 2

千野純一(chinorin)のはてなダイアリーの続きです。

GOWIN FPGA Designerライセンス、それからSeeed XIAO RP2040

GOWIN FPGA Designerのライセンスが届いたよ! 申請したのが12月17日土曜日、届いたのが2月20日月曜日なので営業日的には即日なんじゃないでしょうか。ありがたいことです。Superb Garbages 2はGOWIN Semiconductorと丸文株式会社*1 を応援しています。(懐かしいフレーズ)

・で、⋯⋯あー、なるほど、申請するときにどのMACアドレスで申請するかちゃんと吟味するべきだったのか。何も考えずに自宅の有線のMACアドレスを送ってしまって、これ書いてるとき別の場所でWi-Fi環境なので認証が通らん。でもまあ1日の中で繋いでる時間が一番長いのは自宅の有線だから、たぶんこれでいいんだと思う。

・帰ったら何事もなく認証が通ったというか、認証関係のダイアログも出ずに普通に立ち上がって拍子抜け。ちゅーわけでよかったよかった。これで正しくFPGAで遊べる。


・ところで、FPGARISC-Vって近年けっこう注目されてますよね?? マイコン界隈を見てるとAMDXilinxを買ったとかIntelRISC-Vの研究を始めたとかそういうニュースをちょくちょく目にするんだけど、身近な自作系界隈の人とか同業界隈の人とかはFPGARISC-Vも見たことも聞いたこともないそうで、世間でどれくらい話題になってるのかちょっとよくわかんない感じ。

・局面としては Intel&Altera vs AMDXilinx vs NVIDIA&ARM vs RISC-Vっていうのが非常に熱く来年の動向もすごく楽しみで、さらなる燃える展開を期待してしまうわけです。が、特にその話題で盛り上がれような場はなさそう。


・ところで、Seeed XIAO RP2040っていうSeeeduino XIAOとよく似たというか同じフォームファクタマイコンボードが最近発売されまして、安いので*2 買ってみました。RPっていうのはRaspberry Piの頭字語だと思います。というわけでRaspberry Piです。

・っつってもLinux動かすいわゆるシングルボードコンピュータであるところのあのラズパイとはちょっと違くて、Raspberry Pi Picoと同じMPU*3 が載ってるワンボードマイコン。開発環境としてのメインはMicroPythonかCircuitPythonかなんかみたいだけど、Arduinoも当然のようにサポートされてます。

・ま、Arduinoがサポートされてるということは、Arduino IDEを使う限りは基本的にはArduinoなんだわ。当然だけど。

・みたいなココロで、一緒にSeeeduino 拡張ボードなんてのも買ってみたのでとりあえずOLED*4 で遊んでみようと、U8g2っていうライブラリを使ってサンプルとか見ながら一所懸命書いてなんとかコンパイルするもなんかうまく転送できない。コンパイル後の書き込み時にウンともスンとも言わず数分後にタイムアウトする。

・よーわからん。色々調べてみたら、RP2040の他のマイコンで似たようなトラブル? が散見されて、とにかくブートセレクトボタンを押しながらUSBケーブルを接続するとUSBストレージとしてフォルダが開くので、MicroPythonのブートローダ?みたいなのをそこに放り込めとのこと。ばっちりXIAO用のが見当たらないのでRP2040搭載の似たようなボードのを拾ってきて入れてみたらなんかちゃんと動作してるような雰囲気が。でもすぐ元通りになってしまった。

・って、Seeed XIAO RP2040 WikiのArduinoの項目よく読んだらそのへんのこともちゃんと書いてあったわ。ドキュメントが日本語以外だとついさらさらと読み飛ばしちゃうんだよなあ。

・曰く、書き込みするときは必ずブートボタン押しながら接続すること。とにかくその「ブートモード」になっていないとファイル転送ができないらしい。あるいは接続中でもブートボタンとRUNボタン同時押しでブートモードに入るとのこと。

・はて⋯⋯⋯RUNボタンというのはいったい何なのか。ボード右下のBって書いてあるのがブートボタンで、左下のRって書いてあるのはリセットボタンのはずだ。他にボタンは見当たらない。

f:id:chinorin:20211119161318j:plain
Seeed XIAO RP2040 Wikiより引用。https://wiki.seeedstudio.com/XIAO-RP2040/

Arduino IDEの「検証」や「マイコンボードに書き込む」ボタンは Verify や Upload であって Run ではないしなあ。いや、わざと揚げ足取ってるとかじゃなくて、BOOT と RESET 同時押ししても何も起こらなかったと思うんだよな。まー明日くらいにまた試してみる。

・そもそもUSBストレージに自分でバイナリファイルを放り込むタイプのやつは、開発環境がマイコンに書き込むところまでやってしまう設計のArduinoとはちょっと相性が悪そうね。

・実はSeeeduino XiaoもArduino IDEによる転送中、ExplorerWindowsのシェル)が勝手にフォルダを開いてるのが見えて、ずいぶん奇妙なことをするなあと思ってた。そのへんが似たような仕様になってるのを、Seeeduino Xiaoの場合は強引にArduinoに寄せてるのかもしれない。

・あ、そういえばmbedもUSBのドライブに自分でつっこむ方式だし、Seeeduino XIAOはATSAMDだし、そしてRaspberry PiのRP2040⋯⋯これらには明確な共通点がありました。ARM系のマイコンはぜんぶそういう仕組みなの?

・全然知らんけど、Cortex-M系はプログラム領域が必ずUSBマスストレージとして実装されてるとか? いやそもそもCortex-M系ってハーバードアーキテクチャだったか??

*1:GOWIN Semiconductorは中国の会社で、丸文株式会社はその日本における代理店。ライセンスは丸文さんから日本語メールで届きました。

*2:Digikeyで確か650円くらいだった。

*3:「RP2040」というのがMPUの名前。

*4:Organic Light Emitting Diode:いわゆる有機ELディスプレイ