ATTiny85 ne fonctionne pas après la gravure du chargeur de démarrage

8

J'ai un problème avec mon ATTiny85. Je dois mentionner que j'utilise Arduino comme FAI pour le programmer.

Mon ATTiny a bien fonctionné jusqu'à ce que je décide que je dois augmenter la vitesse d'horloge de 1 MHz à 20 MHz, j'ai donc sélectionné ATTiny85 à 20 MHz dans le menu Cartes, puis cliqué sur Outils> Graver Bootloader. Mais c'était stupide, puisque maintenant mon ATTiny ne fonctionne plus du tout. Je ne peux pas télécharger de croquis dessus et si j'essaye, je reçois ce message:

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

Donc, ma question serait la suivante: existe-t-il un moyen de réinitialiser ce que j'ai fait? Ou encore mieux, pour le faire fonctionner à 20 MHz?

Calin
la source
2
Vous souvenez-vous des valeurs de fusible que vous avez définies? Il peut toujours être à l'écran si vous faites défiler un peu. Vous ne pouvez pas régler un ATtiny85 à 20 MHz avec l'oscillateur interne, avez-vous connecté une source d'horloge?
jippie
Non, je n'ai pas connecté de source d'horloge. Je viens de brûler le bootloader avec 20mhz attiny sélectionné comme carte (et bien sûr, avec l'attiny connecté à l'arduino).
Calin
J'ai un autre Arduino, est-il possible de réinitialiser les fusibles en l'utilisant?
Calin
Pourquoi auriez-vous besoin d'un autre Arduino? Si vous le comprenez, vous avez briqué votre ATtiny, pas votre Arduino. L'erreur messege dans votre question pointe dans la même direction: l'Arduino est OK. Si vous avez un doute sur votre Arduino, déconnectez tout sauf USB, puis programmez l' Blinkexemple. Si cela fonctionne bien, vous pouvez revenir à votre ArduinoISP (je crois que c'est le nom du logiciel de programmation que vous utilisiez).
jippie
2
Sans connaître les paramètres de fusible exacts que vous avez utilisés, nous ne pouvons pas être sûrs de ce que vous avez réellement fait. Si vous avez en fait réglé l'horloge à 20 MHz, tout ce que vous avez à faire est de connecter une source d'horloge externe, que ce soit un cristal, un résonateur ou une impulsion d'un autre circuit, tant que la source d'horloge externe est à 20 MHz.
Kurt E. Clothier

Réponses:

10

Je soupçonne que vous avez réglé les fusibles du contrôleur pour utiliser une source d'horloge externe car il est impossible de faire fonctionner l'oscillateur interne à 20 MHz. Vous pouvez donner une nouvelle vie à votre contrôleur en connectant un signal d'horloge à la broche 2 CLKIet essayer de réinitialiser l'horloge à une horloge RC interne de 8 MHz.

Il existe en fait une version «fixe» d'ArduinoISP qui a une sortie d'horloge sur la broche numérique 9. Je n'ai pas testé cette sortie d'horloge moi-même, mais cela vaut la peine d'essayer. Donc, en plus des connexions que vous avez déjà entre Arduino et ATtiny, connectez la broche numérique Arduino 9 à la broche 2 ATtiny85 (CLKI). Essayez ensuite de programmer l'horloge RC interne à 8 MHz.

Si vous consultez la fiche technique chapitre 6.2 «Sources d'horloge» pour plus de détails.

Une autre méthode consiste à utiliser un programmateur haute tension, qui peut facilement être improvisé à l'aide d'un Arduino .

BTW: Une chose similaire se produira lorsque vous sélectionnez une source d'horloge RC <1 MHz , votre horloge de contrôleur dans ce cas fonctionnera trop lentement pour le logiciel ArduinoISP standard.

jippie
la source
Merci! J'ai donc besoin d'une source d'alimentation 12v pour ce faire (que je n'ai pas actuellement). Je vais voir ce que je peux faire pour improviser. Y a-t-il un problème si la source est un peu plus de 12v?
Calin
@Calin De quoi "plus de 12V" parlez-vous? Vous pouvez endommager la puce assez facilement ... Quelques résistances pourraient être utilisées pour abaisser la tension à 12V. Voir ceci: electronics.stackexchange.com/questions/25038/…
Kurt E. Clothier
OK merci! J'essaierai demain car maintenant il est presque minuit. Je vous tiens au courant!
Calin
Essayez les options de source d'horloge externe de ma réponse avant de faire frire accidentellement le contrôleur avec une tension trop élevée. La haute tension doit être comprise entre 11,5 et 12,5 V (chapitre 20.7.1 de la fiche technique).
jippie
1
Je vous remercie! La version "fixe" de l'ArduinoISP m'a aidé à résoudre mon problème! J'ai téléchargé la version fixe sur l'Arduino, déconnecté l'Arduino et connecté l'Attiny comme d'habitude mais avec la broche 9 de l'Arduino connectée à la broche 2 d'ATTiny (comme vous l'avez suggéré). Après cela, j'ai ouvert l'Arduino IDE et sélectionné ATTiny85 (avec horloge interne de 8 MHz) comme carte et ArduinoISP comme programmeur. J'ai cliqué sur Outils> Graver Bootloader et tout s'est bien passé. Après cela, j'ai téléchargé à nouveau l'esquisse ArduinoISP d'origine à partir du répertoire Exemples et je pouvais à nouveau programmer l'ATTiny en utilisant mon Arduino comme programmeur.
Calin
5

Comme l'a dit @jippie, il s'agit simplement d'appliquer une source d'horloge externe (cela n'a pas d'importance si la source d'horloge est à 20 MHz ou non, il suffit de frapper 1 MHz ou plus pour gérer la vitesse de programmation SPI d'ArduinoISP).

Comme alternative à la version ArduinoISP mentionnée ci-dessus, vous pouvez essayer ScratchMonkey , qui, en plus de la génération d'horloge, fait également du logiciel SPI pour traiter certains autres problèmes d'horloge. Sauf si vous avez réussi à désactiver votre broche de réinitialisation, il ne devrait y avoir aucune raison de recourir à une programmation haute tension.

microtherion
la source