スイッチマトリクス:SWMを持つLPC8xxは、入出力ポートとマイコン周辺回路信号を柔軟に設定できる特徴があります。しかし、デバッグに重要なSWDIO/SWCLK信号の誤ったポート割付けなどが原因で、下図に示すLPCXpresso IDEデバッガと接続できないエラーが発生します。今回は、この対処方法を示します。
LPC810対処
トラ技2014年2月号p85に、LPC810の同様問題への対処方法が掲載されています。SWMをもつマイコン特有の問題かもしれません。
LPCXpresso824-MAX対処
私の場合は、SWMとは関係のないLPCXpresso824-MAXのシステムクロック周波数を変更するプログラムでこの現象が発生しました。このエラーが発生すると、mbedプログラミングもできなくなります。因みに、mbedのファームウエアは、最新版Version0221 2015/03/03です。回復するまでは、LPC824への変更ができない状態となります。
この状態からの回復手順は、以下です。
- 念のため、mbedサイトを参照し、mbedファームウエアを最新版に更新完了しておく
- LPCXpresso824-MAXをパソコンと接続後、ボードのISPボタン押下げ後、リセットボタンを押す。リセットボタンを放し、最後にISPボタンを放す(→ ISPモードでデフォルトピン割付に回復)
- LPCXpresso824-MAXとパソコンを再接続し、LPCXpresso IDEを起動
- LPCXpresso IDEのProgram Flashアイコンをクリックし、Mass eraseを実行(原因プログラム消去)
今回の原因が、SWMに起因するか、または、main実行前に設定すべきシステムクロック周波数変更を、誤ってmain実行後に行ったことに起因するかは不明ですが、同じプログラムで現象が再現しますし、上記手順で回復しました。
LPCXpresso824-MAXとLPCXpresso IDEのデバッガ接続ができない時は、ご参考ください。