0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

CH32X035でBVE対応マスコン操作用基板を作る

Posted at

ATSex 等でボタンからのキーボード入力を行う必要が出てきました。
キーボード入力は USB-HID ができるマイコンが必要になります。
USBーHID 対応の安価なSoCとして RP2040 があげられます。
RP2040 はマイコン単体では1ドルですが、フラッシュメモリが別体のため、どうしても2ドル以上となり、割高となります。
さらに安価なチップとして CH32X035CH552 等があります。
CH552CDC(シリアル)HID が共存可能ですが、GPIOのピン数が少ないことがデメリットです。
今回は、1個50円の格安マイコン CH32X035 を使用してHID基板を作ってみました。
ch32X035-HID-1.JPG

CH32X035の特徴

  • 安い
  • ピン数が多い
  • USB対応
  • USB PD対応
  • ArduinoIDE対応

GPIO数

CH32X035はGPIOのピン数が多いことが特徴です。(型番にもよりますが)
CC1/CC2を使用しない場合、最大、25ピン使用可能な CH32X035G8U6 を選定しました。

USB HID/CDC対応

今回の目標はCH552の代わりといて HIDCDC が使用できるようにしたいと考えていました。
しかし、私の能力的にCDCが使用できず、UARTUSB-シリアルボード に接続する形で落ち着きました。
このため、売りであるはずの安さが失われてしまいました。

USB PD対応

CH32X035USB PD が特徴です。
一応、使用可能にしており、PDから5Vの生成も可能としました。

ボード形状

ArduinoUno のプラットフォームを採用しました。

回路図

image.png

プログラム

東京電機大学 鉄道研究部において使用した横浜市営地下鉄のワンハンドルマスコンのプログラムになります。
https://github.com/taisirou/ch32x035-HID
横浜市営地下鉄のワンハンドルマスコンはワンマン対応改造を施されており、ドア開閉に使う車掌スイッチの機能も有しています。
今回、制作したプログラムにはまだそれらが入っていないものになります。

デメリット

当初の目論見だったCH32X035単体でのCDCとHIDの共存が出来ませんでした。
ただし、プログラムの動作上、共存する方が良いかは悩みどころです。
HIDにおいてキー保持が存在するため、プログラムが若干難しくなるということが挙げられます。
このため、HIDとUARTを専用のマイコンボードにするかRP2040のようなデュアルコアのSoCを使う方が好ましいのかもしれません。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?