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リセッタもソースコード公開されてるしチップイレース対応できるかなぁ

0 件のコメント:

コメントを投稿