activity_reports

2023-09-29(Fri) 活動報告

by @ctes091x

tl;dr

40円マイコンで遊んだ

文化祭後の代休に秋月電子通商に赴き、その場で一目惚れして(?)購入した32ビットRISC-VマイコンCH32V003J4M6でLチカをしました。

用意したもの

環境構築

ドライバのインストール

https://www.wch-ic.com/products/WCH-Link.html からWCH-LinkUtility.ZIPをダウンロードして展開します。直下のWCH-Linkutility.exeの初回起動時にデバイスドライバを含むなんか色々なモノが入ります。

PCのUSBポートにWCH-LinkEエミュレータを挿入し、Connect WCH-Linkボタンを押すとWCH-LinkEが認識され、状態が確認できるようになります。購入時の状態ではARM用となっているためこれを変更する必要があります。画面下部のプルダウンでWCH-LinkRVを選択しSetボタンを押下すると設定が変更され、エミュレータ胴部の青ランプが消えます。

Query Chip infoボタンを押すと、エミュレータに接続されているマイコンチップの情報を取得できるようです。

Arduino IDEにWCHのマイコン用環境を追加

Preferences->Additional Board Managerに https://github.com/openwch/board_manager_files/raw/main/package_ch32v_index.json を追加します。

ボードマネージャーでch32と検索、出てきたものをインストールします。

回路を組む

マイコンをDIP変換基板に実装します。ブリッジしても気にせず半田を流し込み、後から吸い取り線で過剰分を除去するという方法をとりました。

ピンヘッダの実装はブレッドボードに刺して行いました。もたつくとブレッドボードが溶けるとも噂されていましたが無事乗り切りました。

エミュレータから引き出した3V3GNDSWDIOをマイコン本体のピンアサインにしたがって配線します。

1番ピンにLEDと抵抗を接続し、マイコンの出力によってLEDが光るようにします。

//TODO: ブレッドボードの写真と回路図をそのうち入れる!!

プログラム書き込み&動作確認

https://kanpapa.com/today/2023/06/blink-risc-v-ch32v003-arduino.html のプログラムを、delay時間を変更した上で使用しました。

// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(PD6, OUTPUT);
}

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

Arduinoに書き込む場合と同様に検証を行った上でコンパイル&書き込みを行います。

書き込みが完了するとプログラムの実行が開始され、無事にLEDが点滅してくれました。

反省

Lチカに成功したあとシリアルモニタへのHello, world!の出力も行おうとしましたが、何か必要な手順を怠ったためかチップを1つ殺してしまったようです。

文化祭後の片付けで倉庫内の物の配置がいくらか変わってしまったので、更なる発掘調査の必要がありそうです。暇な方がいたら手伝ってください。HAKKOの半田ごてを見つけてくれたら泣いて喜びます。

活動報告書の執筆はこれが初めてですが、正直ボリュームが大きすぎたかなと反省しています。こんなものを活動後に毎回書ける気がしませんが、きっと他の部員の皆様もなにか書いてくれることでしょう。いつか蓄積された怪文書活動報告書がなんかの役に立つことを祈っています。