ATTiny85 funktioniert nach dem Brennen des Bootloaders nicht

8

Ich habe ein Problem mit meinem ATTiny85. Ich sollte erwähnen, dass ich Arduino als ISP verwende, um es zu programmieren.

Mein ATTiny hat einwandfrei funktioniert, bis ich beschlossen habe, die Taktrate von 1 MHz auf 20 MHz zu erhöhen. Deshalb habe ich im Menü Boards ATTiny85 mit 20 MHz ausgewählt und dann auf Extras> Bootloader brennen geklickt. Aber das war dumm, da mein ATTiny jetzt überhaupt nicht mehr funktioniert. Ich kann keine Skizzen hochladen und wenn ich es versuche, erhalte ich folgende Nachricht:

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

Meine Frage an Sie wäre also, gibt es eine Möglichkeit, das, was ich getan habe, zurückzusetzen? Oder noch besser, damit es bei 20MHz funktioniert?

Calin
quelle
2
Erinnern Sie sich an die von Ihnen eingestellten Sicherungswerte? Es wird möglicherweise immer noch auf dem Bildschirm angezeigt, wenn Sie ein wenig nach oben scrollen. Sie können mit dem internen Oszillator keinen ATtiny85 auf 20 MHz einstellen. Haben Sie eine Taktquelle angeschlossen?
Jippie
Nein, ich habe keine Taktquelle angeschlossen. Ich habe gerade den Bootloader mit 20 MHz Attiny als Board gebrannt (und natürlich mit dem Attiny, das mit dem Arduino verbunden ist).
Calin
Ich habe ein anderes Arduino. Gibt es eine Möglichkeit, die Sicherungen damit zurückzusetzen?
Calin
Warum brauchst du noch einen Arduino? So wie du es verstehst, hast du dein ATtiny gemauert, nicht dein Arduino. Die Fehlermeldung in Ihrer Frage weist in dieselbe Richtung: Der Arduino ist in Ordnung. Wenn Sie Zweifel an Ihrem Arduino haben, trennen Sie alles außer USB und programmieren Sie das BlinkBeispiel. Wenn das gut funktioniert, können Sie zu Ihrem ArduinoISP zurückkehren (ich glaube, das ist der Name der Programmiersoftware, die Sie verwendet haben).
Jippie
2
Ohne die genauen Sicherungseinstellungen zu kennen, die Sie verwendet haben, können wir nicht sicher sein, was Sie tatsächlich getan haben. Wenn Sie den Takt tatsächlich auf 20 MHz eingestellt haben, müssen Sie lediglich eine externe Taktquelle anschließen, sei es ein Kristall, ein Resonator oder ein Impuls von einem anderen Stromkreis, solange die externe Taktquelle 20 MHz beträgt.
Kurt E. Clothier

Antworten:

10

Ich vermute, Sie haben die Sicherungen des Controllers so eingestellt, dass sie eine externe Taktquelle verwenden, da es unmöglich ist, den internen Oszillator mit 20 MHz zum Laufen zu bringen. Sie können Ihrem Controller neues Leben CLKIeinhauchen, indem Sie ein Taktsignal an Pin 2 anschließen und versuchen, den Takt auf den internen 8-MHz-RC-Takt zurückzusetzen.

Es gibt tatsächlich eine 'feste' Version von ArduinoISP , die einen Taktausgang an digitalem Pin 9 hat. Ich habe diesen Taktausgang nicht selbst getestet, aber es lohnt sich, ihn auszuprobieren. Verbinden Sie also zusätzlich zu den Verbindungen, die Sie bereits zwischen Arduino und ATtiny haben, den digitalen Arduino-Pin 9 mit dem ATtiny85-Pin 2 (CLKI). Versuchen Sie dann, den internen 8-MHz-RC-Takt zu programmieren.

Weitere Informationen finden Sie im Datenblatt in Kapitel 6.2, „Taktquellen“.

Eine alternative Methode ist die Verwendung eines Hochspannungsprogrammiergeräts, das mit einem Arduino leicht improvisiert werden kann .

Übrigens: Ähnliches passiert, wenn Sie eine RC-Taktquelle <1 MHz auswählen. In diesem Fall läuft Ihr Controller-Takt für die Standard-ArduinoISP-Software zu langsam.

Jippie
quelle
Vielen Dank! Dazu benötige ich eine 12-V-Stromquelle (die ich derzeit nicht habe). Ich werde sehen, was ich tun kann, um zu improvisieren. Gibt es ein Problem, wenn die Quelle etwas über 12 V liegt?
Calin
@Calin Wie "über 12V" redest du? Sie können den Chip ziemlich leicht beschädigen ... Ein paar Widerstände könnten verwendet werden, um die Spannung auf 12 V zu senken. Siehe dies: electronic.stackexchange.com/questions/25038/…
Kurt E. Clothier
OK danke! Ich werde es morgen versuchen, da es jetzt fast Mitternacht ist. Ich halte dich auf dem Laufenden!
Calin
Probieren Sie die Optionen für die externe Taktquelle aus meiner Antwort aus, bevor Sie den Controller versehentlich mit einer zu hohen Spannung braten. Die Hochspannung muss zwischen 11,5 und 12,5 V liegen (Kapitel 20.7.1 im Datenblatt).
Jippie
1
Vielen Dank! Die "feste" Version des ArduinoISP hat mir geholfen, mein Problem zu lösen! Ich habe die feste Version auf das Arduino hochgeladen, das Arduino getrennt und das ATTiny wie gewohnt verbunden, aber mit Pin 9 von Arduino an ATTinys Pin 2 angeschlossen (wie Sie vorgeschlagen haben). Danach öffnete ich die Arduino IDE und wählte ATTiny85 (mit internem 8MHz Takt) als mein Board und ArduinoISP als Programmer. Ich klickte auf Extras> Bootloader brennen und alles ging in Ordnung. Danach habe ich die ursprüngliche ArduinoISP-Skizze erneut aus dem Beispielverzeichnis hochgeladen und konnte den ATTiny mit meinem Arduino als Programmierer erneut programmieren.
Calin
5

Wie @jippie sagte, ist dies einfach eine Frage der Anwendung einer externen Taktquelle (es spielt eigentlich keine Rolle, ob die Taktquelle 20 MHz ist oder nicht, sie muss nur etwa 1 MHz erreichen, um die SPI-Programmiergeschwindigkeit von ArduinoISP zu verwalten).

Als Alternative zur oben erwähnten ArduinoISP-Version können Sie ScratchMonkey ausprobieren , das neben der Taktgenerierung auch Software-SPI verwendet, um einige andere Taktprobleme zu lösen. Sofern Sie Ihren Reset-Pin nicht deaktivieren konnten, sollte es keinen Grund geben, auf Hochspannungsprogrammierung zurückzugreifen.

Mikrotherion
quelle