PIC32MX220F032B ベースボード (1)

PIC32MX220F032B には USB OTG モジュールが内蔵されていて、USB デバイスにも USB ホストにもなれます。
しかし USB ホストとして機能するためには接続する USB デバイスに対して電力を供給する能力が必要とされます。
そこで、USB 関係の実験のために外部電源で動作するベースボードを新たに作りました。
まだ「自前」の USB デバイス/ホスト関連プログラムはないので、iruka さんの Pinguino 互換 HID ブートローダ「HIDBoot.hex」を書き込んで動作することを確認しました。 (ただし、DEVCFG0 コンフィギュレーション・ワードに対する hex レコードの削除が必要)
作成した基板の写真を下に示します。

サンハヤト製の ICB-97-CK2 基板を使用しています。
この基板は秋月「B 基板」2 枚分の大きさで、9 ピン DSUB コネクタを 2 個実装できるバターンを持ち、EIAJ 極性統一型 DC ジャック (電圧区分 2) が付属しています。
写真左側の 600 mil 幅の 28 ピン DIP IC が LPC1114FN28/102 で、中央の 300 mil 幅 16 ピン DIP IC がチャージポンプ付き RS232C トランシーバ IC の ICL3232 で、右側の 300 mil 幅 28 ピン DIP IC が PIC32MX220F032B です。
電源部および RS232C インターフェース部の回路図を下に示します。

電源部の外部電源と USB バスパワーとの自動切換え回路は、Arduino で使われている回路を簡略化したものです。
Arduino では OP アンプ (LM358) をコンパレータとして使って P-MOS FET のゲートに与える電圧をコントロールしていますが、ここでは簡単のため DC ジャックのスリーブ側のスイッチ・コンタクトを使って DC プラグが挿入されていない場合にゲートが GND に落ちるようにしています。
P-MOS FET のソースとドレインの向きが通常の場合と「逆」になっていますが、これはこれで正しく、「ボディ・ダイオード」を積極的に利用しています。
したがって、P-MOS FET としてはボディー・ダイオードの存在が明記され、流せる電流も規定されているものを使う必要があります。 (あと、スレシホールド電圧の絶対値が 5 V 以下であること)
ここでは、ちょっと容量が小さいのですが、手持ちの VP0101T (TEMIC/Siliconix) を使っています。 (上の写真では小さな緑色の変換基板上に載っている)
外部電源と、USB バスパワーが両方存在する場合に P-MOS FET のボディー・ダイオードで USB バスパワー側への逆流を防ぎ、外部電源がなく USB パスパワーのみの場合は P-MOS FET のゲートを GND に引っ張って P-MOS を ON させて電圧降下を減らしています。
USB パスパワーのみの場合は、5 V レギュレータの入力側には電源が存在せず、出力側に外部から電圧が加えられる状態となり、通常の使用状態とは異なります。
内部回路的には、出力側から入力側へ、あるいは出力側からグラウンドへ向かって大電流が流れるようなパスはないので、寄生素子等によるラッチアップを起こさない限り問題はありません。
出力側に外部から電圧を加えるということは、逆挿入 (mirror-image insertion) に相当するので、一時的な逆挿入に対する保護をうたっている LM2940 (NS) などを使うと安心です。
RS232C インターフェース IC としては、チャージポンプ内蔵でトランシーバを 2 組内蔵した、3.3 V 動作可能な一般的なものを使っています。
具体的には、秋月で 2 個入り 200 円で販売している Intersil ICL3232 を使っています。
2 組の RS232C トランシーバは、LPC1114 と PIC32MX とで 1 組ずつ分け合っています。
LPC1114 側のフラッシュ書き込みのためには、DTR 入力および RTS 入力に対してもインターフェースが必要ですが、これらはスピードを気にする必要もなく、簡単のため「デジタル・トランジスタ」を使っています。
DTC144E の入力のマイナス側の絶対最大定格は -10 V で、単に数値だけを見れば RS232C 規格上の最大値 -15 V に届きません。
しかし、デスクトップ PC で ±12 V 電源で 1488 ドライバを使っている場合には -12 V より絶対値が大きくなることはありませんから、実用上は問題ありません。
ICSP プログラマとして使っている LPC1114FN28/102 と、書き込み対象である PIC32MX220F032B の部分の回路図を下に示します。
説明については次回に回します。