No.03 AVR-ISPライターTiny45版 でんし研  

デュアルライターTiny45版のプログラムと回路図C

8ピンで作るAVR-ISPライター
AVR StudioのToolsメニューにあるProgram AVRで使えるライターを作りました。
AVR-ISPのVer.2プロトコル用ですのでAVR Studioは"Ver4.11"以上を使ってください。
尚、AVR Studioをインストールし直すときはプログラムのバックアップをお忘れなく。

仕様はアプリケーションノ−トAVR068(STK500 Communication Protocol)を参考にしました。タイムアウトの異常処理ができていませんが書き込みには問題ありません。
ちなみにAVR068はHEROさんが翻訳されています。おかげでずいぶん助かりました。

アトメル純正ライターとの違い
1.ファームウェアの自動更新機能はありません。
2.OSCの自動キャリブレーションはできません。
3.マルチ命令には対応していません。将来用なので今のところ問題なさそうです。
4.純正にはバイト書込式のときにデータ7FHが書けないというバグがありますが
  (開発中に遭遇しました)これにはそのバグが有りません。



AVR910ライターTiny13版からの改良点

1ピンで送受信
再書き込みのことを考えるとリセットピンは汎用入力にしたくないものです。そこで通信が半二重なのに注目してI/O1本で送信と受信ができる回路にしました。デジタルトランジスタを使うと作るのも簡単です。

115.2kbps対応
AVR-ISPは115.2kbps固定です。内蔵8MHzでは難しいと思っていましたがソフトUARTだとクロック数は自由に制御できます。そこで各ビット間を(平均69.5なら)69,70,69,70クロックというように可変させ、全体のボーレートが誤差1%以内になるようにしました。
尚、遅延クロック数は頭のESC(0x1B)をみてボーレート合わせをしていますので通信ごとに可変しています。そのためコネクタを後挿しするとノイズが入って同期できなくなりますのでCOMポートをつないでから電源の5Vを入れてください。

ICをソケットから抜きやすいレイアウトに変更
とりあえずハンダ付けを先におこない、作った都合でアセンブラのI/Oピンを定義し直した方が作りやすいと思います。



デュアルライターになりました
Tiny45はプログラム容量に余裕があるのでAVR-ISPとAVR910のデュアルにしました。
又、ライターNo.13の簡易デュアルTiny2313で追加した、ファームのリビジョンや書き込みクロック周波数のEE-PROM保存に対応しました。
すみませんが、勝手ながらピンレイアウトをスタックライターに似たものに変更しました。
以前のAVR-ISP Tiny45版に合わせるときは各自でequ定義を変更してください。

スタックライター
8ピンAVRに簡単に書き込めるよう、小亀上乗せ式のライターを作りました。
部品はコネクタを含めても3点です。
20ピンのTiny2313にも4番ピンをGNDにすれば使えます。
リセットピンを汎用I/Oにしているものには使えません。又、このライターはリセットピンを汎用I/O(PB5出力)にしているので再書き込みするにはパラレルライターかリセッターが必要になります。

更新履歴
2006年11月12日:スタックライターのコメントを訂正(←リセットできると書いてあった)。
2006年11月 8日:S2313、S1200で書き込みできない時があるバグを修正しました。
2006年10月18日:書き込みを高速化。アトメル純正品とほぼ同じ書込時間になりました。
            AVR910でTinyやMegaに書けます。メニューでS1200以外を選ぶと
            自動的にAVRを判別してページ式で書き込みます。
            AVR-ISPをAVRDUDEに対応。
2006年10月15日:デュアルに変更。リビジョンのEE-PROM化を追加。
            スタックライターを追加。
2006年 3月13日:SCK周期が間違っていましたのでプログラムを修正しました。
       結果、アトメルの純正品と921KHz以外はほぼ同じ書き込み時間になりました。
       SCK:921KHzのときはMega8(8kバイト)の書き込みで純正4秒に対し6秒でした。
       次の機会に速度の改善をしたいと思います。

  トップ アイコン 
直線上に配置