あれ?!
ATTiny13AやATTiny85など8ピンAVRはArduinoがあれば簡単に開発できて、とても便利です。
でもですね。ときどき、
avrdude: stk500_recv(): programmer is not responding
こんな表示が出て、書き込めなくなることがあります。
実は私はこれのせいで、ATTinyを何個も捨てました。
というわけで、もう少し悪あがきしてみることにしました。
確認してみるとこと
壊れた!?と思う前に。
1. 逆に刺してない?
8ピンAVRって、VCCとGNDが対角線になってるので、逆に刺すとAVRが超熱くなります。
これで壊すことが良くあります。
凄い反応速度で電源を切ってAVRを刺し直してください!
刺し直して、普通に書き込めたら、まだ壊れてなかったということにしましょうw
2. 接触不良?
ICソケットや、ブレッドボードを使ってて、何度も抜いたりさしたりしてると、
そのうち接触が悪くなってるかもしれません。
配線を見直して、再チャレンジ!
3. なんどやってもダメだけど? →ヒューズリセットを試してみよう
何度も確認してもダメだ!
という状況になったら、ヒューズリセットを試してみましょう。
ちょっとした回路を作る必要がありますが、簡単なので、この機に1つ作っておくと良いと思います。
ヒューズリセットの回路とArduino用のスケッチは下記サイトに公開されています。
参考サイト:Wayne's Tinkering Page / ATTiny Fuse Reset
ATTinyの接続方法
基本的には上記サイトの回路図の通りやれば出来ます。何点か補足。
- 12V電源は、Arduinoに刺さる12VのACアダプタを利用すると楽です。ACアダプタで12V 供給する場合、Arduino UNOのVinにR5を繋ぐようにしてください。
- トランジスタ2N3904は2SC1815でもできますが、ECBの順番が変わるので配線の際は注意してください。
スケッチをArduino UNOへロード
配線できたら、サイトに載ってるスケッチを適当な名前で保存して、Arduino UNOに書き込みます。
接続
下記のように接続しましょう。今回はACアダプタを使う前提で。
- Arduino UNOとATTinyを接続。
- USBケーブルでArduino UNOとPCを接続
- ACアダプタでArduino UNOと電源を接続
フューズリセットの実行
いよいよ、フューズリセットを実行します。
まず、Arduino IDEのシリアルモニタを起動します。
起動すると、こんな画面ですね。
ボーレートは、19200 に合わせてください。
シリアルモニタ画面で、適当な文字を1文字(何でも良いw)入力して、送信 ボタンを押してください。
下記のような画面が出ると成功です。
2行目がフューズ書き換え前、3行目が書き換え後です。
Arduino IDEで普通に書き込みできたら成功
フューズの書き換えが終わったら、配線を変えてATTinyにブートローダーを書き込んでみましょう。
やり方は、Arduinoで、小っちゃいIC(ATTiny)を使う方法 を見てください。
うまく書けたら、AVRの救出成功!
それでも治らないときは。。。わからないw 誰か教えてください!
残念ながら、フューズを書き換えても、やっぱり冒頭のエラーが出ることがあります。
これ、他にも何か試す方法があるかもしれませんが、、、、判らないので、これは壊れたことにしています。
その状態のATTinyは現状捨てています。。。
誰か他にも試した方が良いことをご存知の方は是非教えてください!
よろしくお願いします〜!