ブートローダーの書き込み後にATTiny85が機能しない


8

ATTiny85に問題があります。私はそれをプログラムするためにISPとしてArduinoを使用していることを言及しなければなりません。

クロック速度を1MHzから20MHzに上げる必要があると判断するまで、私のATTinyは問題なく機能したので、BoardsメニューからATTiny85を20MHzで選択し、Tools> Burn Bootloaderをクリックしました。しかし、今は私のATTinyがまったく機能しないため、それは愚かでした。スケッチをアップロードできず、試してみると次のメッセージが表示されます。

avrdude: Yikes! Invalid device signature. Double check connections and try again, or use -F to override this check.

だからあなたへの私の質問は、私がしたことをリセットする方法はありますか?それとも、20MHzで動作させるには?


2
設定したヒューズの値を覚えていますか?少し上にスクロールすると、画面に表示されたままになる場合があります。内部発振器ではATtiny85を20MHzに設定できません。クロックソースを接続しましたか?
ジッピー2013

いいえ、クロックソースを接続していません。ボードとして20MHzのattinyを選択して(そしてもちろん、attinyをarduinoに接続して)ブートローダーを書き込みました。
Calin

別のarduinoがあります。それを使用してヒューズをリセットする方法はありますか?
Calin

なぜ別のArduinoが必要なのですか?理解できるように、ArduinoではなくATtinyをブリックしました。あなたの質問のエラーメッセージは同じ方向を指しています:Arduinoは大丈夫です。Arduinoに疑問がある場合は、USB以外のすべてのものを取り外してから、Blink例をプログラムしてください。それが正常に機能する場合は、ArduinoISPに戻ることができます(これは、使用していたプログラマソフトウェアの名前だと思います)。
ジッピー2013

2
使用した正確なヒューズ設定を知らないと、実際に何をしたのかわかりません。実際に、クロックを20MHzに設定した場合、外部クロックソースが20MHzである限り、外部クロックソースを接続するだけで、水晶、共振器、または別の回路からのパルスが得られます。
カートE.クロティエ2013

回答:


10

内部発振器を20MHzで動作させることは不可能であるため、外部クロックソースを使用するようにコントローラのヒューズを設定していると思います。クロック信号をピン2に接続しCLKI、クロックを8MHzの内部RCクロックにリセットして、コントローラーに新しい命を吹き込むことができます。

実際には、デジタルピン9にクロック出力を備えたArduinoISPの「修正」バージョンがあります。このクロック出力を自分でテストしませんでしたが、試す価値はあります。したがって、ArduinoとATtinyの間に既にある接続に加えて、Arduinoデジタルピン9をATtiny85ピン2(CLKI)に接続します。次に、8MHzの内部RCクロックをプログラムしてみます。

詳細については、データシートの第6.2章「クロックソース」を確認してください。

別の方法は、高電圧プログラマーを使用することです。これは、Arduinoを使用して簡単に即興にすることができます。

ところで、1 MHz 未満のRCクロックソースを選択すると、同様のことが起こります。その場合、コントローラークロックは、標準のArduinoISPソフトウェアでは動作が遅くなります。


ありがとう!だから私はこれを行うために12Vの電源が必要です(現在私にはありません)。即興で何ができるか見てみます。ソースが12vを少し超える場合、問題はありますか?
カリン2013

@Calin「12V以上」とはどういう意味ですか?チップを簡単に損傷する可能性があります...抵抗を2、3個使用して、電圧を12Vに下げることができます。:この参照electronics.stackexchange.com/questions/25038/...
クルト・E. Clothier

わかりました!明日はもう真夜中なのでやってみます。私はあなたを更新していきます!
カリン

高すぎる電圧でコントローラーを誤って揚げる前に、私の回答から外部クロックソースオプションを試してください。高電圧は11.5〜12.5Vである必要があります(データシートの20.7.1章)。
ジッピー2013

1
ありがとうございました!ArduinoISPの「修正済み」バージョンは、問題の解決に役立ちました!Arduinoに修正バージョンをアップロードし、Arduinoを切断して、通常どおりATTinyを接続しましたが、Arduinoのピン9をATTinyのピン2に接続しました(ご提案どおり)。その後、Arduino IDEを開き、ボードとしてATTiny85(内部8MHzクロック)を選択し、プログラマーとしてArduinoISPを選択しました。[Tools]> [Burn Bootloader]をクリックすると、すべて問題なく動作しました。その後、Examplesディレクトリから元のArduinoISPスケッチを再アップロードし、Arduinoをプログラマーとして使用してATTinyを再度プログラムすることができました。
Calin 2013

5

@jippieが言ったように、これは単に外部クロックソースを適用することの問題です(実際には、クロックソースが20MHzであるかどうかは関係ありません。ArduinoISPのSPIプログラミング速度を管理するには、1MHz程度にする必要があります)。

上記のArduinoISPバージョンの代わりに、クロック生成に加えてScratchMonkeyを試すこともできます。ソフトウェアSPIは、他のいくつかのクロッキング問題に対処します。リセットピンを無効にできなかった場合を除き、高電圧プログラミングに頼る理由はありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.