Comment planifier la programmation en circuit d'un AVR?

12

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?

Tim
la source

Réponses:

15

J'ai utilisé ISP pour à peu près toutes les cartes AVR que j'ai faites; il n'y a rien à craindre. Le manuel de l'AVR ISP mkII donne un assez bon résumé des limitations que vous devez rechercher dans la section "Interface cible". Fondamentalement, si vous exécutez les broches MISO / MOSI / SCK directement sur le programmateur et que vous avez environ 820 ohms entre elles et le reste du circuit (et que vous ne faites rien de génial avec la broche de réinitialisation), vous êtes d'accord. Je ne m'inquiéterais pas que le FAI endommage d'autres composants; ce n'est pas un programmeur haute tension. Les signaux fonctionnent tous à 5V, donc si cela peut endommager un composant externe, votre microcontrôleur aussi.

Si vous êtes vraiment coincé avec une carte qui ne permet pas la programmation ISP, j'essaierais au moins d'utiliser un socket ZIF pour votre carte de programmation. Ils sont chers, mais cela améliorera considérablement votre qualité de vie.

phooky
la source
Merci pour le lien - c'est exactement ce que je recherche. Je n'utilise pas réellement un véritable FAI AVR - juste un arduino correctement programmé. (!) Je vais remplacer cela par un Bus Pirate dans quelques jours, donc jeter ensemble une carte avec des prises ZIF est certainement quelque chose que je prévois de faire. Ma procédure actuelle est extrêmement moche!
Tim
1

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).

Ali Afshar
la source
Comment cela fonctionnerait-il? Ensuite, lorsque l'interrupteur / cavalier est connecté, les broches seront toujours connectées au reste du circuit.
eeze
0

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.

Thomas O
la source
Eh bien, je m'en doutais. Je vais devoir continuer à faire les choses à ma façon lente et maladroite, je suppose. (Oh, et aucune chance pour qu'Atmel fasse la pré-programmation pour moi, je suis juste un petit amateur. :-))
Tim
Microchip facture ~ 40 $ de "frais d'installation". Encore une fois, vous n'êtes pas sûr d'Atmel. Si vous commandez dans la gamme 10-100, cela en vaut probablement la peine.
Thomas O
3
J'ai programmé de nombreuses cartes avec d'autres charges sur les broches SPI, en particulier les LED, sans aucun problème. Faites juste attention à ce que rien d'autre ne commande les signaux. Cela signifie, par exemple, si vous avez un appareil SPI connecté, donnez-lui une résistance pull up ou similaire pour le garder aussi en reset ou non sélectionné.
Yann Vernier