11月25日発売 書籍『Arduinoと3Dプリンタでロボットを作ろう』を出させて頂きました!

【電子工作 / 自作基板】CH217Kを使ったUSB電源保護ボード『USB Power Toggle』の製作!

電子工作で自作基板を製作するようになり、こんなのあると便利なのに・・・と思うものはたくさんあります。

そのような自分の環境であると便利なものを自作基板として主に製作しているのですが、Twitterで@74thさんが面白そうなものを製作されているのを発見しました!
過電流を検知してUSBデバイスを保護するボードです。

USBデバイスの電源保護で使えるICチップはいくつか手元にあり、これまでブレッドボードを使いテストしたことがあるのですが・・・
なるほど、そういう使い方も便利だな!
ということでアイデアを頂き自分仕様にアレンジしたボードを製作してみることにしました。

自作基板の製作ではパーツ実装後に電源を投入する時が一番緊張します。
データラインのブリッジなどであれば後から修正すればいいのですが、電源ラインに関係する部分、特に短絡があると最悪の場合その先にあるマイコンやICチップの破損、また出火や煙が出たり・・・結構怖いものです!

パーツ実装後初めて電源を投入する際はテスター等を使い短絡チェックを行うわけですが、電源ラインのテストパッドが無く面倒になることもあります。

そこでUSBの電源ラインを監視・保護することが出来るボードがあると便利なことから製作してみることにしました。

CH217Kを使ったUSB電源保護ボードの製作!

USB電源を監視・保護出来るICチップはいろいろとあるようですが、今回製作したボードではWCH CH217Kを使いました。
CH217Kは秋月電子さんでも扱われているICチップで安価で入手することが出来ます。

USB電源やマイコンを扱った自作ボードを製作する際に、その電源まわりには逆電流防止用のダイオードを入れたり過電流防止用のリセッタブルヒューズを入れたりすることが多いと思います。
私の場合趣味レベルの回路設計なのであまり詳しいことは語れませんが、マイコンまわりのUSB電源ラインには500mA程度のリセッタブルヒューズを使うことが多いです。
定格500mAのものでは実測的に800mA前後で動作してくれるので、マイコンを扱ったUSB電源ラインの保護目的として入れています。

またショットキーバリアダイオードを使うこともあります。
ショットキーバリアダイオードは一般的なダイオードと比べ電圧降下が低いとされていますが、0.3~0.5Vほどの電圧降下が発生してしまいます。

このあたりの役割を上手く担うという意味で、CH217Kは簡単・便利に使えるUSB電源保護用のチップになるかと思います。

USB電源ラインの保護チップ CH217Kについて!

冒頭でご紹介した@74thさんの投稿を見て手元にあったCH217Kを使いブレッドボードでいろいろとテストしてみました。

CH217KはUSB電源ライン保護のためのUSBスイッチICとなります。
パッケージはSOT23となるため、ブレッドボード等を使いテストする場合はSOT23-6のピッチ変換基板(DIP化基板)が必要となります。

過電流保護機能・過熱保護機能に加え低電圧誤動作防止機能を備え、動作電圧は2.7V~5.5Vとなっています。
またISETピンに接続する抵抗値により出力電流を400mA~2.7Aに制限する機能も備えています。

素人の回路設計としては便利に使えるUSB電源保護チップになるかと思います。
詳細については別記事であらためて詳しく書こうと思いますが、簡単にCH217Kについて見ておきます。(以下記事追記しました)

【電子工作】USB電源ライン保護のスイッチIC『CH217K』を使ってみる!

CH217Kは、VOUT・GND・FLAG・EN・ISET・VINの6ピンのICチップです。

参考 CH217Kデータシート秋月電子通商

基本的な使い方は、USBの電源保護チップなのでVIN端子にUSB端子の電源(VBUS)を接続しVOUTへの出力をENピンで制御するという使い方になります。

ENピンがLOWの場合にUSBのVBUS電源がVOUT側に出力され、ENピンがHIGHまたはVIN側の電圧がVOUT側の電圧より低い場合には出力を遮断するスイッチング動作をします。
またISETピンに接続された抵抗値により出力電流を制限(400mA~2.7A)することが出来ます。

MEMO
ISETに接続する抵抗は必須で、フローティング状態ではCH217Kが上手く動作してくれません!

