TIPS 2016年3月28日

SAM DマイコンでSETDISビットを1にしてSWDが無効になったとき

SAM D10,D11マイコンでは、PMモジュールのEXTCTRLレジスタのSETDISビットに1を書き込むと外部リセットが無効になります。

外部リセットはSWDの書き込みやデバッグに必須なので、うっかりSETDIS=1とするコードを書いてしまうと、外部からのリセットを受け付けず、SWDが使えなくなる場合があります。(ちょうどAVRマイコンでリセットピン無効のフューズビットを書き込んでしまったような状態です)

このとき、次の手順でSAMマイコンを復活させる可能性があります:

1. RSTピンとSWDCLKピンを何らかの方法でGNDに落とした状態で電源を投入します。

2. RSTピンをGNDから離します。RSTピンの内部プルアップにより、RSTがHighになり、リセットがかかります。この時、SWDCLKがGNDに落ちていると、拡張リセットモードになってMCUが起動します。

3. SWDCLKをGNDから離します。

4. この状態でAtmel ICEを接続し、Erase Chipコマンドによりプログラムを消去します。うまく消去できれば、SETDIS=1の状態になることはありません。

この記事に関連する商品

この記事をシェア

最近のTIPS