PIC32MX220F032B ベースボード (3)

今回作成したベースボードの LPC1114FN28/102 (ICSP プログラマ) 部分と PIC32MX220F032B との接続部分の回路図を下に示します。
前回の回路と違うのは、

  • USB デバイス/ホスト接続のための回路
  • ICSP プログラマ部分との切り離しに対応
  • Pinguino MX220 の回路に一部対応

といった部分です。

前回の回路では、ICSP 書き込みのための PGD/PGC 信号を USB のデータ信号のピンと共用している PGEC2/PGED2 端子 (21/22 番ピン) に接続していましたが、今回は USB アプリケーションが目的なので、21/22 番ピンは USB 専用に使います。
ICSP 書き込み信号は、「ジャンパ・ポスト」と「ショート・プラグ」により、PEGC1/PEGD1 ペアあるいは PEGC3/PEGD3 ペアのいずれかに接続、あるいは全く切り離すかを選択できるようにしています。
MCLR ピンに対する ICSP 書き込み器側のリセット信号も切り離し可能にしてありますから、いったん Pinguino 互換ブートローダなどを書き込んだら、USB オンリーでも使えるようにしてあります。
USB デバイスとしても USB ホストとしても使えるように「標準」B タイプのレセプタクルと標準 A タイプのレセプタクルとを両方実装してます。
ミニ USB あるいはマイクロ USB であれば「AB」タイプのレセプタクルひとつで済ますことができますが、ユニバーサル基板に手配線のレベルでは、機械強度的にも「標準」タイプしか選択の余地はありません。
UART1 の入出力は、AC97 コーデックとの接続の実験で使っている 16/24 番ピンから RS232C インターフェースに接続しています。
Pinguino MX220 の UEXT コネクタ経由の信号と互換にするには 6/7 番ピンから接続します。
リセット・スイッチとブート・スイッチは Pinguino 互換ブートローダを利用するためのものです。
Pinguino MX220 ボードでは、「BUT」スイッチを押しながらリセット・スイッチを押すとブートローダが起動し、リセット・スイッチのみを押すと (ユーザ・プログラムが書き込まれていれば) ユーザ・プログラムが起動します。
ここでは、スイッチをふたつ同時に押す手間を省くために、「BOOT」スイッチのみを押せば、リセット/BUT スイッチ同時押しの効果が得られる回路にしてあります。
ただし、この回路が正常に動作するためには 16 番ピンに接続される外部回路のインピーダンスが高い必要があります。
また、アプリケーション・プログラムで「BUT」スイッチの状態を読み込む必要がある場合には、リセット連動を外す必要があります。
iruka さん作成の Pinguino 互換 HID ブートローダ「HIDbootX」(→こちら) を書き込み、Pinguino X.3 IDE の LED チカチカ・プログラムを正常に実行できました。
ただし、LPC1114 を使った ICSP プログラマでは、DEVCFG0 コンフィギュレーション・ワードを特別扱いしないので、HEX ファイルの該当部分を修正あるいは削除する必要があります。
「HIDbootX.zip」ファイルを解凍してできた「HIDboot.hex」ファイルの 142 行目の

    :040bfc00f6ffff7f82

を削除します。