Quelqu'un a-t-il vu ou connu une méthode de préchargement (à l'aide d'un ordinateur ou autre) d'un micrologiciel en tant que données sur un arduino configuré pour fonctionner comme un FAI, puis en utilisant cet arduino, branchez l'interface du FAI dans un autre et téléchargez le micrologiciel.
Pour être clair - je cherche un moyen de rendre possible le téléchargement de croquis Arduino sans connexion directe à un ordinateur complet.
Idéalement, les étapes impliquées seraient les suivantes:
- Rédiger un nouveau croquis / firmware
- Compiler le firmware
- Écrire un firmware de copie sur Arduino A en tant que données (Arduino A est configuré pour fonctionner comme FAI)
- Détachez Arduino A de l'ordinateur
- Dans un emplacement séparé, connectez Arduino A à Arduino B à l'aide d'en-têtes ISP
- À l'aide d'une méthode (peut-être un bouton-poussoir), déclenchez Arduino A pour télécharger le firmware préchargé sur Arduino B.
Je suppose que cela pourrait théoriquement fonctionner, car le téléchargement du micrologiciel n'est qu'un échange d'octets sur l'interface SPI, mais je ne suis pas sûr de la réalité.
Le scénario pour lequel j'envisage est que si j'installe un Arduino (en permanence) dans un endroit éloigné de mon ordinateur (je n'ai pas d'ordinateur portable et je ne veux pas en avoir un), il serait difficile de reprogrammer il.
L'autre méthode que j'ai envisagée consiste à utiliser l'ATMEGA emballé DIL que je peux ensuite retirer de la carte et programmer sur l'ordinateur et revenir à la carte - mais je préférerais de loin ne pas risquer de plier les broches et les tracas d'avoir à retirer la puce chaque fois que je veux reprogrammer.
Réponses:
Je pense que µProg - un petit programmeur AVR portable rapide avec SD fait ce que vous voulez. Vous pouvez stocker plusieurs fichiers sur la carte SD (hex, eep, etc.) et sélectionner dans le menu de l'appareil celui que vous souhaitez écrire sur le MCU cible sans avoir besoin d'un PC.
La meilleure partie est qu'il est disponible gratuitement (PCB, schéma, firmware, etc.).
Liste des puces prises en charge
la source
Je n'ai pas de solution directe pour ce que vous voulez, mais oui il est possible de le faire. Vous pouvez pirater un micrologiciel de chargeur de démarrage afin qu'il lit le code flash du micrologiciel et le télécharger via ISP.
Bien que vous ne puissiez évidemment pas télécharger 32k de firmware sur l'AVR cible si les deux arduinos n'ont que 32k de flash total dans leurs MCU, vous aurez besoin que le flasher ait plus de flash que la cible si vous voulez le faire (un 1284p ou 2560 Mega sera assez loin, ou un 328 / 32u4 sera bon pour flasher un 168 ou un attiny). La seule exception serait d'avoir le firmware à flasher beaucoup plus petit que la mémoire totale (comme pour un croquis clignotant).
Au final, ce ne sera pas facile, c'est du code AVR 100% pur, mais vous pouvez le faire. Jettes un coup d'oeil à:
La façon dont j'implémenterais cela serait soit de faire en sorte que tout rentre dans le chargeur de démarrage du périphérique clignotant, de sorte qu'il lit le firmware (tout de 0x00 à l'adresse de démarrage du chargeur de démarrage) et le fait clignoter via ISP en fusionnant AVRISP avec Optiboot.
Quoi qu'il en soit, c'est un projet intéressant pour un atelier sur les chargeurs de démarrage et les AVR que je peux suggérer dans mon hackerspace local! ;-)
HTH
la source