USB PD評価ボードを使用したお手軽な充電器評価環境作成

市販の安価なUSB PD評価ボードを使用してUSB PD対応充電器の電源供給仕様をモニターし、出力電圧を切り替えることで充電器の電源供給能力を評価する環境を追加の開発不要で作成しました。

いきさつ

Interface 2017年4月号にUSB PD対応充電器とCCライン経由で通信して充電器の出力電圧を切り替え、60Wの電力を供給することで扇風機を回す実験記事が掲載されていて興味をそそられましたが、仕事ならともかく趣味では価格面で手が届かない構成でしたので、もっと安くてお手軽に試すことができる構成を探してみました。

 

使用するもの

  • USB PD評価ボード STMicro P-NUCLEO-USB001
  • 電子負荷(電流を流すなど負荷をかける場合は必要)
  • PC(Windows OS入り)
  • テスター(電圧確認用)
  • USB A-microBケーブル(PCとUSB PD評価ボード接続用)
  • ファイル/ソフト類
    • STM32 ST-LINK utility(フラッシュライターソフト Windows用)
    • X-CUBE-USB-PD(USB PDライブラリ)
    • シリアル通信ができるターミナルソフト(TeraTermなど)

P-NUCLEO-USB001RSなどの電子部品通販で購入できます。価格は6000円程度とこの手の評価ボードとしてはお手頃な価格で貧乏趣味サラリーマンにも手が届く、STMicro様様…。電流を引いて充電器に負荷をかけたいのであれば電子負荷も追加で必要です。

サンプルソフト書き込みと試験用のPCにはWindows10(64bit)入りPCを使用しましたが、ST-LinkとROMライタソフト、RS-232Cターミナルソフトが動作するものであれば他のOSでも対応できそうです。

 

今回の作成環境にてできること

  • ソース(充電器など)から通知してくるPDO(電源供給能力などの情報)の表示
  • ソースに対して出力電圧のリクエストを送信
  • 追加で電子負荷を接続すると充電器に定電流負荷をかけることが可能

シンク(PCやスマホなどの電源供給側)の機能の一部を模擬することで、USB PD対応充電器の電源供給能力の評価ができるようになります。
一例:こちら(日本語の記事はこちら)ようなUSB PD対応充電器の評価をすることが可能
(リンク先記事においては今回使用する評価ボードそのものは使用していませんが)

P-NUCLEO-USB001とサンプルプログラムの構成自体はDRP(ソースとシンク両方)対応のためソースの機能を模擬することも可能ですが、本記事では取り扱いません。

 

作成手順

  1. ジャンパ設定
  2. フラッシュ書き込み

1.ジャンパ接続

評価ボード内の電源やUART通信用ジャンパを下記のように設定します。必要なジャンパは評価ボードに付属しています。

マイコン基板(下側の基板)

  • CN2(ST-Link):ショート
  • JP5:U5V側の2つのピンをショート
  • JP6:ショート
  • その他:オープン

USB PD基板(上側の基板)

  • JP500:ショート
  • JP501:オープン
  • JP100:1-2ピンショート
  • その他:オープン

マイコン基板とUSB PD基板のCN3(UARTライン用)をジャンパケーブルでクロス接続します。

 

 

2.フラッシュ書き込み
PCと評価ボードのマイコン基板側のmini USBポートを接続します。
次に、ダウンロードしたX-CUBE-USB-PD(USB PDライブラリ)内のSTM32CubeExpansion_USBPD_F0_V1.2.0/Projects/STM32F072RB-Nucleo/Demonstrations/Binary 内にあるbinファイルをUSB PD評価ボード STMicro P-NUCLEO-USB001内のマイコンに書き込みます。STM32 ST-LINK utilityを使用した書き込み手順はこちらなどを参考にしてください。

書き込み後、USBケーブルを一旦外します。

 

操作手順

  1. 電子負荷をUSB PD基板CN12に接続
  2. 評価ボードのマイコン基板側のmini USBとPCをUSBケーブルで接続
  3. ターミナルソフトでポートオープン(下記シリアルポート設定参照)
  4. 評価対象の充電器の電源を入れてUSB Type-Cケーブルで評価ボード USB PD基板CN1(Type-Cコネクタ)と接続
  5. ターミナルソフトから”profile 1″でソースPDO情報を表示(下記コマンド説明参照)
  6. ターミナルソフトから”request 1 *”で出力電圧電流リクエストを送信(下記コマンド説明参照)すると充電器から指定した電圧で出力される
  7. 電子負荷で電流を引く

シリアルポート設定

• COMポート: デバイスマネージャーでSTLink Virtual COM PortのポートNoを確認
• ボーレート: 115200
•データ: 8bit
• パリティ: none
• ストップビット: 1bit
• フロー制御: none

 

コマンド説明

  • ?:ヘルプ
  • profiles <port>:
    • ポートのプロファイルを参照(ソースからのPDO情報もこのコマンドで表示)
    • <port>はUSB Type-Cポート(0か1、今回は1に接続しているので1を指定)
  • status <port>:
    • ポートのステータスを参照
    • <port>はUSB Type-Cポート(0か1、今回は1に接続しているので1を指定)
  • request <port> <profile>:
    • シンクからソースに電源供給のリクエストを送信
    • <port>はUSB Type-Cポート(0か1、今回は1に接続しているので1を指定)
    • <profile>はprofilesコマンドで参照したプロファイル番号

その他コマンドについてはSTMicroの資料UM2051を参照してください。

 

実際に充電器(Aukey CC-Y7)に12V出力をリクエストしてから電子負荷で3A電流を引いた様子

 

参照資料

  • UM2051(Getting started with the STM32 Nucleo pack for USB Type-C™ and Power Delivery)
  • UM2050(STM32 Nucleo pack for USB Type-C™ and Power Delivery with the Nucleo-F072RB board)

 

 

このブログは相変わらずニッチなネタばかりだにゃ

Leave a Reply

Your email address will not be published. Required fields are marked *