Il était que le nombre de jetons différents microcontrôleurs disponibles à
l'amateur a été assez limité. Tu dois utiliser tout ce que vous arrivaient à
acheter chez le marchand de puce de correspondance, et qui réduit le choix à un
petit nombre de puces.
Mais les temps ont changé. Digikey répertorie plus de 16000 postes
différents dans une recherche de « microcontrôleur ». Que l'on choisisse un
amateur sans expérience préalable particulière ?
Voici quelques conseils. Celles-ci visent notamment à quelqu'un qui essaie
de récupérer un microcontrôleur à utiliser pour la première fois au moins en
partie comme une expérience d'apprentissage, plutôt que quelqu'un qui veut
accomplir une tâche particulière.
Étape 1: Ce qui est un « microcontrôleur » ?
Si vous n’avez jamais pris un cours d'informatique très liminaire, vous
avez appris probablement sur les principaux composants de l'ordinateur :
Une unité centrale de traitement ou de la CPU. La partie qui assure
effectivement la logique et les mathématiques
Mémoire. Où l'ordinateur stocke les données et instructions
Input et Output ou i/o. Comment l'ordinateur déplace les données entre le
monde réel et de ses autres composantes.
Un microprocesseur utilise des techniques de fabrication microélectronique
pour réduire le CPU à une taille très petite ; habituellement, un seul « puce
».
Un microcontrôleur utilise les mêmes techniques pour rétrécir la totalité
de l'ordinateur à une seule puce (ou très petit module.) CPU, mémoire et e/s
tout dans un petit paquet aussi petit qu'un grain de riz. Il suffit de
connecter le pouvoir et il commence à faire sa chose ; calcul et parler au
monde. Habituellement les e/s sur un microcontrôleur sont destiné au matériel
de « bas niveau » comme parler à LED et commutateurs individuels au lieu de
claviers, internet et affiche (comme votre ordinateur de bureau). Un
microcontrôleur est juste la chose que vous voulez, si vous voulez parler à LED
et commutateurs individuels...
Il y a un numéro considérations de conception qui pourraient réduire
immédiatement votre nombre de choix, beaucoup de choses.
Programmable et Reprogrammation :
À ce stade, je dirais qu'un amateur doit se contenter des microcontrôleurs
qui ont la mémoire de programme flash ou eeprom interne et peut être effacé et
reprogrammé un nombre considérable de fois. Il y a aussi des micros qui peuvent
être utilisés avec la mémoire externe (ajoute la complexité et les dépenses),
micros effaçables de UV (généralement assez chers à cause de l'emballage
spécial), des puces programmables ponctuels (potentiellement utilisable après
que vous avez une conception du travail, mais perdre leur avantage de prix de
toute façon) et de puces programmées par masque (essentiellement inutiles).
Périphériques :
Si vous souhaitez que votre microcontrôleur pour avoir construit en
Ethernet, CAN, USB ou même plusieurs ports série, beaucoup de choix communs
vont être éliminés. Certains périphériques peuvent être utiles d'avoir : UART,
SPI ou I2C contrôleurs et contrôleurs PWM mémoire EEPROM sont de bons exemples,
même si une fonctionnalité similaire peut fréquemment être implémente dans le
logiciel ou les parties externes.
Il est commode si les broches de sortie peuvent fournir des quantités
raisonnables de courant pour la conduite des LEDs ou des transistors
directement ; certaines puces ont 5 ma ou moins capacité d'entraînement.
Conditionnement physique :
Les amateurs sont quelque peu limitée est les paquets, ils sont en mesure
de traiter, d'un prototypage, fabrication de PCB, et/ou souder. Cette 256 balle
BGA confire CPU peut être doux, mais c'est effectivement inutilisable par
simples mortels. Microcontrôleurs disponibles en paquets de 0,1 en DIP sont
beaucoup plus faciles à traiter. Probablement n'importe quoi avec un espacement
d'axe inférieur à 0,05 po doit être considérée avec un certain scepticisme.
Mémoire :
La taille de la mémoire peut être une considération importante. Certains
micros ont aussi peu que 256 innstructions et 16 octets de RAM. Vous pouvez
faire beaucoup dans cette sorte d'espace (croyez-le ou non), mais pas tout. En
outre, bien que fréquemment, vous pouvez passer à une « plus grande puce »,
certaines familles de puce ont mémoire relativement petite limites imposées par
leur architecture, de sorte que même que le plus gros morceau, vous pouvez
obtenir aura seulement 8 instructions de k (par exemple). RAM (mémoire de
données) est généralement rare dans les microcontrôleurs ; certains algorithmes
nécessitent une RAM importante à mettre en œuvre d'une manière simple, et il
peut être utile à la recherche d'un micro avec beaucoup de RAM (ou des
capacités d'extension RAM externes) si c'est le genre de chose que vous aviez
en tête. (Par exemple, mise en œuvre de protocoles réseau TCP/IP dans un micro
dont l'espace RAM total est moins utilisé par un paquet ethernet typique est
susceptible d'être... intéressant.)
Étape 2: Réflexions sur les Architectures
« L'architecture » d'un microcontrôleur fait référence à la philosophie de
l'implémentation interne, sorte de. Elle comprend les détails comme combien «
registres » y sont, et comment « généraliste » ces registres sont, que ce soit
code peut s'exécuter de mémoire de données, si les périphériques sont traités
comme mémoire, registres, ou encore autre chose, s'il y a une pile et son
fonctionnement et ainsi de suite.
Vous entendrez les gens parler de comment certaines architectures sont
meilleures que d'autres. Je suppose que c'est vrai. Mais je ne veux pas
prétendre qu'il est en grande partie non pertinente pour l'amateur de typique.
Si vous souhaitez éviter les bizarreries architecturales d'une famille
particulière de microcontrôleurs, vous pouvez utiliser un langage de haut
niveau. Si vous êtes prêt à programmer dans l'assembleur, vous êtes à un niveau
d'intérêt où apprentissage et surmonter les bizarreries sont parti de l'étoffe
que vous devriez apprendre. En outre, nous parlons pas ici d'évaluant une
nouvelle architecture que certaine compagnie propose. Tous les jetons je mentionner
dans ce inscrutable ont été assez longtemps qu'ils ont prouvé que leurs
architectures sont assez bonnes pour de nombreuses applications réelles.
Voici quelques « caractéristiques » architecturales, vous pouvez lire sur
et des explications sur ce qu'ils signifient.
CDIC/RISC. Complexe Instruction Set Computer. Redescend Instruction Set
Computer.
Dans l'ancien temps, les concepteurs de CPU devenaient intelligents et
voulaient leur CPU pour soutenir les fonctionnalités de langage de haut niveau au
niveau matériel, conduisant à des instructions de manipulation cobol-comme
chaîne qui accepte des arguments dans des blocs de 8 registres. IIRC, c'était à
Berkeley et IBM qui a remarqué que rédacteurs de compilateur ne savaient pas
vraiment comment utiliser ces instructions compliquées un compilateur, la
quantité de silicium biens immobiliers utilisés par ces instructions devenait
grande, et en fait, la mise en œuvre du matériel parfois n'était pas aussi
rapide que de faire la même chose dans le logiciel de toute façon. Alors ils
ont dit "Je parie que nous pouvons faire le CPU aller beaucoup plus vite
si nous laissons ces instructions complexes et consacrer le silicium à des
registres plus ou la mémoire cache ou quelque chose" et a ainsi inventé le
processeur RISC. Aujourd'hui « RISC » est largement utilisé par les
départements de marketing pour signifier « nous n'avons pas très beaucoup
d'instructions », même si le reste de l'architecture n'est pas tout à fait
comme les chercheurs RISC originales avaient imaginé.
Architecture de Harvard.
Dans une architecture de Harvard, la mémoire de l'instruction et la mémoire
sont séparés, contrôlée par des autobus différents et parfois ont des tailles
différentes. Pour les microcontrôleurs, les instructions sont généralement
stockées dans la mémoire de « lecture seule », et les données sont en RAM ou
registres. Un exemple est la
Microcontrôleur PIC, où les instructions sont en 12, 14 ou 16 bits de large
flash, et les données sont en 8 bits
RAM large.
Architecture de von Neuman.
Dans un von Neuman Architecture, les données et les instructions part
l'espace mémoire, alors vous pourriez faire des choses comme la compilation
dynamique pour générer des instructions dans la RAM et l'exécuter ensuite. Le
TI MSP430 est un exemple d'une architecture de von Neuman.
Accumulateur basé
Dans une architecture « accumulateur basé », il n'y a généralement un
registre « spécial » où se produit la plupart du calcul réel (mathématiques,
logique, etc.). Quelques efforts doit être dépensée pour entrer des opérandes
dans l'accumulateur et les résultats retour à où vous en avez besoin. Le
contraire est un processeur avec des registres « généraliste », où un de
plusieurs registres peut être utilisé pour math/etc.
Load/Store
Une architecture de load/store signifie généralement que les opérandes pour
opérations ALU doivent dans les registres, afin que vous ayez à les charger au
préalable, de la mémoire et les stocker à l'époque où les opérations sont
terminées. L'inverse permet généralement des opérations entre un registre ou
accumulateur et un emplacement de mémoire directement. Architectures RISC
tendent à être charge/magasin, puisque beaucoup ou les processeurs CISCness du
CDCI apparaît dans l'application complexes « modes d'adressage » pour accéder à
des opérandes de mémoire. Dans une architecture RISC, toute cette complexité ne
doit être mis en œuvre dans la charge et stocker des instructions (voire pas du
tout.)