Quand le Leonardo a été introduit, je pense que j'ai lu quelques articles sur la prudence de faire certaines choses, qui pourraient l'empêcher de charger de nouveaux croquis, il faut donc réécrire le chargeur de démarrage. Parce que je prévois d'utiliser des options d'économie d'énergie, par exemple pour désactiver les composants matériels inutilisés comme le port USB, je crains de faire quelque chose de mal.
Une délicatesse Leonardo que j'ai trouvée jusqu'à présent:
- si les interruptions sont désactivées, le téléchargement de nouveaux croquis échoue à moins que l'on n'appuie sur le bouton Réinitialiser dès que l'IDE Arduino affiche "Téléchargement ..."
Quels éléments (à l'exception des idées habituelles liées au matériel, telles que la connexion de broches configurées en sortie à des potentiels fixes) pourraient endommager le contrôleur ou nécessiter de reflasher le Leonardo avec un nouveau chargeur de démarrage?
power
arduino-leonardo
Thomas S.
la source
la source
Réponses:
Si vous téléchargez un programme qui modifie la vitesse du noyau USB, il serait presque brique. Que se passerait-il:
Le problème ici est que non seulement vous devez appuyer sur réinitialiser le programme, mais après la réinitialisation, vous devez sélectionner rapidement le bon port de communication, puis télécharger avant le démarrage du programme.
Le Redbearlab Blend Micro nécessite une vitesse de base USB à définir dans le programme utilisateur. Dans leurs instructions de configuration, il y a une étape pour modifier le Arduino main.cpp et ajouter une section pour le faire. Si cette étape est manquée, le problème ci-dessus se produit.
la source
J'ai réussi à brider un ATMega128RFA1. Le chargeur de démarrage et le logiciel que j'ai téléchargé dessus fonctionnaient bien. Mais il était impossible d'effacer / d'écrire la ROM.
Après avoir vérifié ce qui s'est passé, j'ai découvert dans la fiche technique que certains fusibles du noyau AVR sont destinés à protéger l'écriture accidentelle sur la ROM. Une sorte de fusibles de sécurité.
Je n'ai jamais trouvé le bug qui a écrit dans ces octets (car c'était un très gros programme et nous étions 3 personnes impliquées dans le codage) mais oui, nous avons juste fait sauter un fusible et perdu un MCU à cause d'un bug.
En ce qui concerne le leonardo, plusieurs choses pourraient se produire, mais rien de tout cela ne peut briser votre carte à moins que vous ne souffliez l'un de ces fusibles de protection.
la source
Il est possible, avec du code vraiment intelligent , d'exploiter le chargeur de démarrage pour se remplacer.
Extrait:
Donc, fondamentalement, vous pouvez faire de la programmation sophistiquée et faire en sorte que le chargeur de démarrage s'auto-arrose, rendant le MCU inutile sans programmeur dédié.
la source
Celui que je connais fait que le Leonard se comporte comme une souris USB qui claque partout et tape des touches aléatoires afin que vous ne puissiez pas le reprogrammer sans faire une sorte de truc pour le contourner. Mais ils le mentionnent sur les documents de l'API.
la source