verylowfreqのアイコン画像
verylowfreq 2023年06月25日作成 (2023年06月25日更新)
セットアップや使用方法 セットアップや使用方法 Lチカ Lチカ 閲覧数 4855
verylowfreq 2023年06月25日作成 (2023年06月25日更新) セットアップや使用方法 セットアップや使用方法 Lチカ Lチカ 閲覧数 4855

50円のRISC-VマイコンをArduinoで使う 【WCH CH32V003F4P6】

50円のRISC-VマイコンをArduinoで使う 【WCH CH32V003F4P6】

たった50円で買えるRISC-Vマイコン CH32V003F4P6 を、Arduino IDE環境でコードを書いて、Lチカしてみます。
Use a cheap RISC-V microcontroller WCH CH32V003F4P6 in Arduino IDE and let's elchika!

この記事は、以下の動画の補足記事です。VTuberとしても活動してますので、ぜひ動画も見てください!!!!
This article is supplimental for the following video. Please watch it!

ここに動画が表示されます

マイコン / Microcontroller

CH32V003F4P6

  • RISC-V RV32ECコア
  • Flash 16KB
  • RAM 2KB
  • GPIO x18
  • ADC x8, SPI, I2C, USART

必要なもの / Parts

ブレッドボード上で試作する場合です。

回路 / Schematics

8つのLEDを点滅させる回路です。
リセットは、内部でプルアップされているので、とりあえずスイッチ経由でGNDへ落とせば動きます。ボタンをつけておくことをおすすめします。
書き込みのために、PD1(SWIO)を WCH-LinkEのSWDIOと接続します。
チップ自体の電源は 3.3Vでも5Vでも動きますが、今回は3.3Vで動かします。WCH-LinkEの電源出力が利用できます。
内蔵クロックで動作するので、外付けクリスタルなどは不要です。

TSSOP20パッケージは 0.65mm ピッチですが、これは手ハンダでいけます。位置合わせて、ハンダを盛って、吸い取れば、オッケーです。

回路図 (クリックで全体表示)

準備

WCH-LinkUtilityをダウンロードし、1回だけ起動します。
https://www.wch.cn/downloads/WCH-LinkUtility_ZIP.html

起動時に勝手にドライバをインストールしようとするので、許可してあげます。
購入直後はARMチップ向けのモードになっているので、RISC-Vモードへ変更します。
(動画を参照)

Arduinoのボードライブラリは Arduino core support for CH32 EVT Boards を利用しました。
https://github.com/openwch/arduino_core_ch32

Arduinoコード

Arduinoのコードなので、まぁ普通の感じです。

const uint8_t PIN_LED_ARRAY[] = { PC1, PC2, PC3, PC4, PC5, PC6, PC7, PD2 };
const size_t PIN_LED_ARRAY_COUNT = (sizeof(PIN_LED_ARRAY) / sizeof(PIN_LED_ARRAY[0]));

void setup() {
  // put your setup code here, to run once:
  for (size_t i = 0; i < PIN_LED_ARRAY_COUNT; i++) {
    pinMode(PIN_LED_ARRAY[i], OUTPUT);
    digitalWrite(PIN_LED_ARRAY[i], LOW);
  }
}

void loop() {
  // put your main code here, to run repeatedly:
  static int cnt = 0;

  for (size_t i = 0; i < PIN_LED_ARRAY_COUNT; i++) {
    if (i == cnt) {
      digitalWrite(PIN_LED_ARRAY[i], HIGH);
    } else {
      digitalWrite(PIN_LED_ARRAY[i], LOW);
    }
  }

  cnt = (cnt + 1) % PIN_LED_ARRAY_COUNT;

  delay(50);
}

その他

  • 動画で触れるのを忘れたんですけど、内蔵クロックで動くので、配線がすごく少なくて済みます。
  • まだ実用ソフトは書いてないので詳細不明ですが、ファームウェアのサイズはちょっと心配。
2
verylowfreqのアイコン画像
"verylowfreq" あるいは 「三峰スズ」(VTuber 2023年2月より) です。趣味で電子工作や3Dプリンターを楽しんでいます!
ログインしてコメントを投稿する