XRQ技研業務日誌

ものづくりを楽しんでいます。日々の暮らしの中に面白そうなものを探しながら

AVR リストア

ATtiny45 restorer

 1WatterトランシーバーのKeyerチップはPICではなくAVRが使われている。1Watterの基板だけを購入し組み上げたのだが、このチップがないと動作がおぼつかない。KitsandParts dot comからこのチップだけの販売もされているが、このチップが$2なのに対して送料が$16もかかってしまう。何ともすっきりしない。そこで、keyerのHexプログラムが公開されていることから自分で書き込んでみることにした。
 ATtiny45というチップを手に入れ、ライターとしてAVRWRT3を使うことにする。プログラムをダウンロードし、拡張子をHexに変更、ライターに読み込ませる。プログラムの書き込みはすんなりとできた。しかし、思わぬトラブルが発生した。PICの場合、初期設定にあたるconfigデータはプログラムと一体化していて、プログラムの書き込みだけで済んでいた。しかし、AVRの場合、その初期設定にあたるfusebitは別に書き込まなければならないようだ。
 Hexプログラムはダウンロードできたもの、このfusebitがわからないとAVRは正常に動作してくれない。いろいろと試しているうちにライターがAVRチップを認識しなくなってしまった。このライターはISPという仕組みで書き込みや読み込みをしている。fusebitの状況によってはこのインサーキットプログラミングを受け付けなくなってしまうのだ。 チップから門前払いを食らってしまうと、このチップはもう使えなくなってしまう。破損したわけではないのでfusebitを書き換えさえすれば復活させることができる。探してみると解決方法があるようだ。PE0FKOのサイトから有益な情報を得た。高電圧プログラミングすればよいようである。
 さっそく、紹介されていた回路を組み上げ、ATtiny2313に制御プログラムを書き込む。fusebitはdefaultでよいようだ。この回路では動作ボタンを押すと9Vの電源から5Vのレギュレターを通しAVRを動作する。AVRからターゲットをコントロールしてLEDが点灯したところで動作ボタンを放すと、コンデンサからの電圧によって12Vが生成されターゲットのリストアが行われる。
 12VというAVRにとっては致命傷になりかねない高電圧を掛けることになるので、しっかり12Vが生成されるよう調整が必要である。回路が組みあがった段階で、ATtiny2313もターゲットも付けない状態で押しボタンをワイヤーで短絡する。Q1のベースに5Vが掛かるようジャンパーする。電源として15〜20Vを使い、VRを調整しターゲットのPin1(PB5)に12Vが出るようする。
 この装置のおかげでATtiny45が復活した。AVRWRT3でアクセスすることができるようになったので、今度はfusebitを慎重に設定してプログラムを書き込んでいくことにする。さて、1Watterの開発者のDizはfusebitまで公開してくれるのだろうか。