新AVRのUPDI書込器  (2023年1月3日)


AVRマイコンの製造元のATMEL社がMicroChip社に買収されて、
AVRマイコンが新型にリニューアルされました。

マイコンのコア部分に変更はなく、
 R0~R31の32個の8ビットレジスタ
 単純明快なRISC命令
 パイプライン処理による1命令1クロックでの実行(例外あり)
などの特徴は変わりません。

リニューアルされたのは周辺回路で、ほぼ別物と言っていいほどです。
高機能になったり、イベントコントラーラが新たに装備されました。

最初の問題はプログラムを書き込む回路の変更です。

旧来のAVRは、
 RESET
 SCLK
 MISO
 MOSI
の4種類の信号線が必要でした。
CPUをRESET状態にしたままで、SPIで 書き込みをするようになっています。
最低でもGNDと合わせて5線が必要でした。
通常はAVRマイコンの電源電圧を監視した方がいいので
普通は6線となっています。

新AVRでは
 UPDI
の1線だけでOKです。GNDと合わせて2線です。
電源電圧を監視などをするとしても3線で済みます。

これだけでプログラムもデバッグもできます。
しか~し、今まで使っていたATMEL社純正の
書き込み器は使えなくなりました。

UPDIは双方向の非同期シリアル通信なので、
とても簡単なインターフェースでPCと接続できます。
書き込みのためのPC側のソフトもフリーのものがあります。
avrdude.exeです。
これはコマンドラインで使うもので
 avrdude\avrdude -v -p attiny816 -P com6 -c serialupdi -b230400 -U flash:w:avr.hex
のようにコマンドを打って使います。
バッチファイルにして使っていましたが、CPUの種類やCOMポート番号は
よく変わるので、GUIのラッパーを自作しました。
これでワンクリックで書き込みできます。
ついでにアセンブルもワンクリックでできるようにしました。


普通のUSBシリアル変換器(TTL/CMOS)と、ダイオードと抵抗を1本ずつの
インターフェース回路で使えますが(写真の上側)、専用基板を起しました(写真の下側)。
あんまり小さくならなかったです、、、 (30mm☓12mm)
3Pのコネクタを横型にしたのと、USBコネクタをType-Cにしたので
長く大きくなってしまいました。

【2線なのにコネクタが3Pとは? 】
一応、この書き込み器からターゲットに電源を供給できるように
電源ピンを設けましたので3Pになっています。
ターゲット側の電圧をモニタするものではありません。
書き込み器側にジャンパーがあって5Vか3.3Vを供給できます。
ちょっとした実験をする時に、AVR用に別途電源を用意する必要がないので
便利かな~、と思います。