Suzuno32RVをLチカしてみたよ!

スポンサーリンク

はじめに

いつもお世話になっている三峰スズさんのRISC-V MCUボードの第二弾、Suzuno32RVを技術書典で購入しました。それから色々忙しくて積んでしまっていたのですが、時間を確保できたので先ずはLチカをばと BOOTHでは販売なさっていない模様。会場での頒布のみだったのかな。

techbookfest.org

ちなみに三峰スズさんのSuzuduino UNO V1bはコチラで買えますよ! これも以前購入して楽しく遊びました! suzu3tsu.booth.pm

あとYouTubeも宣伝しておくぞ!みんな登録といいねするんだぞ!

www.youtube.com

使い方忘れた

完全にWCH系のマイコンの使い方を忘れてしまいました。ツイッターでそのことを呟いたところ、三峰スズさんが教えてくれました。

てっきりWCH-LinkEという書き込み装置がないと、書き込みできないと思っていたのですが、WCHISPStudio(公式)かwchisp(Rust製のツール)でいけるとのことです。WCHISPStudioはWindowsのみっぽいので、wchispを使ってみることにしました。 akizukidenshi.com

いつもはLinux mintなんですけど、今実家に帰ってきてMacBook Airしか使えないので、macで環境を整えていきます。MacBook Air (13-inch, 2017)なので、もう7年前のやつです...そろそろ新しいのが欲しいところですね。電池の減りが速すぎるぜ

Arduino IDEにボードを追加する

普段からArduino IDEを使っているのでまあArduino IDEでやっちゃいます。ボードを追加して使えるようにしていきます。 github.com

下記のURLをコピーして追加します。

https://github.com/openwch/board_manager_files/raw/main/package_ch32v_index.json

そしてボードマネージャーを開いてWCHと検索してインストール! これで準備完了です。

あと、書き込み自体はwchispを使って行います。Arduino IDEではコンパイルしてhexファイルを生成するのに使うといった感じです。 コンパイルしたファイルはどこかに保存されるのですが、デフォルトの設定だと何処にあるのか分からないので、コンパイル時に保存先を表示するように設定を変更します。設定が画面からcompileとuploadにチェックしておきます。 今回はコンパイルする時だけ使うので、compileだけにチェックすれば良いっちゃいいです。

wchispをインストールして環境を整える

wchispをインストールしようとしたんですが、これが上手くいかなくて... rustの環境が入って居なかったので、先ずはbrewを使おうとしたらbrewもおかしくなっていて、色々修正してやっとこさcargo installをしたのですが、下記のエラーに。もう途方に暮れちゃいました。

github.com

$cargo install wchisp --git https://github.com/ch32-rs/wchisp
    Updating git repository `https://github.com/ch32-rs/wchisp`
  Installing wchisp v0.2.3 (https://github.com/ch32-rs/wchisp#2efb224c)
    Updating crates.io index
error: failed to compile `wchisp v0.2.3 (https://github.com/ch32-rs/wchisp#2efb224c)`, intermediate artifacts can be found at `/var/folders/0j/m1ndp8j92_d45trvr973q_r80000gn/T/cargo-installUIw04V`

またツイッターに途方にくれましたとツイートしたら救いの神が

ということで、バイナリの方をダウンロード。

github.com

ダウンロードしたら解凍して、そのファイルの階層に移動しまして、以下のコマンド実行してみます。おそらくセキュリティで引っかかると思うので、セキュリティーとプライバシーから解除してみて下さい。

$./wchisp

Suzuno32RV認識するかな

環境は整ったので、ボードがちゃんと認識できるかテスト。Suzuno32RVのbootボタンを押しながらUSB接続して

下記コマンドを実行!

$./wchisp info

しっかり認識されました!!

コンパイルしてアップロードするぞい

それではLEDをLチカしますぞ。Suzuno32RVのビルドインLEDはPA5に接続されているので、コードは以下のようにしました。

void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(PA5, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(PA5, HIGH);  // turn the LED on (HIGH is the voltage level)
  delay(1000);                      // wait for a second
  digitalWrite(PA5, LOW);   // turn the LED off by making the voltage LOW
  delay(1000);                      // wait for a second
}

それではコンパイルをばと、コンパイルするとコンソール画面にhexファイルの保存場所が表示されます。これをコピーしておきます。

あとは書き込むだけ!下記のコマンドを実行すれば上手くいくはず!

$ ./wchisp flash /private/var/folders/0j/m1ndp8j92_d45trvr973q_r80000gn/T/arduino/sketches/475926BC78F0107004911A7DC7BD13EF/Blink.ino.hex