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

【自作基板】実装済み基板でも安全に検査!USB Type-C ブリッジチェッカーの製作【①全体構成を考える】

電子工作で自作基板の製作を始めて3年ほどが経ち、ある程度のパーツ実装は自身で行えるようになってきました。
しかし、それでもなおUSB Type-C端子のはんだ付けは、最も神経を使う作業の一つです!

こちらは、USB 2.0対応のよく使われている16ピンタイプのType-Cレセプタクルです。
どのピンがブリッジ(短絡)しているか分かりますか?

この端子のパッド幅はわずか0.3mm、隣のパッドとの間隔も0.2mmしかありません。
これらが0.5mmという極小ピッチで並んでいるため、手はんだでの実装はそこそこ練習しないと非常に難しいものとなります!

また、ステンシル(メタルマスク)を用いたリフローによる実装であっても、はんだ量やマスクのズレなどによって隣り合うピンが繋がってしまう、いわゆる「はんだブリッジ(短絡)」や、逆にピンが浮いてしまい接続されていない「はんだ不良(未接続)」といった不具合がよく発生します。

厄介なのが、端子が密集しているため目視だけではこれらのブリッジや不良をなかなか判断しにくいという点です。

そして、例えばデータライン(D+ / D-など)のブリッジであれば、「うまく回路が動かないな?」でまだ済むかもしれません。

しかし、VBUS – GND間がブリッジして短絡状態になると最も危険です。
基板(回路)の破損はもちろんのこと、接続しているPCや電源機器にも悪影響を与える恐れがあります。

そのような最悪なケースだけは絶対に避けたいと思い、以前、電源ラインの短絡を検知出来る保護ボードを製作したことがあります。

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

このボードは、電源ラインの短絡を検出するとエラーを表示し強制的に電源をオフに出来るため、自作基板製作において電源ライン(VBUS)の短絡チェッカーとしても非常に役立っています!

上記ボードを製作して以降、「さらにType-C端子の他のピン(D+/D-, CC, SBUなど)の状態も自動でチェック出来るものがあれば便利なのに!」と前々から考えていました。

それを実現するためには、部品を全て実装した後の完成基板の検査において、後段に接続されているICチップや電子パーツなどに影響を与えないよう、より慎重なチェックが必要となりそうです。

そこで今回、Type-C端子以降の既に実装済みパーツや回路に影響を与えず、またそれら既に接続されている回路により誤判定が出ないような構成で、USB2.0対応のType-Cレセプタクルの全ピン(16ピン)の短絡をチェックすることを目的に、Type-Cブリッジチェッカーの製作を始めました。

USB2.0 Type-C 短絡・ブリッジチェッカーの製作

自作基板製作において、パーツ実装後のブリッジ(短絡)やはんだ不良のチェックは必須工程となります。
特にその中でも、ピンが密集しているType-C端子の不具合は、高い確率で発生してしまいます。

このチェックを自動で行えるツールがあれば非常に便利となり、何より検品の作業効率が劇的に向上すると思います。

今回の製作における最大の焦点は、「パーツ実装済みの完成基板」を対象にチェックを行うという点です。

Type-Cコネクタだけを先に取り付けた状態の基板チェックであれば話は簡単なのですが、全ての部品をリフロー等で実装した後の基板では、「端子のブリッジ」と「正常な回路としての導通」を切り分けるという難しさがあります。

すでにICチップやダイオード、コンデンサといった電子パーツが実装された状態の基板では、単にテスターのように導通を測るだけでは不十分です。

チェックのために端子にかけた電圧が後段の回路を破損させてしまうリスクを排除しつつ、接続されている回路による「誤判定」をいかに防ぐかが問題となりそうです。

Type-C(USB-C)コネクタのピン配列

USB Type-C(USB-C)コネクタは、どちらの向きにケーブルを挿し込んでも使えるように点対称って言うのかな?リバーシブルに各ピンが配置されています。

フル結線のUSB-Cレセプタクルには24ピンが備わっていますが、全てを使用する必要はなく、USB2.0対応のものでは16ピンタイプのものがよく使われます。(USB3.0のTX/RXがカットされている)

オス側の表面・裏面のVBUSとGNDが1つのパッドになっているので、実質12ピンのフットプリントのものが使われることが多いと思います。

今回、このUSB2.0対応のType-Cコネクタの短絡チェッカーを製作しようと考えています。

Type-C端子の各ピンの後段には既に回路が接続された状態なので、どのようなチェック方法が良いのかまず考えていきます。

半導体(IC)を保護し、回り込みを防ぐには?

Type-C端子のデータライン(D+ / D- ピン)は、マイコンやシリアル変換チップといったICチップに接続されます。(今回USB2.0対応のチェッカーとして考えているので、TX/RXは除外)

