今回、ATtiny404を使うにあたり、IDEはAtmel Studio7.0でICEとしてはPICKIT4にて開発を進めたいと思います。
事前調査する限り、Atmel Studio7.0にPICKIT4は対応しており、ATTiny404もUPDIにてオンチップデバッグや書き込み対応ができるとなっています。
もちろん、PICKIT4もUPDI対応ということです。
PICKIT4はAtmel Stusioで使える?!
コーディングを終えたので、早速デバッグをしたいと思いつつ、いそいそとPICKIT4をPCへ接続。ターゲット基板にUPDIに必要な3線(VCC,GND,UPDI)を接続。Atmel Studioの「Start Debugging ▶」を実行するも、しばらく待って、タイムアウトエラーになる。
何度やってもダメで、ICEの設定がPICKIT4ではなく、シミュレーターになっているのでは?と確認するも、PICKIT4になってる。
ターゲット間との接続が間違っていると思い、回路図とPICKIT4の仕様書を確認するも、問題なさそう。はて?
一度、MPLAB Xで試してみる
ネット上での情報をみるに、同じ現象で困っている人がチラホラ居る。色々、試されている中で、MPLAB Xでプロジェクトを生成してPICKIT4を接続すると、正常にデバッグできる情報があり、こちらも同じ様に試してみた。
但し、閲覧した情報には、MPLAB Xでもv5.25以上でないとUPDI対応がされていないとあった。当方はMPLAB X v5.4だったのでそこは行けそう。
MPLAB Xにはプロジェクトをインポートする機能があり、Atmel Studioのプロジェクトをインポートしてみる。特に問題なくスイスイ進捗し、PICKIT4を接続して、いざデバッグ!・・・ってやっぱりデバッグできない。
ここまでくると、環境要因の香りが漂ってくる。
USBドライバーを確認する
PICKIT4をPCに接続した際、どの様なUSBドライバーが割当たっているのか、デバイスマネージャーで確認。
「ユニバーサルシリアルバスコントローラー」の下にMicrochip社のWindows向けUSBドライバーとして認識されていました。
一見、Microchip社のドライバーなので正しいドライバーが選択されている様に見えるのですが、実はこれが原因でPICKIT4が正常に機能していませんでした。
正しくは、以下の通り、Virtual COM Portとして割り当てされていないと、正しく動作しません。

USBドライバーをどうやって割り当てし直すの?
ドライバーの更新や削除など、色々試しましたが候補になるものが見当たらず、Microchip社のWindows向けUSBドライバーから変更する事ができませんでした。
MPLAB Xでプロジェクトをインポートした際、いくつか更新作業が出来る事に気づき、そこからPICKIT4を更新しました。
より具体的には、MPLAB XのTOP画面上で右下半分(タスクペイン)にバージョンアップの通知が出ていたので、そこからPICKIT4に関わる項目をチェック付記して更新作業を行いました。
すると、MPLAB XでもAtmel StudioでもPICKIT4で、オンチップデバッグ、書き込み作業ができる様になり、私の環境下においてはUSBドライバーが適切では無かったことが原因となります。
これまでの開発環境の構築履歴を考えると、カスタマイズで導入したツールは無いので、標準インストールを繰り返してきた結果、PICKIT4のドライバーが正しくないと言われても「なんだかな~」という煮え切らない感じ。