Architecture des calculateurs
Chap4:Microcontrôleur PIC & Arduino
28 avril 2019
Cpt. Abdallah Bakir
Objectif
X Connaître l’architecture d’un Microcontrôleur PIC.
X Connaître l’architecture du plate-forme de prototypage Arduino.
X Assimiler la configuration et l’utilisation des µC.
Cpt. Abdallah Bakir Architecture des calculateurs 28 avril 2019 2 / 29
Plan
1 Introduction
2 Microcontrôleur PIC
3 Plate-forme de prototypage Arduino
Cpt. Abdallah Bakir Architecture des calculateurs 28 avril 2019 3 / 29
Introduction
Pourquoi ?
X Une grande variété ⇒ Échantillon .
X Premiers "STEPS" .
X Se préparer pour des projet future.
Cpt. Abdallah Bakir Architecture des calculateurs 28 avril 2019 4 / 29
Introduction
Famille des µC
X Atmel : AT ; familles AT89Sxxxx, AT90xxxx, ...
X Motorolla :famille68HCxxx, ...
X PIC ; familles 12Cxxx, 16Cxxx, 16Fxxx, 18Fxxx, ...
X Intel : famille 80C186XX
X STMicroelectronics : famille STX
X Analog Devices : famille ADuC
Cpt. Abdallah Bakir Architecture des calculateurs 28 avril 2019 5 / 29
Microcontrôleur PIC
Programmable Integrated Circuit
X RISC
X Famille
Base-Line : ils utilisent des mots d’instruction de 12 bits.
Mid-Range : ils utilisent des mots d’instruction de 14 bits.
High-End : ils utilisent des mots d’instruction de 16 bit.
X Une instruction = Un seul mot de programme.
X chaque instruction (sauf les sauts)= un cycle machine.
X Cycle = Horloge/ 4
X sont présentés en boîtier DIL (Dual In Line)
X Comment connaître le numéro d’un pin ?
Cpt. Abdallah Bakir Architecture des calculateurs 28 avril 2019 6 / 29
Microcontrôleur PIC
Identification du PIC
Utiliser l’appellation du type : PICwwlxxyyy-zz
X WW : Représente la catégorie du composant (12, 14, 16, 17,
18,24,32)
X L : Tolérance plus importante de la plage de tension.
X XX : Type de mémoire de programme :
C : EPROM ou EEPROM.
CR : PROM.
F : FLASH.
X YYY : Identification.
X ZZ : Vitesse maximum tolérable.
X Exemple : PIC16LF155X ,PIC24FJ64GC010 ,PIC32MX1XX
Cpt. Abdallah Bakir Architecture des calculateurs 28 avril 2019 7 / 29
Microcontrôleur PIC
Environnement de développement
X "From Scratch"
Conception d’une circuit électrique
PCB Design.
Éditeur & compilateur d’un programme C : (.C → .ASM → .Hex)
#Familles ont des compilateurs différents (voir datasheet du µC).
PICkit 3 Programmer.
X PIC ’Development Board’
Éditeur & compilateur d’un programme C.
PICkit 3 Programmer.
Exemple : PIC Explorer16
Cpt. Abdallah Bakir Architecture des calculateurs 28 avril 2019 8 / 29
Microcontrôleur PIC
Structure de base D’un programme C
X Toutes instructions ou actions se terminent par un point virgule ; .
X Un bloc d’instructions commence par { et se termine par }.
X Un programme en C utilise deux zones mémoires principales :
La zone des variables est un bloc de RAM où sont stockées des
données manipulées par le programme.
La zone des fonctions est un bloc de ROM qui reçoit le code
exécutable du programme et les constantes.
Cpt. Abdallah Bakir Architecture des calculateurs 28 avril 2019 9 / 29
Microcontrôleur PIC
Code ’C’ : Fonctions
// Function with output
char nomdefonction (char nomdesparamètres)
{
Instruction 1 ;
.
Instruction n ;
Return (valeur) ;}
// Function without output
Void nom_de_fonction (Void)
{
Instruction 1 ;
.
. Instruction n ;
}
Cpt. Abdallah Bakir Architecture des calculateurs 28 avril 2019 10 / 29
Microcontrôleur PIC
Code ’C’ : Les opérateurs
X Les opérateurs d’affectation et arithmétiques :
=,+,*,/,...
X Les opérateurs de comparaison :
>,<,==,!=,...
X Les opérateurs logique de comparaison :
\&\&, ||, !
X Les opérateurs binaires bit à bit :
&,|,^,>>,<<,...
X Les structures répétitives :
For,while, do..while, switch,...
Cpt. Abdallah Bakir Architecture des calculateurs 28 avril 2019 11 / 29
Microcontrôleur PIC
Les fonctions adaptées aux microcontrôleurs PIC
X Les directives
#use delay
Renseigne le compilateur sur la fréquence du quartz utilisé.
Exemple :
#use delay(clock=4000000) ///// Quartz de 4Mhz
#fuses
Permet de définir le mot de configuration. (type
d’oscillateur,Activer/désactiver le chien de garde ,....) .
Exemple :
#fuses NOWDT //désactiver le chien de garde
#int_xxxx
Spécifie la source de l’interruption. .
Exemple :
#int_ext // interruption externe.
Cpt. Abdallah Bakir Architecture des calculateurs 28 avril 2019 12 / 29
Microcontrôleur PIC
Les fonctions adaptées aux microcontrôleurs PIC
X Les directives .
X La gestion des entrées et des sorties.
X Gestion des temporisations
X Gestion de la liaison série
Cpt. Abdallah Bakir Architecture des calculateurs 28 avril 2019 13 / 29
Microcontrôleur PIC
Constantes
X Les constantes :
Nom : ne doit pas dépasser 32 caractères, sans accent
Instruction : #define
Syntaxe :
#define> <identificateur> <valeur> ;
Exemple :
#define PI 3.14
X Déclaration spécifiques :
#bit id = x,y
Id : identifiant (Nom d’un bit)
X : Nom du variable ou d’une constante
Y : position du bit
Exemple :
#bit LED_R=PortB,4
Cpt. Abdallah Bakir Architecture des calculateurs 28 avril 2019 14 / 29
Microcontrôleur PIC
Constantes
X Déclaration spécifiques :
#byte id = X .
Id : identifiant
X : valeur 8 bits
Exemple :
#byte PORTA = 5 // adresse du port A
Cpt. Abdallah Bakir Architecture des calculateurs 28 avril 2019 15 / 29
Microcontrôleur PIC
Variables
X Syntaxe :
<signed> <type> <identif1>, ..., <identifn>
X Exemples
Int A,B,C,D ;
Char MESSAGE[10] ;
Signed int A ;//Entier signé, de -128 à +127
X Différentes bases :
int a = 4 ; // un nombre décimal.
int b = 0b1010 ; // 0b: un nombre binaire.
int p = 0x00FF ; // 0x : un nombre hexadécimal.
char c = ‘A’; // ‘’ = code ASCII.
Cpt. Abdallah Bakir Architecture des calculateurs 28 avril 2019 16 / 29
Microcontrôleur PIC
Variables
Cpt. Abdallah Bakir Architecture des calculateurs 28 avril 2019 17 / 29
Plate-forme de prototypage Arduino
C’est Quoi ?
X Basée sur un microcontrôleur ATMEL..
X un circuit de commande capable de piloter des capteurs et des
actionneurs afin de simuler ou créer des systèmes automatisés.
X Logiciel de programmation
X Famille
Uno.
Pro.
Mini.
Leonardo
...
Cpt. Abdallah Bakir Architecture des calculateurs 28 avril 2019 18 / 29
Plate-forme de prototypage Arduino
Pourquoi ?
X Prix
X Compatibilité Linux, Windows et Mac .
X Logiciel et matériel sous licence libre
X Le logiciel : gratuit et open source, développé en Java.
X Le matériel : cartes électroniques dont les schémas sont en libre
circulation sur internet
Cpt. Abdallah Bakir Architecture des calculateurs 28 avril 2019 19 / 29
Plate-forme de prototypage Arduino
Carte Arduino Uno
X Basée sur le µC ATmega328P.
X Prix : 22$ .
X Programmable depuis un port USB.
X La plus utilisée de la famille Arduino.
Cpt. Abdallah Bakir Architecture des calculateurs 28 avril 2019 20 / 29
Plate-forme de prototypage Arduino
’Vue Externe’
Cpt. Abdallah Bakir Architecture des calculateurs 28 avril 2019 21 / 29
Plate-forme de prototypage Arduino
’Vue Interne’
Cpt. Abdallah Bakir Architecture des calculateurs 28 avril 2019 22 / 29
Plate-forme de prototypage Arduino
’Vue Interne’ :ATmega328P
X Tension de fonctionnement→ 5V .
X E/S numériques → 23 : 3 ports PortB, PortC, PortD .
X Entrée analogiques → 6 Entrées : ADC0(PC0) à ADC5(PC5).
X Mémoire Flash → 32 Ko.
X SRAM → 2ko .
X EEPROM → 1ko.
X Vitesse de l’horloge → 20MHz.
X Timers → Timer0 et Timer1, Timer2.
Cpt. Abdallah Bakir Architecture des calculateurs 28 avril 2019 23 / 29
Plate-forme de prototypage Arduino
Environnement de développement
X Carte Arduino.
X Câble USB .
X Éditeur de source ’Arduino’.
X Pilotes du périphérique Série-USB
Cpt. Abdallah Bakir Architecture des calculateurs 28 avril 2019 24 / 29
Plate-forme de prototypage Arduino
Structure Du programme Arduino
X Proche du C et du C++ mais il y a certains différences.
X Pas de fonction main.
X Composé de :
Déclaration des variables (optionnelle).
Fonction setup () : C’est une partie initialisation et configuration
des entrées / sorties. Elle est appelée une seule fois lorsque le
programme commence.
Fonction loop() : C’est la partie principale contenant le
programme. Elle est répétée indéfiniment en boucle infinie
Cpt. Abdallah Bakir Architecture des calculateurs 28 avril 2019 25 / 29
Plate-forme de prototypage Arduino
Structure
X Plus de détails visitez "https ://www.arduino.cc/reference/en/".
X Exemple de base :
Cpt. Abdallah Bakir Architecture des calculateurs 28 avril 2019 26 / 29
Plate-forme de prototypage Arduino
Structure(2)
Cpt. Abdallah Bakir Architecture des calculateurs 28 avril 2019 27 / 29
Plate-forme de prototypage Arduino
Fonctions de base
Cpt. Abdallah Bakir Architecture des calculateurs 28 avril 2019 28 / 29
Plate-forme de prototypage Arduino
Variables et constantes
Cpt. Abdallah Bakir Architecture des calculateurs 28 avril 2019 29 / 29