ADuC
ADuC est le nom d'une famille de microcontrÎleurs 8 bits de la firme américaine Analog Devices. Elle comporte de nombreux membres, différant par les tailles mémoire ainsi que par le nombre et le type de périphériques embarqués. Tous les membres sont basés sur l'architecture mise au point par Intel avec son célÚbre microcontrÎleur 8051.
La firme AD (Analog Devices) Ă©tant spĂ©cialisĂ©e dans les circuits analogiques, il n'est pas Ă©tonnant de constater que les microcontrĂŽleurs qu'elle propose conviennent parfaitement pour le traitement de signaux analogiques, grĂące aux convertisseurs analogiques-numĂ©riques embarquĂ©s. Les sorties se font en numĂ©rique et/ou analogique. Un seul composant est donc parfaitement capable de rĂ©aliser des fonctions telles que l'acquisition de donnĂ©es, la rĂ©gulationâŠ
Architecture de l'ADuC812
à titre d'exemple, considérons un des premiers membres de la famille, l'ADuC812. Celui-ci est présenté en boßtier Quad Flatpack avec 52 broches.
CĆur 8051
L'ADuC812 est un systĂšme d'acquisition de donnĂ©es analogiques complĂštement intĂ©grĂ©. Il est bĂąti autour d'un cĆur 8051 ; celui-ci est dĂ©crit en dĂ©tail dans l'article rĂ©fĂ©rencĂ©. Nous nous contenterons donc de discuter les additions Ă l'architecture de base. Rappelons que le 8051 avait Ă©tĂ© trĂšs intelligemment conçu pour permettre des extensions. C'est ainsi que dans le 8051, un grand nombre des SFR (registres de fonctions spĂ©ciales, destinĂ©s Ă contrĂŽler les pĂ©riphĂ©riques) n'ont pas Ă©tĂ© attribuĂ©s.
MĂ©moires
L'ADuC812 comporte :
- une mĂ©moire morte Flash effaçable Ă©lectriquement de 8 Ko ; celle-ci peut donc ĂȘtre programmĂ©e par l'utilisateur, ce qui facilite grandement le dĂ©veloppement des programmes ;
- 256 octets de RAM ;
- mais aussi, et c'est une nouveauté par rapport au 8051, une mémoire Flash effacable électriquement de 640 octets pour les données ;
- lorsqu'on a besoin d'un grand espace pour les données ou le programme, le 812 permet d'utiliser jusqu'à 16 Mo d'espace pour les données et jusqu'à 64 Ko d'espace pour le programme ; mais ceci réduit les nombres de lignes de ports d'E/S disponibles, certains ports étant utilisés comme bus d'adresses et de données.
Convertisseur analogique/numérique
Le 812 comporte un convertisseur A/N à approximations successives d'une résolution de 12 bits, précédé d'un multiplexeur analogique 8 canaux et d'un circuit suiveur/bloqueur (« track and hold ») destiné à maintenir un niveau constant à l'entrée du CAN durant la conversion.
Convertisseurs numériques/analogiques
Le 812 comporte deux convertisseurs N/A 8 bits suivis d'un Ă©tage tampon qui peut ĂȘtre dĂ©sactivĂ©.
Référence de tension interne
Le 812 comporte une rĂ©fĂ©rence de tension de type « bandgap », fournissant une tension trĂšs stable de 2,5 V ; celle-ci peut ĂȘtre utilisĂ©e comme rĂ©fĂ©rence pour le CAN, les CNA et aussi pour un circuit extĂ©rieur.
Horloge
Le 812 peut ĂȘtre pilotĂ© par une horloge externe (400 kHz Ă 16 MHz) ou par son horloge interne ; pour spĂ©cifier la frĂ©quence de celle-ci, il suffit d'ajouter entre les broches Xtal1 et Xtal2 un quartz taillĂ© pour obtenir la frĂ©quence de rĂ©sonance dĂ©sirĂ©e, et un condensateur (valeur recommandĂ©e par le fabricant du quartz, gĂ©nĂ©ralement quelques dizaines de pF) entre chaque broche et la masse.
Ports d'E/S
Comme le 8051, le 812 comporte quatre ports d'E/S, chaque port a une structure particuliĂšre ; ils sont bidirectionnels, sauf le port 1 qui ne peut ĂȘtre utilisĂ© qu'en port d'entrĂ©e. Le port 3 permet d'absorber des courants allant jusqu'Ă 8mA, de façon Ă pouvoir piloter des leds ou des optocoupleurs sans Ă©tage tampon externe.
Alimentation
Le 812 peut ĂȘtre alimentĂ© entre 2,7 et 5,5 V. Le dĂ©couplage des broches d'alimentation doit ĂȘtre particuliĂšrement soignĂ©, de façon Ă Ă©viter des interfĂ©rences entre la circuiterie numĂ©rique et analogique.
Interface série RS-232
Le 812, comme le 8051, est muni d'une interface série RS-232. Celle-ci nécessite un circuit externe pour adapter les niveaux d'entrée et sortie du 812 aux niveaux prévus par la norme RS-232.
- Pour rappel, la norme RS-232 prĂ©voit des niveaux de sortie compris entre +5 et +15 V pour un niveau logique 0, et entre -5 et â15 V pour un niveau logique 1. Les entrĂ©es doivent, elles, accepter des niveaux compris entre +3 et +25 V, et entre -3 et â25 V.
L'entrĂ©e sĂ©rie peut ĂȘtre utilisĂ©e pour tĂ©lĂ©charger des donnĂ©es Ă destination de la Flash programme ou de la Flash donnĂ©es Ă partir d'un terminal. Cette possibilitĂ© permet aussi la mise au point du programme (« debugging »).
Autres interfaces série
Le 812 intÚgre également la circuiterie nécessaire pour réaliser l'interface série trÚs populaire de type SPI (Serial Peripheral Interface). Celle-ci nécessite trois lignes : MISO (Master In, Slave Out), MOSI (Master Out, Slave In) et SCLOCK (Serial Clock).
Est Ă©galement prĂ©vue une interface sĂ©rie I2C, avec ses deux lignes SDATA (Serial Data) et SCLOCK (Serial Clock). Comme les lignes sont partagĂ©es avec l'interface SPI, seule l'une des deux interfaces peut ĂȘtre active.
Chien de garde
Le 812 est surveillĂ© par un chien de garde (watchdog), qui est destinĂ© Ă gĂ©nĂ©rer une commande de reset du systĂšme lorsque celui-ci, Ă la suite d'une erreur de programmation ou d'un Ă©vĂ©nement fortuit, entre dans une boucle sans fin erronĂ©e (le programme se plante, en langage imagĂ©!). La durĂ©e du temporisateur utilisĂ© par le chien de garde, est rĂ©glable, et celui-ci peut aussi ĂȘtre dĂ©sactivĂ© (ce qui est souvent utile pendant la phase de mise au point du programme).
Superviseur d'alimentation
Ce circuit surveille en permanence les tensions d'alimentation des circuits analogiques et numĂ©riques. Il indique lorsque l'une d'entre elles, ou les deux, tombent en dessous d'un seuil qui est rĂ©glable entre 2,63 et 4,63 V. En cas de sous-tension, le fonctionnement du cĆur est bloquĂ©, de façon Ă ne pas exĂ©cuter un programme incorrect, mais les registres de travail peuvent ĂȘtre sauvegardĂ©s.
Compteurs
Le 812 comporte 3 compteurs 16 bits, semblables aux compteurs présents dans le MC 8052 d'Intel.
Interruptions
Le 812 comporte pas moins de neuf sources d'interruption, avec deux niveaux de priorité.
- Superviseur de tension
- Interruption externe 0 et 1
- Compteur/temporisateur 0, 1 et 2
- Convertisseur A/N
- Interface I2C/SPI
- Interface série RS-232
Autres membres de la famille
La famille ADuC comporte bien d'autres membres, et la liste s'allonge au fil des mois. à titre d'exemple, donnons quelques caractéristiques des ADuC 814 et ADuC 831.
ADuC 814
Il s'agit d'un processeur 8 bits bĂąti autour d'un cĆur 8052 et Ă©quipĂ© d'un convertisseur A/N Ă six entrĂ©es d'une rĂ©solution de 12 bits capable de convertir 247 k Ă©chantillons/s. Il se contente d'un cristal Ă 32 kHz, qui stabilise, grĂące Ă une boucle Ă verrouillage de phase (PLL, Phase-Locked Loop), la frĂ©quence de l'horloge locale Ă 16,8 MHz. L'utilisation d'un quartz basse frĂ©quence permet de rĂ©duire la puissance consommĂ©e.
Il est équipé d'une source de tension de référence interne programmable (via un convertisseur N/A) et de deux CNA d'une résolution de 12 bits chacun avec tampon de sortie.
CÎté mémoire : 8 Ko de mémoire flash/EE pour le programme, 640 octets de flash/EE pour les données et 256 octets de RAM.
Il possÚde trois compteurs/temporisateurs, onze lignes d'E/S et onze sources d'interruption avec deux niveaux de priorité.
Il peut ĂȘtre alimentĂ© en 3 ou 5 V, ne consomme que 3 mA sous 3 V (avec une frĂ©quence d'horloge de 2,1 MHz), et la puissance consommĂ©e tombe Ă 15 ÎŒA en mode « Power Down » (horloge de 32 kHz activĂ©e).
Il est livré dans un boßtier 28 broches et comporte les périphériques embarqués suivants : circuit de reset à la mise sous tension (« power-on reset circuit »), moniteur de température, temporisateur pour un réveil à intervalles réguliers (« wake-up/RTC timer »), interface série UART, interfaces série SPI/I2C combinés, superviseur d'alimentation, chien de garde.
Programme et donnĂ©es peuvent bien sĂ»r ĂȘtre tĂ©lĂ©chargĂ©s par l'interface sĂ©rie ; celle-ci permet aussi l'Ă©mulation 1 broche (« single-pin emulation »), utile en phase de mise au point du programme.
ADuC 831 et 832
Il s'agit d'un processeur 8 bits bĂąti autour d'un cĆur 8052 et Ă©quipĂ© d'un convertisseur A/N Ă 8 entrĂ©es d'une rĂ©solution de 12 bits capable de convertir 247 k Ă©chantillons/s ; avec dispositif d'Ă©talonnage incorporĂ©. La frĂ©quence du quartz doit ĂȘtre comprise entre 1 et 16 MHz pour le 831 ; l'ADuC 832 est une version particuliĂšre du 831 prĂ©vue pour fonctionner avec un quartz de 32 kHz.
Il est équipé :
- de deux CNA d'une résolution de 12 bits chacun avec tampon de sortie ;
- de deux CNA 16 bits de type ÎŁ-Î ;
- de deux générateurs de signaux modulés en largeur d'impulsion (PWM, Pulse-Width Modulation)
CÎté mémoire : 62 Ko de mémoire flash/EE pour le programme, 4 Ko de flash/EE pour les données et 2 304 octets (sic!) de RAM ; il s'agit en fait des 256 octets classiques de la famille plus 2 Ko de RAM étendue.
Il possĂšde trois compteurs/temporisateurs, 32 lignes d'E/S (certaines ont une double fonction et pourraient ne pas ĂȘtre disponibles dans certaines applications) et douze sources d'interruption avec deux niveaux de prioritĂ©.
Il peut ĂȘtre alimentĂ© en 3 ou 5 V. Trois modes de fonctionnement sont prĂ©vus : « normal », « Idle » et « Power-Down » ; dans ce dernier mode, la consommation tombe Ă 20 ÎŒA sous 3 V.
Il est livré dans un boßtier 56 broches et comporte les périphériques embarqués suivants : moniteur de température, interface série UART, interfaces série SPI/I2C combinés, superviseur d'alimentation, chien de garde.
Programme et donnĂ©es peuvent bien sĂ»r ĂȘtre tĂ©lĂ©chargĂ©s par l'interface sĂ©rie ; celle-ci permet aussi l'Ă©mulation 1 broche (« single-pin emulation »), utile en phase de mise au point du programme.