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?

USBのPDをESP32とCH224Kで制御してみた

0
Last updated at Posted at 2026-10-11

きっかけ

 そろそろモーター制御とかやりたくなってきたけど、手軽にそこそこの電圧, 電力を用意する方法ないかな?と考えていたところ、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になると思われる)

Screenshot 2026-10-10 at 19.29.29.png

特にCFG1,2,3の論理と要求電圧の対応表は以下の通り

Screenshot 2026-10-09 at 11.28.35.png

これをマイコンから制御すれば自由に供給電圧を変えることができる。

 作りたいものによるが、20Vとか給電できるようになると電子工作レベルのモーター制御としては十分な気がする。

HW設計

回路設計

今回はプロトタイプ的なノリで回路を組んでみた。今回はESP32-C6-MINI-1を使用し、以下のようなHW構成にしてみた。

Screenshot 2026-10-10 at 19.17.04.png


まず、USB typeCコネクタとCH224K部分の設計はこんな感じ。
CH224K周りの設計はほぼデータシートの回路例通り。特にVBUSと3.3V両方の接続が必要なので注意。

Screenshot 2026-10-10 at 19.26.24.png


VBUS -> 3.3V変換回路はこんな感じ。降圧コンバータICにはMP2331HGTL-Zというものを使っているが、300円程度で割と安い。なるべく各抵抗値をE12系列以下の値にした結果、直列抵抗になっている部分があるがまあ良いだろう。

Screenshot 2026-10-10 at 21.59.41.png


マイコン周りの回路はこんな感じ。IOピンを増やすためにMCP23S17というSPIのIOエキスパンダを追加し、それ経由でCFG1/2/3を制御している。

Screenshot 2026-10-11 at 12.16.52.png

Screenshot 2026-10-11 at 12.17.59.png


モーターとライバーも追加したが、これは別の記事で紹介しようと思う。

Screenshot 2026-10-11 at 12.23.09.png

基板設計

 基板設計はこんな感じ。特にVBUS等大電流が想定されるネットはできる限り太めに配線した。

Screenshot 2026-10-11 at 12.25.55.png

実装/実機確認

 見た目はこんな感じ。

IMG_3897.jpeg

 手元には5V, 9V, 15V, 20Vの給電が可能なUSB充電器があったので、試しに接続してみた。
ちゃんと要求通りの電圧が供給されているかはAmazonとかでよく売ってるUSBの電力チェッカーを使って確認した。

CFG1/2/3のHigh/Lowを自由に制御できるプログラムを作成し、各電圧で給電できるか試してみた。

  • 5V給電時
    IMG_3901.jpeg

  • 9V給電時
    IMG_3902.jpeg

  • 15V給電時
    IMG_3903.jpeg

  • 20V給電時
    IMG_3904.jpeg

最後に

要求通りの給電ができるようになったので、次はモーター制御に挑戦してみたいと思う。

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?