仮に上記接続でISETピンに30kΩの抵抗を接続すると出力電流を2.0Aに制限することが出来ます。(ISETの抵抗値はデータシートを参照)
2.0A以上の電流が流れるとCH217KのスイッチングがOFFとなりVOUTへの出力が停止します。
これがCH217Kの基本的な動作となります。

そしてISETで制限をかけた以上の電流が流れる、または短絡や連続導通電流が大きくCH217Kチップが過熱した場合は保護機能が働きスイッチングがOFFとなり遮断されます。
その際の状態はFLAGピンでモニターすることが出来ます。

過熱を検知、または過電流を検知した場合にはFLAGピンがLOWレベルに落ちます。

これら機能を使いスイッチを押すごとにENピンの状態を反転させ電源出力をON/OFF出来るように、またFLAGピンから状態異常を検知するとENピンをHIGHにして強制的に電源供給をOFFに出来るようにマイコンを使い制御するというボードを製作しました。

回路構成

全体の回路構成は非常にシンプルです。
入力側(アップストリーム)のUSB端子と出力側(ダウンストリーム)のUSB端子の電源ライン(VBUS)にCH217Kを挟み、その制御をマイコンで行うというものです。
制御するマイコンはATtiny202を使いました。

スイッチ操作により出力電源のON/OFFの切り替えを行え、短絡や過電流・過熱時にはエラーランプを点灯させ強制的に電源を遮断、再度スイッチを押し異常が検知されない場合にのみ電源をON状態に復帰出来るというものです。

ブレッドボードでのテストでは問題なく、便利に使えそうだったのでこれをPCB化しました。

注意
動作テストは何度も行いましたが、素人設計のため自己判断で参考にして下さい!

基板設計

パーツ点数はそれほど多くないのでボードサイズの選定の自由度は高かったのですが、サイズ確認のため3Dプリンタでいくつか試作をして使いやすいサイズ感(30mm×30mm)のボードサイズにしました。

この基板単体で使ってもいいのですがCADの試作である程度厚みがあった方が使いやすかったので、スペーサーを挟みトッププレート(PCB)を取り付け出来るようにしました。

JLCPCBに基板を発注

JLCPCBに発注し基板を製作しました。

基板データ(ガーバーファイル)をダウンロード出来るようにしておきます。
このサイズの基板なら面付けしても料金はほぼ変わらないため、カット面が綺麗になるよう個別基板データとしています。
興味ある方は製作してみて下さい!

JLCPCBに発注する際の選択項目は特記すべきところはありませんが、[PCB上のマーク]の[マーク除去]は無料オプションなので余計なシルクがプリントされる事を避けるために選択しておいた方がいいと思います。
PCBカラーはお好みで選択して下さい。

慣れていれば手はんだでの実装も十分可能な基板ですが、リフローで実装するためにステンシルも発注しました。

JLCPCBのステンシルは指定しないと結構大きなサイズで届いてしまい実装の際に面倒となるのでサイズを指定しておいた方がいいですね。
ボードサイズが30mm×30mmなので60mmくらいのサイズがあれば十分だと思います。
今回100mm×100mmサイズに指定しで発注しました。(サイズ指定は無料で出来ます)

基板料金が2種(各5枚)で6ドル、ステンシル料金が7ドル、配送方法にOCS Expressを選択し送料が約8ドルとなり今回の発注ではトータル約21ドルとなりました。

ステンシルを発注しない場合は配送方法にOCS NEP(約2ドル)が使えるのでトータルは8ドルほどで製作することが出来ます。

JLCPCBの基本的な基板発注やステンシル発注方法に関してはこちらの記事で詳しくまとめています。
あわせて見て頂ければと思います。

【電子工作】はじめての基板製作!JLCPCBさんに基板を発注してみました。ユーザー登録・データ納品・基板到着までの一連の流れをご紹介!
【JLCPCB】初めてステンシルを使ったリフローを行ってみました。JLCPCBでステンシルを発注する手順などを紹介!

パーツの実装

配送方法にOCS Expressを選択し発注から8日ほどで手元に基板が届きました。
安くてほんと早いですね、JLCPCBさん!

パーツ数が少なく実装も慣れてきたので手はんだでもよかったのですが・・・
ステンシルを使いリフローで実装した方が圧倒的に楽で綺麗に実装することが出来ます。

