こんにちは、kaedeです
前回SAMマイコンを使ってLピカをしましたが、書き込みが安定しない場合があったので、確認を行いました。補足としてブログにもあげておこうと思います。
原因と対策
前回の記事で書き込みの際には、電源とSWCLKとSWDIOのみを接続していました。
SWDのSWDIOピンはデバッガー接続を検出された際に起動時でも自動で切り替わると書かれているため、リセットピンを接続しなくても問題ないかと思っていましたが、MPLAB X IDEから書き込みがうまくできる時とできない時がありました。
外部リセットも接続しておけばデバッガーから確実にリセットがかかるはずなので、その部分の接続も追加することにしました。
外部リセットピンをデバッガーに接続しますが、MPLAB SnapのマニュアルのSWD接続にはMCLRと書かれていました。Master Clear Pin External Reset (MCLR)はMicrochip?PIC?っぽい書き方なんでしょうか。ここをSAMマイコンのリセットピンにつないであげると書き込み時にMPLAB X IDEからリセット信号を送ってくれそうです。
開発基板側は実はリセットピンも引き出していたので、簡単に配線を追加して動作確認できました。外部リセットピンを追加した後は安定して書き込みできていそうなので、これが正しそうです。
改めてデータシートを見てみるとProgramming時は外部リセットを使うような記述になっていました。接続していない場合でも書き込みできる時もあったため、詳細は不明ですが、ひとまず外部リセットも接続しておけば安心して開発できそうです。
参考資料
ArmのSWDに関する資料
「ARM Debug Interface v5 Architecture Specification」
STM32シリーズでSWDから操作できなくなった時の対処法https://qiita.com/toyoshim/items/a14557127a636c8c4153