3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

RISC-VマイコンCH32V003でLチカ【電子工作】

Last updated at Posted at 2023-12-14

この記事は 本郷学園マイコン部 Advent Calendar 2023 15日目の記事です。

やったこと

文化祭後の代休に秋月電子通商に赴き、その場で一目惚れして(?)購入した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 (Alt+F2)ボタンを押すとWCH-LinkEが認識され、その状態が確認できるようになります。購入時の状態ではARM用となっているため、これをRISC-V用に変更する必要があります。画面下部Active WCH-Link Mode:のプルダウンでWCH-LinkRVを選択し、横のSetボタンを押下すると設定が変更され、エミュレータ胴部の青ランプが消えます。

画面上部Query Chip info (Alt+F3)ボタンを押すと、エミュレータに接続されているチップのUIDやフラッシュメモリサイズなどの情報を取得できるようです。

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

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

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

回路を組む

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

ピンヘッダの実装はブレッドボードに刺して行いました。もたつくとブレッドボードが溶けるという噂を聞いていましたが、特に何も起こらず無事に乗り切ることができました。

エミュレータからジャンパワイヤで引き出した3V3GNDSWDIOの3本を、マイコン本体のピンアサインに従って配線しました。

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

マイコンの1番にLED、2番にGND、4番に3V3、8番ピンにSWDIOをそれぞれ接続

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

以下のLチカスケッチを記述し、Arduinoに書き込む場合と同様に検証を行った上でコンパイル&書き込みを行います。

ch32v003j4m6_blink.ino
void setup() {
  pinMode(PD6, OUTPUT);
}

void loop() {
  digitalWrite(PD6, HIGH);
  delay(100);
  digitalWrite(PD6, LOW);
  delay(100);
}

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

おわりに

3年ほど前に5kJPY程度だったPICkit4が15kJPYになってしまうような理不尽な半導体不足の中で、非常に安価に提供されているこのマイコンの恩恵にぜひとも与っていきたいです。

明日は @miyajimaTKK さんの AIを使って脳死でアプリを作ろう です。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?