パーツの実装はMHP50というミニリフロー装置を使いました。
いつも愛用している非常に便利なリフロー装置です。

【電子工作 / PCB】ミニリフロー装置『Miniware MHP50』を使ってみる!加熱性能や安全設計はMHP30から全て引き継がれ使い勝手がさらに向上した便利なリフロー装置です

ブレッドボードのテスト段階で便利に使えそうだったので2個作りました。
実装は一発OK、綺麗に実装出来ました!

プログラムの書き込み

パーツの実装が出来たら最後にプログラムの書き込みです。
CH217Kを制御するプログラムをATtiny202に書き込みます。

制御プログラムはこちらからダウンロードして下さい!

ATtiny202へのプログラムの書き込みは、ボードのUPDI端子から行います。
UPDIプログラマが必要となりますが、同じAVRマイコンとなるArduinoから書き込むことも出来ます。

私は自作のUPDIプログラマを使って書き込みました。

【電子工作 / PCB】CH340Eを使ったSerial UPDI(シリアルUPDI)書き込みボードの製作!
【電子工作 / PCB】ポゴピンが付いたUPDIプログラマを製作しました!

UPDIの書き込みには、USB-シリアル変換モジュールを使ったSerialUPDIによる書き込みやArduinoにjtag2updiを書き込む方法があります。

少し話が長くなってしまうのでこちらでは割愛させて頂きますが、以下記事で詳しく解説しているので自身の環境に合った方法で上記プログラムを書き込んで下さい!

【電子工作 / Arduino】ATtiny202をArduino IDEで使う環境メモ!

動作確認

失敗基板を使い動作テストをしてみました。
短絡を検知し電源供給を強制的にストップ出来ているので成功です。
PCと本ボードを経由して接続したマイコンボードへの書き込みも問題なく出来ました。

Raspberry Pi PicoのようにBOOTスイッチを押した状態でUSBケーブルを差し込みDFUモードにする、そういった場合にも手元のスイッチで電源のON/OFFが出来るので便利ですね!

使用パーツ一覧

今回使用したパーツ一覧です。
メインのPCBを単体で使用する場合は必要ありませんが、トップパネルを取り付ける場合はM2ビスとスペーサーが必要となります。

取り付けるスペーサーの高さによりビスやタクトスイッチ(SW1)の高さが変わってきます。
製作したものは5mmのスペーサーを使い、それに合わせてタクトスイッチは10mm高のものを使っています。

パーツ定数入手先
コンデンサ(0603)C1 10μF
C2/C3 100nF
AliExpress
抵抗(0603)R1/R3 5.1kΩ
R2 ※30kΩ
R4/R5 1kΩ
AliExpress
USB端子J1/J2 Type-C端子AliExpress / 秋月電子
LED(0603)LED1 通電ランプ(緑)
LED2 エラーランプ(赤)
AliExpress
タクトスイッチSW1 12mm×12mm×10mm)(SMD)AliExpress
ICチップU1 CH217KAliExpress / 秋月電子
U2 ATtiny202(SOIC-8)AliExpress / 秋月電子
その他M2×5mmビス ×8
M2×5mmスペーサー ×4
ーーー
MEMO
抵抗R2は出力電流の制限値を決める抵抗となります。
30kΩとし電流制限値は2.0Aとしています。
500mAや1.0Aなど制限値を変えたい場合は上記CH217Kのデータシートを参考に抵抗値を変更して下さい!

ハブ機能を付けた4ポートタイプのものも作ってみました!

製作してみて便利に使えることから、ハブ機能を付けた4ポートバージョンのものも製作してみました。

こちらは別記事で後日詳しくご紹介できればと思います。(追記しました)

【電子工作 / 自作基板】4ポートのハブ機能が付いたUSB電源保護ボード『4Port USB Power Toggle』の製作!

最後に!

素人設計としてはコンパクトで便利なボードになったと思います。

普段電子工作でマイコンのDFUモードや接続されたセンサーのリセットなどでケーブルの抜き差しが必要だったものがスイッチ操作で出来るようになったのは便利で、自作基板製作のパーツ実装で短絡チェッカー的に使えるのも大変便利です!

何かの参考になればと思います。

1 COMMENT

コメントを残す