半導体(特にCMOS IC)のI/Oピンやゲート部分には、静電気(ESD)や過電圧から内部回路を保護するために、I/Oピンに対して電源(VDD)側へ、またグランド(GND)側からの両方向にクランプダイオードが接続され保護されているものが多いと思います。

通常、これらのダイオード(シリコン)が導通し始めるのは約0.6V〜0.7Vからです。

ICチップの電源がオフ状態で、短絡チェックのために仮にI/Oピンにこれ以上の電圧がかかった場合、GPIOピン → ダイオード → VDDという経路で電流が流れ込み、IC内部の他の回路に供給され悪影響を与える可能性があります。
GND → GPIOピンの経路でもまた同様です。

チェックの際の電圧をこの閾値より低い電圧で測定することで、IC内部に電流が流れ込むのを防ぎます。

これにより、ICを破損させるリスクを排除し、同時にICを経由した電流の流れによる誤判定を回避しようと考えています。

電源ライン(VBUS / GND)間の導通をどうするか?

VBUSラインには、逆流防止用のショットキーバリアダイオードが直列に入っていることが多く、その先には大きな容量のコンデンサやパスコンなどが控えています。

ショットキーバリアダイオードの順方向電圧(Vf)は、約0.3V前後です。
チェック電圧がこのVFよりも高い電圧になるとダイオードを通過するため、後段回路によってはGNDピンなどと導通していると誤判定にもなってしまいます。

このVfよりも低い電圧で測定することで、ダイオードを「絶縁された壁」として扱い、またその先にある大きなコンデンサに充電が始まるのを防げます。

また、ダイオードが入っていなく後段にICチップやトランジスタといったパーツに接続される経路になっている場合も同様で、上記項目によりチェック電圧を低く設定していれば問題になることはないと思います。

さらに、VBUSやGNDラインにはプルアップ抵抗やプルダウン抵抗が入っていることが多いと思います。

この抵抗を介してVBUSまたはGNDと接続されているので誤判定が出そうですが、ピン間の電圧をマイコンを使いADCで読み取るためその閾値を設ければ、数kΩ以上の抵抗を介した導通なのか?、または短絡によるほぼ0Ω抵抗なのか?で判断しようと考えています。

「正規の抵抗」と「はんだブリッジ」を識別する

Type-C規格のCCピンには、基板の役割に応じて数kΩから数十kΩのプルアップ抵抗またはプルダウン抵抗が接続されています。

これらの抵抗を経由してVBUSまたはGNDと接続されていることにより、単なる導通チェックでは、VBUS – CC間、またはCC – GND間のショートと見なしてしまう可能性があります。

これも先ほどの項目同様、ADCの返り値に閾値を設けることにより、「ほぼ0Ωのはんだブリッジ」と「数kΩ単位の正規の抵抗」を明確な数値差として識別し、コネクタ足元の純粋なブリッジだけを検出しようと考えています。

USB2.0 Type-Cレセプタクルの全ピンをチェック

以上を想定して、測定電圧を0.2Vに設定しType-C端子の各ピンに印加して隣接するピンへの漏れ電圧や対面ピンへの到達電圧をADC(アナログ・デジタル変換)で判定するという方向性で進めることにしました。

ここでもう一度、ターゲット(チェック対象基板)となるコネクタの構造を整理しておきます。
今回チェック対象とするUSB2.0対応の16ピンレセプタクルのピン配置(フットプリント)がこちらです。

両サイドのGNDピンやVBUSピンは、ケーブルをどちら向きに挿しても給電出来るように、基板上で共通ピン(結線済み)として設計されているのが一般的です。

また、データラインのD+とD-についても、リバーシブル動作を担保するために基板上でペア同士を接続します。

これらを踏まえると、ブリッジ(短絡)状態をチェックすべき対象は、VBUS / GND / CC1 / CC2 / D+ / D- / SBU1 / SBU2 の実質8系統のピン間でのチェックということになります。

しかし、Type-C端子の実装において注意すべき不具合は、ピン同士が接続されたブリッジだけではありません。

はんだ不良による「オープン(未実装・はんだ浮き)」も結構な確率で起こり、こちらの方が目視では分かりにくい非常に厄介なものとなります!

見た目には綺麗にはんだ付けされているように見えても、実際にはリードがパッドに届いていなかったり、表面だけはんだが乗って導通していなかったりする状態です。

例えばこれがD+ピンやD-ピンで発生すると、「ケーブルをある向きで挿すとPCに認識するのに、反対向きに挿すと認識しない」という、非常に切り分けの難しい不具合を引き起こします。

またCCピンでも同様です。
CCピンは、CC1とCC2の2本が対に配置されていますが、このうち1本がはんだ不良でオープン状態だと、これもケーブルの向きを変えると電源が全く供給されないといった不具合に繋がります。

