ここは応用編です。第2~3章で基本形の回路図を完成させた人が、次の一歩として読む章です。この章では、基本形に機能を「足す」とはどういうことか——何を・なぜ足すのか、そして足さない判断をどうするのかという設計の考え方をまず学びます。そのうえで、実際に役立つ3つの拡張(電源レギュレータ・水晶・USB)を、シンボルと配線のレベルで具体的に示します。基本形を作れたあなたなら、応用も必ず作れます。
4.1 「足す/足さない」をどう決めるか——拡張の設計思想
基本形のボードは、CH32V003を動かす最小限の構成でした。ここに機能を足していけば、より高機能なボードになります。しかし——「足せるから足す」は、良い設計ではありません。部品が増えれば、コストも、はんだ付けの手間も、故障の可能性も増えます。本教材が基本形であえてUSBも水晶も載せなかったのは、「最初の一枚に、それらが要らなかったから」です。
では、何を基準に「足す/足さない」を決めるのか。次の4つの問いを、拡張を考えるたびに自分に投げかけてください。
- 要件から逆算しているか? 「その機能が実現したいことに本当に必要か」を最初に問います。内蔵機能で足りるものを、わざわざ外部部品で足すのは無駄です。「あると便利そう」ではなく「これが無いと目的が達成できない」かどうか。
- ピンは足りるか? CH32V003のピンは20本しかなく、使える汎用IOは限られています。拡張の多くは、特定のピンを占有します。あるピンを拡張に使うと、そのピンは他の用途に使えなくなる——この「取り合い」を意識します。
- 難易度とコストは見合うか? 部品点数、はんだ付けの難しさ、必要なソフトウェアの複雑さ。得られる機能が、その手間に見合うかを天秤にかけます。
- 「足さない」も立派な設計判断。 内蔵機能で足りるなら、足さないのが正解です。シンプルさは、それ自体が価値(安さ・作りやすさ・壊れにくさ)です。
この章で扱う3つの拡張は、まさにこの判断の good example です。電源レギュレータは「ほぼ誰もが欲しくなる」実用的な拡張、水晶は「精度が要るときだけ」の条件付き拡張、USBは「挑戦する価値のある」高度な拡張。三者三様の「判断の型」を、具体例で見ていきましょう。
4.2 応用①:電源レギュレータ(5V→3.3V)— 最も役立つ拡張
まず、応用の筆頭。電源レギュレータです。これは実用性が最も高く、多くの人が最初に欲しくなる拡張です。
なぜ役立つのか:世の中は5Vだらけ
基本形のボードは3.3Vで動きますが、その3.3Vは書き込み器(WCH-LinkE)の3V3ピンから供給していました。つまり、書き込み器をつないでいる間しか電源がないのです。基板を単体で動かそうとすると、いきなり「3.3Vをどこから持ってくるか」という問題に突き当たります。
一方、私たちの身の回りにあふれているのは5V電源です。USBケーブル、モバイルバッテリー、USB充電器、Arduinoの5Vピン——どれも5V。この手持ちの5Vを挿すだけで動く、自立した基板にできれば、実用性は一気に上がります。それを実現するのが、5Vを3.3Vに変換する電源レギュレータ(LDO)です。
- 要件: 「書き込み器なしで、手持ちの5Vで動かしたい」——実用品にするならほぼ必須。◎
- ピン: レギュレータは電源ライン(VCC/GND)に入るだけで、貴重な汎用IOを消費しない。これは大きな利点。◎
- 難易度: 部品はレギュレータ1個+コンデンサ2個程度。配線も素直。難易度は低い。◎
- 判断: 実用品を目指すなら「足す」。ブレッドボード実験だけなら不要。
部品選び:AMS1117-3.3
3.3Vレギュレータの定番中の定番が AMS1117-3.3 です。手はんだ基準で見ても優秀です。
| 部品 | 値・型番 | 役割 | 手はんだ基準での評価 |
|---|---|---|---|
| U2 | AMS1117-3.3(SOT-223) | 5V→3.3V変換 | ピンが大きく手はんだ容易 ◎ |
| C2 | 10µF(入力側) | 入力電源の安定化 | 2012サイズで統一可 |
| C3 | 10µF(出力側) | 出力の安定化(発振防止) | 同上 |
| J4 | ピンヘッダ 2ピン等 | 5V入力端子 | — |
AMS1117のようなレギュレータは、出力側にコンデンサ(10µF以上)を入れないと、動作が不安定になったり発振したりします。データシートにも明記された要件です。「レギュレータ単体を置けば3.3Vが出る」わけではなく、入力・出力の両側にコンデンサをセットで置いて初めて安定して働く——これは電源回路の基本作法です。ここを省くと、原因のわかりにくい不安定動作に悩まされます。
AMS1117のドロップアウト電圧は約1.2Vです。これは「入力は出力より最低1.2V高くないと、正しく3.3Vを出せない」という意味です。5V入力なら 5 − 3.3 = 1.7V の余裕があるのでOK。もし「3.3Vに近い電圧(例:3.7Vのリチウム電池)から3.3Vを作りたい」場合は、このAMS1117では余裕が足りず、もっとドロップアウトの低いLDO(XC6206やHT7333など)を選ぶ必要があります。入力電源が何Vかで、選ぶべきレギュレータが変わる——これも「要件から逆算」の一例です。
給電コネクタをどう選ぶか
5Vをどの「差し込み口」から入れるか——給電コネクタの選択も、立派な設計判断です。「みんなが持っている5V」をどの形で受けるかで、使い勝手が変わります。代表的な選択肢を比べます。
| コネクタ | 利点 | 注意点・欠点 | 手はんだ |
|---|---|---|---|
| USB Type-C | 今の主流。ケーブルが手に入りやすく、裏表なく挿せる | CC端子に抵抗が必須(後述)。端子が細かく実装がやや難しい | △(細かい) |
| Micro-USB(Micro-B) | 安価で普及。抵抗不要でVBUSから素直に5Vが取れる | 耐久性が低め(抜き差しに弱い)。やや旧世代 | △(細かい) |
| USB Type-A(オス) | PCやUSB充電器に直挿しできる。抵抗不要 | 基板が大きくなる。向きの制約 | ○ |
| DCジャック / 端子台 / ピンヘッダ | 最も簡単・確実。抵抗不要。手はんだ最易 | 専用ケーブルや外部電源が要る場合がある | ◎ |
USB Type-Cは、コネクタを挿すだけでは5V(VBUS)が出てきません。「私は電源を受け取る機器です」と相手(電源側)に伝える必要があり、そのためにCC1・CC2の2本の端子を、それぞれ 5.1kΩ の抵抗でGNDに落とす(プルダウンする)必要があります。この抵抗が無いと、電源側が「機器がつながっていない」と判断して給電しません。重要なのは、CC1とCC2を1本にまとめず、別々に5.1kΩでプルダウンすることです。まとめてしまうと、一部のケーブル(eマーカー入り)で正しく給電されない不具合が起きます。「USB-Cはおしゃれだが、抵抗2本を忘れると動かない」——これは初学者が最もはまる落とし穴です。
これも「要件から逆算」です。とにかく確実・簡単に作りたいなら、DCジャックやピンヘッダ、あるいはUSB-A(抵抗不要で、はんだも楽)。今風で取り回しの良いものにしたいなら USB Type-C(ただしCC抵抗2本を忘れずに)。Micro-USBは「安いケーブルが余っている」なら選択肢ですが、これから作るなら Type-C か、割り切ってDCジャック/ピンヘッダが素直です。「かっこよさ」と「作りやすさ」を天秤にかける——ここにも設計判断があります。本教材の手はんだ最優先の思想からは、まずはピンヘッダやDCジャックで確実に動かし、慣れたらUSB-Cに挑戦、という順序をおすすめします。
回路:どうつなぐか
レギュレータの結線はシンプルです。5V入力を受け、3.3Vを基板全体のVCCへ供給します。
【電源レギュレータ部の接続】
5V入力(J4) ──┬── U2:IN U2:OUT ──┬── VCC(3.3V, 基板全体へ)
│ │
C2(10µF) U2:GND C3(10µF)
│ │ │
GND ──────────┴───────────┴── GND
| ネット | つなぐ場所 |
|---|---|
VIN_5V(新規) | J4-1(5V入力), U2-IN, C2-1 |
VCC(既存の3.3V) | U2-OUT, C3-1 + 基板全体のVCC |
GND | J4-2, U2-GND, C2-2, C3-2 + 基板全体のGND |
レギュレータを足すと、3.3Vの供給元が「書き込み器の3V3」と「レギュレータの出力」の2つになりえます。両方を同時につなぐと、電源どうしがぶつかって故障の原因になります。書き込み時は書き込み器から、単体動作時はレギュレータから、というようにどちらか一方だけが電源を供給する設計にします(ジャンパで切り替える、書き込み時はレギュレータ側の5Vを外す、など)。「電源が二重にならないか」は、電源を足すとき必ず確認すべきポイントです。
- シンボル追加(
A)で、レギュレータはRegulator_LinearライブラリのAMS1117-3.3系、コンデンサはDevice:Cを置きます。 - グローバルラベルで、上の表のとおり
VIN_5V・VCC・GNDを割り当てます。 - フットプリントは、AMS1117なら
SOT-223、コンデンサは手はんだしやすい2012(0805)のHandSolder版。 - 基板上では、レギュレータと2つのコンデンサを近くにまとめて配置し、入力・出力のコンデンサをそれぞれレギュレータのピン近くに置きます。
- USB Type-Cで給電する場合は、CC1・CC2 それぞれに 5.1kΩ を追加し、GNDへ落とすのを忘れずに(上の注意参照)。コネクタは
Connector系ライブラリのUSB-Cフットプリントを使います。
4.3 応用②:水晶発振子(クロックの精度を上げる)
次は水晶発振子。これは「精度が要るときだけ」の条件付き拡張で、判断の考え方を学ぶのに格好の題材です。
なぜ・いつ必要か
CH32V003は、外部部品なしで動きます。チップ内部に発振器(内蔵RC発振器=HSI)を持っていて、電源を入れるだけでクロックが動くからです。基本形が水晶を載せていないのは、これで足りるからです。
ただし、内蔵RC発振器には弱点があります。周波数の精度が甘い(電圧や温度で数%ずれる)のです。ほとんどの用途では問題になりませんが、正確な時間や通信速度が要る場面——正確な時計、シビアなボーレートの通信、精密なタイミング制御——では、このズレが効いてきます。そこで、精度の高い外部水晶(HSE)を足します。水晶は「より正確なクロック源」です。
- 要件: 「正確なタイミングが要るか?」——時計や精密通信なら要る。ふつうのIO制御やLED点滅なら不要。条件付き。
- ピン: 水晶はPA1とPA2を占有します。本ボードはこの2本をGPIOとしてJ1に引き出しているので、水晶を足すとGPIOが2本減る。この取り合いが最大の判断材料。
- 難易度: 水晶+負荷コンデンサ2個。配線は素直だが、コンデンサ値は水晶に合わせる必要あり。中程度。
- 判断: 精度が要る かつ PA1/PA2を他に使わない、なら「足す」。そうでなければ内蔵RCで足りる。
水晶を足すと、PA1・PA2は水晶専用になり、GPIOとしては使えなくなります。つまり「クロックの精度」と「2本のGPIO」を天秤にかけることになります。これはまさに、拡張判断の4つの問いのうち「ピンは足りるか?」が前面に出る例です。あなたの用途で、PA1/PA2をGPIOとして使う予定があるなら、水晶は載せられません(あるいは別の機能を諦めることになります)。有限のピンを何に割り当てるか——これが基板設計の本質のひとつです。
部品と回路
| 部品 | 値 | 役割 |
|---|---|---|
| Y1 | 水晶発振子(例:24MHz、CH32V003が対応する範囲で) | 正確なクロック源 |
| C4, C5 | 負荷コンデンサ(水晶メーカー指定値。数pF~十数pF) | 水晶を正しく発振させる |
【水晶発振部の接続】
U1:PA1(OSCI) ──┬── Y1 ──┬── U1:PA2(OSCO)
│ │
C4(負荷C) C5(負荷C)
│ │
GND ──────┴── GND
負荷コンデンサ(C4・C5)の値は、適当に決めてはいけません。使う水晶のデータシートが指定する「負荷容量」に合わせて選びます(基板配線のわずかな容量も影響します)。CH32V003のリファレンスマニュアルも「負荷コンデンサは発振ピンのできるだけ近くに置き、値は水晶メーカーのパラメータに従って選ぶこと」と明記しています。水晶とコンデンサはセットで、発振ピンの直近に配置するのが鉄則です。
4.4 応用③:USB(rv003usb)— 挑戦する価値のある拡張
最後はUSB。これは最も高度で、挑戦しがいのある拡張です。
特殊事情:CH32V003はUSBハードを持たない
多くのマイコンはUSB通信用の専用回路を内蔵していますが、CH32V003はUSBハードウェアを持っていません。ではUSBは無理かというと、そうではありません。ソフトウェアでUSBの信号を作り出すという離れ業があります。これを実装したのが、rv003usb という有名なオープンソースプロジェクトです。
bit-bangとは、専用回路を使わず、汎用IOピンをソフトウェアで高速に叩いて通信信号を作り出す手法です。rv003usbは、この手法でCH32V003にUSB機能を持たせるプロジェクトで、GitHubの
cnlohr/rv003usb で公開されています。これを使うと、数十円のマイコンがUSBキーボードやUSBシリアル機器として振る舞えます。ただしタイミングが非常にシビアで、初心者向けとは言えません。まさに「挑戦する価値のある」題材です。
- 要件: 「PCと直接USBでつなぎたいか?」——USB機器を作りたいなら要る。書き込みと動作確認だけなら不要。
- ピン: USBのD+/D−に2本のGPIOを使います(rv003usbが指定するピン)。ここでもピンの取り合いが発生。
- 難易度: 高い。ハード(USBコネクタ+抵抗)は簡単だが、ソフト(rv003usb)のタイミングがシビアで、動かすには相応の理解が要る。
- 判断: USB機器を作るという明確な目的があり、かつ挑戦する意欲があるなら「足す」。
ハードは意外とシンプル
意外なことに、USBハードウェア自体はシンプルです。USBコネクタと、D+/D−ラインの抵抗、そしてD−(またはD+)のプルアップ抵抗程度です。難しいのはソフトウェア側なので、ハードの配線は本教材の範囲で示せますが、動かすためのファームウェアは rv003usb のリポジトリに委ねます。
| 部品 | 役割 |
|---|---|
| USBコネクタ(Type-C や Micro-B) | PCとの物理的な接続口 |
| 直列抵抗 ×2(D+/D−、例:数十Ω) | 信号ラインの保護・整合 |
| プルアップ抵抗(1.5kΩ前後) | USBホストに「機器がつながった」と知らせる |
USBの具体的なピン割り当て、抵抗値、プルアップの扱いは、rv003usb の実装に厳密に合わせる必要があります(ソフトとハードが密接に対応しているため)。必ず cnlohr/rv003usb のリポジトリにある回路例とコードを確認し、それに従って設計してください。ここは「自分で確かめながら学ぶ」ことが特に重要な領域です。第2章で参照した Mandera や mitxela のボードも、USB部分はこうした実装を踏まえて設計されています。実物の回路図を突き合わせると理解が深まります。
4.5 他にも考えられる拡張
この章で詳しく扱った3つ以外にも、拡張の候補はあります。いずれも「4つの問い」で判断できます。参考までに簡潔に挙げます。
| 拡張 | 何のため | 判断のポイント |
|---|---|---|
| ユーザーボタン | 入力を受け取る | 最も簡単。GPIO1本+プルアップ。入力の基本を学ぶのに最適 |
| I2C/SPIセンサー | 温度・加速度などを測る | 基板を変えず、J1/J2から配線するだけで足せることが多い。まず試すべき |
| RTC用の低速水晶(32.768kHz) | 正確な時計 | 時計機能が要るときだけ。ピン占有に注意 |
| 外部Flash/EEPROM | データを保存する | SPI/I2Cで接続。内蔵メモリで足りるなら不要 |
- 拡張は「足せるから足す」のではなく、4つの問い(要件・ピン・難易度・"足さない"判断)で決める
- 電源レギュレータ:最も実用的。手持ちの5Vで自立動作。GPIOを消費しない利点
- 水晶:精度が要るときだけ。PA1/PA2を消費するトレードオフ
- USB:挑戦的。ハードは簡単、ソフト(rv003usb)が難しい。実装は公式を参照
- どの拡張も、実在のオープンソース基板(第2章参照)の実物を突き合わせると、理解が深まる
拡張のシンボルと配線が決まったら、あとは基本形と同じです——第5章以降のPCB配置・配線・DRC・発注の工程に、追加した部品を含めて進めるだけ。基本形で身につけた流れが、そのまま応用でも通用します。