Étape 2: Désactivation de RESET pour obtenir un NIP de I/O plus
Le ATtiny13 a juste 8 broches, dont 2 sont nécessaires pour le pouvoir et dont 1 est normalement réservée pour le reset. Avec trois entrées analogiques et trois sorties PWM, il emploie chaque goupille possible et nécessite la désactivation de la broche de remise à zéro.
En un sens, consacrant une épingle de microcontrôleur pour reset semble inutile. Combien de fois un périphérique doit-il réellement être réinitialisé par opposition à couper juste momentanément le pouvoir ? Avec des épingles de 40 ou plus sur la plupart des microprocesseurs, pourquoi ne pas avoir une broche de reset dédié ? Mais avec seulement six, qui donne plus de 15 % de vos possibilités de données. Bien sûr, je pourrais juste intensifier à la prochaine puce plue - après tout, la série de ATtiny24 14 broches est seulement quelques cents de plus que la série de 8 broches, la série de 20 broches seulement quelques cents de plus que cela et le ATmegas de 28 broches seulement un peu plus. Et puis, en utilisant tous les six broches sur une puce 8 broches semble plus élégante, et il semblait être un amusement défi bonus.
Le défi est que In-System Programming (ISP) nécessite une réinitialisation à interrompre la puce et le mettre en mode programmation. Mais si nous désactivons la broche de remise à zéro (c'est-à-dire faites-en une tige de I/O ordinaire en compensation le bit 0 du fusible haut), puis comment va nous re-programmer la puce si des modifications sont nécessaires ? Une solution de facilité : ne --programmez-le droite la première fois et si vous avez besoin de reprogrammer, obtenir une autre puce - ils sont moins chers qu’une barre de Snickers. Mais le plus intéressant consiste à utiliser la haute tension de programmation.
Cela semble plus frais et plus exotiques que c’est. Puces AVR courir à 1,8 à 5,5 volts, mais si vous appliquez 12 volts sur la broche de remise à zéro, plutôt qu’être frit, la puce ira dans un mode spécial de programmation même si la broche de remise à zéro a été « désactivée » dans un axe de I/O ordinaire. Un programmateur ISP, comme USBtinyISP de Adafruit, est connecté au port USB de votre ordinateur 5v et ne peut pas générer les courant 12 volts, mais ATmel rend plusieurs programmeurs qui peuvent.
Ou pour un amusement option bricolage, il y a plusieurs façons de construire un programmeur de haute tension, ou au moins un révisable fusible haute tension qui peut retourner un AVR à son état par défaut d’avoir une broche de reset normal afin que vous pouvez ensuite utiliser votre ISP. Mnedix a un grand instructable pour y parvenir, même si j’ai utilisé celui-ci Arduino-basé par Paul Willoughby. J’ai eu un Sparkfun Arduino-clone que je n’avais jamais utilisé, donc en quelques minutes, j’ai accroché à mon alimentation et a pu « récupérer » REA qui avait leurs fusibles enfermés dans des configurations amicales non-ISP.