Ma méthode habituelle de reprogrammation des AVR (jusqu'à présent limitée à ATtiny13 et ATtiny2313) consiste à déconnecter la puce du circuit hôte, à la brancher sur une autre planche à pain avec tous les branchements ICSP en place, à programmer, puis à remplacer. Cependant, j'entends toujours que l'on peut programmer la puce en place (ce qui est, je comprends, tout l'intérêt d'ICSP).
Y a-t-il des considérations matérielles particulières à prendre en compte avant de programmer la puce in situ? Par exemple, je crains que le processus ICSP n'endommage les composants du circuit connectés aux mêmes broches AVR que celles utilisées pour ICSP. Doit-on parfois ajouter des diodes ou un autre type de tampon pour protéger ces composants?
Je sais que cette question semble un peu vague, et je suppose que c'est le cas - mais je n'ai pas fourni de détails sur mon circuit particulier parce que je suis intéressé par des règles générales plus générales. C'est-à-dire que l'on n'a jamais à se soucier de cela, ou la réponse dépend-elle vraiment du circuit particulier dont le MCU fait partie?
Utilisez un cavalier ou un commutateur pour pouvoir déconnecter physiquement l'en-tête ICSP. De cette façon, vous pouvez partager les broches avec d'autres fonctions sans vous inquiéter et sans avoir à jouer avec vos autres composants.
Cela semble être la solution la plus évidente et la plus sûre, et c'est ce que j'utilise.
(Ma première réponse a été supprimée, j'ai donc essayé d'ajouter plus de détails).
la source
Malheureusement, vous ne pouvez pas faire de programmation de circuits pour vos AVR si les broches sont partagées par d'autres fonctions, par exemple l'éclairage des LED. Bien que cela puisse fonctionner, ce n'est pas garanti car cela peut entraîner une baisse trop faible des sorties du programmateur ou du µC pour que cela fonctionne.
Une autre alternative est de commander vos puces préprogrammées. Je sais que Microchip offre cela pour certaines de leurs puces, mais je ne suis pas sûr d'Atmel.
la source