きっかけ
そろそろモーター制御とかやりたくなってきたけど、手軽にそこそこの電圧, 電力を用意する方法ないかな?と考えていたところ、USBのPD (Power Delivery)を簡単に制御できる安いICがあるとのことで、早速試してみることにした。
PDとは
専門家ではないので詳しいことは語れないが、USB PDとはVBUSの供給電力(電圧)を給電側と受電側でのネゴシエートで決定し、5V以外の高電圧(大電力)を供給する規格のこと。これのお陰で昨今のスマホやノートPCの急速充電が実現できていると言って良いと思う。詳しいプロトコルは分からないが、色々あるUSB端子のうちCC端子という端子を使って給電側と受電側が通信し、供給電圧を決めているとのこと。
件のIC(CH224K)
このICはCC端子を使って受電側からの供給電圧の要求を簡単に給電側に送信できるIC。5V, 9V, 12V, 20Vのうちのどれかを給電側に要求し、給電側がその要求に対応していればそれら任意の電圧供給を実現することができる。
この章で先取りして回路の組み方を説明しようと思う。左側がUSB typeC端子側で、右側がCH224K。
CH224Kには以下接続が必要。(以下の図はデータシートから抜粋)
- CC端子二つ(CC1/CC2)
- VBUS(回路図CADでの設計の都合上、VCCとしている)
- 3.3V これは別途用意が必要(レギュレータ等でVBUS -> 3.3Vを作る等)
- 電圧要求制御端子 CFG1,2,3 (こちらはトグルスイッチやマイコン等に接続する)
- 必要に応じてPG端子を接続(オープンドレイン。データシートには接続例が無かったが、おそらく要求通りの電圧が供給されるとActive lowになると思われる)
特にCFG1,2,3の論理と要求電圧の対応表は以下の通り
これをマイコンから制御すれば自由に供給電圧を変えることができる。
作りたいものによるが、20Vとか給電できるようになると電子工作レベルのモーター制御としては十分な気がする。
HW設計
回路設計
今回はプロトタイプ的なノリで回路を組んでみた。今回はESP32-C6-MINI-1を使用し、以下のようなHW構成にしてみた。
まず、USB typeCコネクタとCH224K部分の設計はこんな感じ。
CH224K周りの設計はほぼデータシートの回路例通り。特にVBUSと3.3V両方の接続が必要なので注意。
VBUS -> 3.3V変換回路はこんな感じ。降圧コンバータICにはMP2331HGTL-Zというものを使っているが、300円程度で割と安い。なるべく各抵抗値をE12系列以下の値にした結果、直列抵抗になっている部分があるがまあ良いだろう。
マイコン周りの回路はこんな感じ。IOピンを増やすためにMCP23S17というSPIのIOエキスパンダを追加し、それ経由でCFG1/2/3を制御している。
モーターとライバーも追加したが、これは別の記事で紹介しようと思う。
基板設計
基板設計はこんな感じ。特にVBUS等大電流が想定されるネットはできる限り太めに配線した。
実装/実機確認
見た目はこんな感じ。
手元には5V, 9V, 15V, 20Vの給電が可能なUSB充電器があったので、試しに接続してみた。
ちゃんと要求通りの電圧が供給されているかはAmazonとかでよく売ってるUSBの電力チェッカーを使って確認した。
CFG1/2/3のHigh/Lowを自由に制御できるプログラムを作成し、各電圧で給電できるか試してみた。
最後に
要求通りの給電ができるようになったので、次はモーター制御に挑戦してみたいと思う。













