Cette instructable explique comment faire fonctionner la puce Atmega328 comme la puce dans un Arduino sans le cristal, ce qui rend breadboarding plus facile et en vous donnant deux broches supplémentaires pour travailler avec. Ce programme ne fonctionnera pas sur un Arduino Uno. Il utilise des fonctionnalités de la puce Atmega328 qui ne sont pas disponibles sur l’Arduino. Les broches de la 328 et tous les Microcontrôleurs Atmel, sont disposées en groupes de huit. La Banque de « D » est disponible, mais vous avez seulement un accès complet à l’un Banque. Il y a seulement six broches sur la Banque de « C », l’analogique d’entrée pins, parce que l’un d’eux n’est pas éclaté, et l’autre est la remise à zéro. Deux des broches sur la Banque « B » sont absorbés par le cristal.
Il est possible d’exécuter la puce sans le cristal et avoir un accès complet à toutes les huit broches sur la Banque « B ». Il y a un réseau interne de R/C qui peut être utilisé pour la puce d’horloge. La puce tourne à 8 MHz au lieu de seize ans. Ce n’est généralement pas un problème car la plupart des programmes Arduino n’est pas nécessaire la vitesse en tout cas. Aussi, l’horloge interne n’est pas aussi précis. La tolérance spécifiée dans la fiche technique pour la ATtiny85 est +/-10 %, tandis que la plupart des cristaux ont une tolérance de 30 PPM. Je suppose que les 328 est le même mais je ne pouvais pas trouver dans les 328 datasheet. (La feuille de données est des centaines de pages de lecture très sec). Il n’y a de très bonnes chances que votre puce ne sera pas éteint n’importe où près de dix pour cent. Cette collection d’ un test de l’horloge interne dans la puce ATtiny85. et explique comment les pièces sont testées pour s’assurer qu’ils sont dans la tolérance.
J’ai entendu parler de cas où le matériel de communication série sur l’Arduino peut interférer avec le fonctionnement de pins zéro et un. Avec la puce hors du plateau, ce ne sera pas un problème, mais si vous les utilisez pour la communication série vous aurez besoin de les préserver.
Chaque banque de huit broches est contrôlée par trois registres de huit bits. :
- Le registre de la DDR est la direction de données, 0 = entrée, 1 = sortie.
- Le registre PIN est utilisé pour lire la valeur numérique de la goupille.
- Le registre PORT a deux fonctions :
- Si le DDR s’inscrire a la valeur 0 définit l’axe faible et 1 il élevé de sortie.
- Si le registre de la DDR est défini sur entrée 1 active la résistance de pull-up interne.
L’IDE Arduino n’a aucun moyen pour contrôler les broches où le cristal était, ils n’ont pas les numéros de broche numérique. Heureusement, il fournit assistance directe pour manipuler les registres de contrôle. Cette instructable montre comment utiliser les registres de la broche pour rendre les programmes plus rapidement, plus petites et souvent plus facile de coder.