2016年6月24日金曜日

Arduinoを使ってfusebitをリセットしてみた

ちょっと前にAttiny2313のfuse bitリーダ&リセッタを作ってみたけど一部のマイコンでリセットできない物があったので他のリセッタも試してみた。

Arduino AVR HVSPってやつなんだけど、こいつはArduinoからAttiny85などのHVSP対応マイコンをリセットできるっぽい。

早速ブレッドボードで回路を組んで試してみた。ちなみにトランジスタは今回も2SC1815を使用した。
スケッチはhv_serial_prog.pdeを使用させてもらった。
回路が同じで数種類のスケッチが出回ってるみたいで、製品としてボードになってる奴もあるっぽい。
シリアルモニタから適当な文字を送信すると読み込んでリセットしてくれるはず。

しかしヒューズビットは読み込まれるんだけどリセットされない…

よーくコメントを読んでみると"ロックビットがかかってる奴はチップイレースしないとリセットできないのでチップイレースできるようにスケッチを追記するといいよ"的なことが書いてあった。
ロックビットを設定したつもりはなかったんだけどとりあえずやってみることに…

先ほどのスケッチの70行目辺りに(readFuses();の前)

//Chip erase
if ((inByte == 'e') || (inByte == 'E')) {
  Serial.println("Erasing all memories…");
shiftOut2(DATAOUT, INSTOUT, CLKOUT, MSBFIRST, 0x80, 0x4C);
shiftOut2(DATAOUT, INSTOUT, CLKOUT, MSBFIRST, 0x00, 0x64);
shiftOut2(DATAOUT, INSTOUT, CLKOUT, MSBFIRST, 0x00, 0x6C);
delay(100);
shiftOut2(DATAOUT, INSTOUT, CLKOUT, MSBFIRST, 0x00, 0x4C);
}

を追記するだけ。

そして今度はシリアルモニタからeを送信するとチップイレースしてくれる用になるはず。
なんとこれでヒューズビットをリセットすることができた…
この前のfuseリセッタもソースコード公開されてるしチップイレース対応できるかなぁ

2016年6月11日土曜日

Attiny85用のヒューズリセッタを作ってみた

使えなくなったAttiny85が5個ぐらい余っていたので、復活させてみようかということでヒューズリセッタを作ってみた。

Attiny85をリセットピンまで使ったり、ヒューズビットの設定をミスってしまったりしたら、HVSPライタを使わないといけないんだけどもHIDaspxに比べると結構高級。
ヒューズリセッタは結構いろんな方がプログラムを公開してくれているので、Arduinoを使ったものや、安値なAttiny2313を使ったものが存在してる模様。

今回はsimpleavrさんのHVSP Fuse Resetterを作ってみた。
ブレッドボード上で作れるし、7セグ付きっぽい。

今回はブレッドボードに空きがなかったので、ユニバーサル基板で作成した。
このサイトに載ってる回路図はトランジスタのエミッタとコレクタが逆になってるので注意。
あとattiny2313のPin4は7セグのPin2でOKの模様。
(ブレッドボードだと重ねてあるしね…)
今回はトランジスタを2SC1815に変更してみた。

Attiny85を付けて12Vをつなぐとt85の文字が。
ちゃんと認識してる模様。
ボタンを押すとlfuseとhfuseに切り替わる。
最後にefuseがみれる。
そしてボタンを長押しするとデフォルトのヒューズビットに戻してくれる。

これで手軽にリセットピンが使えるようになったな。