Le microcontrôleur
Le SAM D20J18, membre intéressant de la famille ARM-Cortex-M0+, est armé de 64 broches, il possède 256 Ko de mémoire Flash, 32 Ko de SRAM et peut être cadencé à 48 MHz maximum. Économe en énergie, rapide, il comporte nombre de périphériques : sa polyvalence est remarquable. Il ne consomme que 70 μA/MHz sous 1,62 à 3,63 V. Au nombre de ses spécificités : l’ES (Event-System = système d’événement) et le PTC (Peripheral Touch Controller = contrôleur tactile périphérique). Nous reviendrons en détail sur le PTC quand nous le mettrons à contribution. En fonction de la configuration, l’Event-System peut par exemple, à l’image des μC ATxmega, réveiller l’unité centrale quand certains modules périphériques tel que l’ADC déclenchent un événement. Le μC connaît deux modes de sommeil : attente (Idle), seule la CPU est désactivée ; veille (Standby), l’ensemble du système d’horloge et tous les éléments (hormis ceux configurés différemment dans le programme) roupillent.

 
ARM Cortex-M0+
Figure 2. Synoptique du contrôleur SAM-D20

Sur le synoptique fonctionnel (fig. 2) de cette famille, tout en haut à gauche, on découvre le bus ARM Single Cycle I/O, qui permet au processeur un accès ultrarapide aux GPIO (General Purpose I/O). On retrouve en dessous l’interface de débogage (Debug) sérielle avec accès direct au processeur. Sous le bloc High Speed Matrix, auquel, sur la droite, sont connectées les mémoires avec leurs contrôleurs respectifs fonctionnant en esclaves, on peut identifier (contrairement à ce qui est le cas avec un μC à 8 bits conventionnel) divers bus de données et Peripheral Access Controller, qui peuvent, le cas échéant, empêcher l’écriture dans des registres de périphériques. Le Bus APB-C est le « cortex » des périphériques les plus importants, dont les plus intéressants sont les 6 blocs SERCOM. Ils sont utilisés pour la communication sérielle et peuvent être configurés en interfaces sérielles (USART, I2C, SPI). Les éléments périphériques restants (exception faite du PTC) existent sur la plupart des μC à 8 bits, mais avec moins de puissance et en nombre moindre. Les 8 TIMER COUNTER peuvent être utilisés en compteurs à 2x8 bits, 1x16 bits ou (par paire) en compteur à 32 bits. L’autre côté du synoptique est moins spectaculaire, concernant en fait l’alimentation et l’horloge. Nous reviendrons, étape par étape et par la pratique, sur les possibilités, le paramétrage et l’application de tous ces périphériques. La fiche de caractéristiques (pdf) compte 700 pages.
 
Les cartes d’extension
Pour la Xplained Pro-Board, Atmel a développé différentes cartes d’extension afin de faciliter la prise en main, d’accélérer le prototypage, d’arriver rapidement au but et d’apprendre à mieux connaître le μC. Aspect pratique : les cartes d’extension viennent directement s’enficher sur les embases mâles de la carte mère. Chaque carte d’extension comporte une puce ATSHA204 (CryptoAuthentication) à 3 pattes qui renseignent la puce EDBG de la carte-mère plained-Pro-Board sur l’identité de l’extension connectée (p. ex. sa plage de tension et son courant de service maximal). La puce EDBG relaie ces informations à l’environnement Atmel Studio. Studio ouvre une fenêtre proposant des liens vers des fiches de caractéristiques, des bibliothèques ou des programmes didactiques.
 
Figure 3: La carte d’extension la plus simple que propose Atmel.
Atmel Proton Xplained Pro

Si vous avez l’intention de connecter une carte de votre propre cru à une carte Xplained-ProBoard nous vous recommandons d’utiliser la carte PROTO1 Xplained Pro (fig. 3). Elle comporte 200 îlots de soudure et vient s’enficher sur les connecteurs EXT1 et PWR. Sur le côté droit, on trouve une connexion pour les nommés XplainedTop-Module, caractérisée par un routage différent. La partie supérieure de la platine, l’alimentation, peut être facilement séparée du reste.