ATMEL AVRのプログラムライター
旧ATMEL社(現Microchip社)のAVRシリーズですが、C言語で使いやすいアーキテクチャもあり
以前はPICのほうが安価でということもありましたが、半導体の微細化コストダウンなどで
すでに、このクラスのCPUではアーキテクチャの差異で価格の差はないように思います。
ATMEL社がMicrochip社に買収されたことで、AVRはなくなるものかと思われていましたが
AVRのtinyシリーズとMEGAシリーズは継続の方向性のようです。
AVRシリーズではISPライターというもので、プログラムを書き込む方式で
ライターとしてAVRISP mkIIという、ISPライターがありますが
自作もしやすく、互換製品もアマゾンにも並んでおり、初心者が使いやすい環境が整っています。
AVRの新シリーズ
最近、AVRも新シリーズが出てきております。
AVR tiny 1シリーズというものが出てきており、プログラム方式が変わっております。
uPDIという方式で書き込むようになって、従来のISP方式と変わっております。
ISPでは通信線は3線+RESET+VCC+GNDと全部で6ピン必要になります。
通信線を3線使うので、マイコンのポートを必然的に3ピン減らすことになります。
UPDI方式は通信線(RESET端子)1線+VCC+GNDと3ピンで接続可能で、これだけでも配線が半分になりプログラム用のコネクタが小さくできます。
通信線はRESET端子なので、I/Oポートも減らすことがないので、小型のCPUでは非常にメリットが大きいです。
しかも、RESET端子でデバッグ通信もできるスグレモノです。
ですが、ライター環境が揃っていない問題があります。
Arduinoを書き換えてUPDIライターにする方法もあるようですが
公式のPICKit4などは品薄なのか高価で、互換機などもでておらず環境が揃っていない状況です。
MPLAB snapを使うことで、もう少し安価に実現できます。
MPLAB snapは秋月電子でも3700円ぐらいで売っています。(2021年12月現在)
こちらも品薄なのか、価格が上がっている模様です。(昔は2000円台だったようです。)
これを使う上で、ちょっとトラブったので、備忘録も含めて書いておきます。
UPDIに対応したマイコンとしては
ATtiny202/212/412, ATtiny214/414/814/1614, ATtiny416/816/1616/3216, ATTiny417/817/1617/3217
AVR DAシリーズ、AVR DBシリーズなどがあるようです。
ATtiny202であれば、秋月電子でも50円で売られており、
ちょっとした制御でも汎用ロジック程度に使え、こういった少ないピン数こそUPDIの特徴が生きています。
開発環境とライターの使い方
MPLABはむき出しの基板なので、ショートしないように気をつけましょう。
本来の使用順番としては
1、ソフトインストール
・MPLAB X IDE
・MPLAB X IPE
をインストール
2、USBで認識
・MPLAB SNAPを接続する。
・USBドライバのインストールがされる
3、ライタとして使う
・初回にファームウェアをアップデート
・その後はライターとして使える。
4、開発環境
開発は
・MPLAB X IDEで開発
・Microchip Studio(旧ATMEL Studio)
で開発になります。
私は開発環境はAtmel Stduioの光景としてMicrochip Studioを使っています。
MPLAB snapのライター
MPLAB snapのライターを使うには、改造をする必要があります。
MPLAB snapのコネクタ側に近い部分にR48という抵抗があります。
R48はRESETへ接続するプルダウン抵抗とのことで、これが邪魔をして書き込みができなくなるので、
まずは、この抵抗を除去します。
多めにハンダを持って、抵抗の両端を加熱すれば、すぐに取れるはずです。
1005サイズなので、簡単に取れると思います。
抵抗を除去したらUSBで接続する形です。
ちなみに、基板との接続については
2ピン:基板VCC (基板への電源供給はないです)
3ピン:GND
4ピン:UPDI端子 (RESET端子へ4.7kΩの抵抗で接続します)
ファームウェアのアップデート問題
ファームウェアアップデートを行えるはずだったのですが、どうしてもうまく行かない問題が発生しました。
MPLAB snap側が古いことが原因かもしれませんが、どうしてもうまくいきませんでした。
そこでMPLAB X IPEなどにある、Emergency Firmware Updateを使いました。
これはファームウェアアップデートが入ったときに、電源を切ったりして起動しなくなった場合に使うのですが
これを使うことで強制的にFirmwareを書き込むことができます。
手順は画面に出る通りですが、以下のようにやりました。
1、USB接続
MPLAB snapをUSBでパソコンに接続して、ドライバなどを認識しておきます。
2、ジャンパーピンショート
起動している状態でJ3を1秒程度ショートします。
3、USBから一度、抜きます。
4、USBにもう一度指します。
5、画面に従ってファームウェア書き込み
基本的には、ウィザード形式で画面に表示されるので、上記をそれに合わせて行っていくことになります。
これでMPLAB snapのファームウェアアップデートをしたあとは、Microchip Studioでも
従来のATMEL Studioを同じように使うことができます。
FUSEビットも色々と変わっているので、そのうち、プログラミング側も紹介しようと思います。