これを実際に作ってみることにした。


作ろうと思ったのは、オリジナル基板の検討をしていて、作るならこれも入れたいと思ったから。AVR をはじめたばかり だと ヒューズビットを間違えて設定してしまうことはありがちだ。これがあれば、シリアルプログラミングできなくなったチップを救える。おかしくなったチップが 4 つも 溜ったのも理由のひとつだったりする。
回路図↓。

12V 電源は、LAL02NA470K(max 70mA / 5.8 Ω ) を使った DC-DC コンバータで作る。250KHz Duty 50% で スイッチングして、TL431で 12 V に制限する。スイッチングには、デジタルトランジスタのDTC143TSA を使ってみた。出力コントロールにも、DTA143TSA/DTC143TSA を使ってみている。
DTA143TSA/DTC143TSA は、パーツフォレストで 50個250円で入手した。2SC1815GR / 2SA1015GR でも抵抗さえ入れれば問題ないはず。
この DC-DC コンバータは、5V → 12V に合うように設計してある。LAL02NA470K 以外のものをコイルに使うのは勧められない。ちなみに 3.3V だと 10V 前後の出力になってしまう。ただ、AVR によってはこれでも書き込めるようだ。
コントローラは、格安の ATtiny2313 を使う。パラレルプログラミングするには、信号線が少ないのだが、高電圧シリアルプログラミングもサポートした上で、インジケータも付けることができた。書き込み中は 赤。初期化成功は 緑。失敗した場合 赤が点滅する。ただし、シグネチャーが読めるが対応していないチップの場合は、対応した FW を作れば 初期化できるかも知れないので、 緑を点滅させて区別できるようにしている。
初期化スタートのボタンは付けられなかった。電源を入れて 3 秒後に自動でスタートする。
すごく簡単そうだが、書き込む AVR への配線は別。配線は↓の信号線を全部つなげる。必要なチップ用だけ配線しても良い。(写真の配線をみればわかるように、実際 ATtiny2313 系と ATmega88 系は接続していなかったりする。)

これだけの配線をするのはとても面倒だし、手配線だと 知らない間に壊れてしまうかも知れない。オリジナル基板を作るなら是非これも入れたい理由。
とりあえず作ったプログラムは、
今のところ配線は、ATtiny44 系 / ATtiny45 系 , ATtiny461 系のみにしてテストしている。動作が不安定で完成には遠い。
おかしくなった、ATtiny44 2 つのうち 1 つは救えた。もうひとつはダメ。ATtiny861 は 2 つあるが、2 つとも救えない。ただし、正常な ATtiny26L は OK だったので、全然ダメというわけもないらしい。
あと 回路図も不安な点がある。ATmega88 系では、XA1/BS2 が XA1 と BS2 に分かれている。両方に XA1/BS2 を入れているがそれで良いのか未確認。ちなみに、PAGEL も独立しているが、FLASH に書き込むわけではないので、こちらは 常に L で良い(はず)。
追記:
だめだった ATtiny44 と ATtiny861 x 2 がなんとか復旧できた。ただし、数回に1回しか成功せず、何回も電源On/Off を繰り返した。
最新のプログラムは、hceraser-0.2.tar.gz。(回路図も変更したので注意)
失敗するときは、ほぼ100% パラレルプログラミングモードに入れずシグネチャーが読めない。ATtiny2313 の PORT 出力 を ターゲットのVCC にしていたが、それがマズいのではないかということで、PNP トランジスタのスイッチを入れ、出力にコンデンサをつなぐことにした。これで、(絶対壊れていると思っていた) ATtiny44 をつないだら 緑のLED が点灯した!。ATtiny861 も OK だった。VCC の立ち上がりが問題だったのだろう。
数回に1回しか成功しないのは、別の問題もあるかも知れないが、たぶん電源投入のタイミングだろう。何回かやって成功するのであれば、プログラムでうまくリトライすれば面倒が減るので、次は対応しようと思う。
実は、失敗した理由には他に2つの問題があった。1つは、知らない間に配線がはずれていたこと。疑心暗鬼になりながらテストするのはなかなかつらかった。もうひとつは、ISP ケーブルをつないだままテストしていたこと。HSV だと ISP ケーブルと干渉しないように設計したので問題ないのだが、パラレルプログラミングだと、干渉する。Tiny26L は、出力が強い(?)のか ISP ケーブルがあっても書き込みできてしまう(場合が多かった)ので安心してしまった。
オリジナル基板検討つづき
オリジナル基板を5種類作るなら、まず USB910A を作りたい。次に、単体で USBNIX を動かせるものとして、USB910B に I2CROM ソケットを追加したもの。そして、これ(HCERASER) で 3種 決まった。
幅というか、Y (高さ)は 47mm に統一して 1/2 C 基板をベースにする。これ(HCERASER) は、C 基板サイズになりそうだ。
あと2つはまだ決めていない。幅は 300 mm までなので、C 基板サイズ x 2 でも OK 。