さらにVBUSとGNDピンも左右に配置されていて、これは1本欠けても動作自体は問題ないと思いますが、許容電流の低下やUSB PDなどで大きな電流を流す際に残ったピンに集中し発熱などのリスクが発生する可能性もあります。

今回製作を考えているチェッカーでは、隣接ピンとの短絡チェックを行うと同時に、表裏用のピンが正しく結線されているかの「オープンチェック」も行えるように考えています。

上記8通りでのチェックだけではこのオープン状態のピンの把握が出来ないため、以下12ピン全てでチェックを行う構成で進めています。

これで16PタイプのUSB2.0レセプタクルで、ブリッジおよびオープン状態のチェックが行えると思います。

測定電圧を0.2Vとし、返り値をADCで判定する

上記を主な全体構成で考え、全てのチェックをマイコン(MCU)を使って自動で行う予定です。

12ピン全てに対してチェック電圧を印加する「入力ピン(緑)」を接続し、同時に隣接するピンからの返り値(導通具合)を受け取る「出力ピン(青)」も配線する必要があります。

マイコン側でそれぞれのラインは切り替えればいいので、つまり最低でも12本のI/Oピンが必要となり、さらにそれらのピン全てがADC機能を持っている必要が出てきます。

しかし、これだけ多くのADCピンが使えるマイコンチップはなかなか選定が難しく、回路設計のハードルが上がってしまいます。
そこで、アナログマルチプレクサ(MUX)を使うことにしました。

アナログマルチプレクサは、スイッチのように好きなチャンネルを選んで接続することが出来るため、複数のピンの状態を順番に切り替えて読み取ることができます。

MUXを制御するのにある程度のI/Oピンの数が必要になりますが、マイコン側の検出用ADCピンは1本のみで出来ることになります。

今回、このMUXを「チェック電圧印加用」と「電圧測定用(マイコンのADCピンへ)」の2台を使用し、限られたマイコンのピン数でType-C端子の全12ピンのスキャンを可能にする構成で考えています。

 

あと駆動方法をどうするか?
ハンディタイプのチェッカーとして仕上げるには、コイン電池(CR2032等)のような小型電源で駆動出来れば、使い勝手も格段に良くなりそうです。

当初は、低消費電力でコイン電池の3.0Vでも駆動可能なATtinyシリーズのマイコンを候補に考えていたのですが・・・

しかし、2つのマルチプレクサICの制御に加え、ディスプレイの搭載や測定スイッチ、さらにLEDインジケータなどを盛り込むとなると、どうしてもI/Oピンの数が不足してしまいます。

そこで試作段階では、ひとまず豊富なGPIOピンが使えるRaspberry Pi Pico 2を使って行い、上記構成で正確な判定が可能か検証することにしました。

そして、Pico 2のPWM出力を使用して簡易的に0.2Vを作り出す構成でテストしてみたのですが・・・

実際に検証してみると、PWMによるパルス状の電圧ではADCの計測値が瞬間的に大きく振れてしまい、安定した判定が難しいことが分かりました。(当然ですね)

特に今回は「ブリッジによる数Ω」と「規格抵抗によるkΩ」を判別しなければならないため、0.2Vという微小な電圧においてノイズや揺らぎは致命的です。

そこで、よりフラットで安定した基準電圧を供給するために、専用のDAC(デジタル-アナログ変換)を追加することにしました。

これにより、変動のない正確な0.2Vをマルチプレクサを経由してType-Cコネクタピンに印加でき、隣接するピンからの返り値をマイコンがADCで読み取る、そしてソフト側で閾値を設け判定を行うといった全体構成となりました。

ブレッドボードでの試作回路では、上手く短絡・オープン状態のチェックが出来るところまで確認が出来ました。

最後に!

今回は、実装済み基板でも安全かつ正確にType-C端子をチェックするための構成を考えてきました。

これまでType-C端子の基板実装は数多く行ってきましたが、「はんだブリッジ」や「はんだ浮き」を通電前に自動で、しかも安全にチェック出来るようになれば、自作基板製作の作業効率が劇的にアップし、安心感も格段に変わるはずです!

現在は全体構成が固まり、ブレッドボードでの試作回路やプログラムのベースがようやく出来上がった段階です。

今後は駆動方法やマイコンの最終選定をさらに詰め、手軽に使えるコンパクトなハンディタイプのType-Cチェッカーとして仕上げていきたいと考えています。

少し長くなりましたので、今回はここまでにしておきます。
次回は、全体構成や基板設計などの話を中心に書いていこうと思います!

(次回へ続く…)

コメントを残す

メールアドレスが公開されることはありません。