COURS « INITIATION AUX MICROCONTROLEURS PIC DE MICROCHIPS »
5 pages
Français
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres

COURS « INITIATION AUX MICROCONTROLEURS PIC DE MICROCHIPS »

Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres
5 pages
Français

Description

  • mémoire - matière potentielle : données
  • mémoire - matière potentielle : programme
  • mémoire - matière potentielle : programme
  • mémoire - matière potentielle : données
  • mémoire - matière potentielle : programme et de données
  • mémoire
  • mémoire - matière potentielle : donnée
  • mémoire - matière potentielle : flash
Le but de ce cours est d'aborder le développement de programmes en assembleur et la mise en œuvre matérielle pour les microcontrôleurs Microchip (PIC) de moyenne gamme (MID- RANGE). AUTOMATISME Un équipement est dit automatique quand il est capable de prendre des décisions ponctuelles sans intervention humaine. Un automatisme comporte toujours deux parties : – Une PARTIE OPERATIVE (P.O.) dont les actionneurs (moteurs, vérins,...) agissent dans un processus, – Une PARTIE COMMANDE (P.
  • bh intcon
  • indf indf
  • status
  • fsr
  • ah pclatch
  • pcl pcl
  • instruction
  • instructions
  • adresse
  • adresses
  • données
  • donnée
  • programme
  • programmes

Sujets

Informations

Publié par
Nombre de lectures 760
Langue Français

Exrait

COURS « INITIATION AUX MICROCONTROLEURS PIC DE MICROCHIPS »
BUT DU COURS « INITIATION AUX MICROCONTROLEURS PIC DE MICROCHIPS »
Le but de ce cours est d’aborder le développement de programmes en assembleur et la mise en œuvre matérielle pour les microcontrôleurs Microchip (PIC) de moyenne gamme (MID RANGE).
RAPPELS SUR LES COMMANDES NUMERIQUES AUTOMATISME Un équipement est dit automatique quand il est capable de prendre des décisions ponctuelles sans intervention humaine. Un automatisme comporte toujours deux parties : Une PARTIE OPERATIVE (P.O.) dont les actionneurs (moteurs, vérins,...) agissent dans un processus, Une PARTIE COMMANDE (P.C.) qui coordonne les différentes actions de la partie opérative.
Dans un automatisme numérique, la partie commande est une commande numérique. Le Statut est constitué des informations d'entrée de la commande numérique. La Commande constitue l’information de sortie de la commande numérique. Le calculateur élabore les commandes, en fonction du statut, suivant une séquence d'opérations numériques. La séquence des opérations numériques est décrite dans un programme d'instructions.
COMMANDES NUMERIQUES
ORGANISATION FONCTIONNELLE
Le schéma synoptique suivant représente une organisation classique de commande numérique de type VONNEUMAN.
Bus d'Adresse
Mémoire MémoireCommande Ports Processseur Décodeur ProgrammeDonnées Entrée/Sortie (EPROM) (RAM) Statut Instruction Donnée Donnée
Bus de données
Processeur Le processeur lit et exécute les instructions du programme. Les instructions sont des opérations de logique, d'arithmétique, de test ou de transfert. Les données sont reçues par les ports d’entrée ou stockées dans la mémoire de données.
Mémoire Programme Le programme est mémorisé sous forme d'instructions élémentaires dans une mémoire de programme non volatile. Ces instructions sont accessibles par l’intermédiaire de leur adresse de stockage.
Mémoire Données Les données sont mémorisées temporairement sous forme de mots dans la mémoire de données. Ces données sont accessibles par l’intermédiaire de leur adresse de stockage.
Port d’Entrée/Sortie Cette fonction échange les informations de commande et de statut avec la partie opérative. Ces échanges sont arrangés par l’intermédiaire d’une adresse de sélection
Bus de Données Ce bus transfert les informations, instructions ou données, entre des fonctions internes de la commande numérique.
Bus d’Adresse et Décodeur L’adresse est un numéro d'ordre, émis par le processeur, qui permet d’accéder à tous les périphériques. Le décodeur d’adresse décode une partie du bus d’adresse pour activer la fonction périphérique concernée.
ORGANISATION SEQUENTIELLE
L’organigramme suivant représente l'organisation séquentielle de base des commandes numériques.
Reset
Initialiser
Lire Statut
Calculer Commande
Sortir Commande
Temporiser
Le RESET fait débuter le fonctionnement de la commande par une phase d'initialisation.
La commande effectue la lecture du statut actuel.
D’après les informations contenues dans le statut, la commande numérique élabore un ordre qu’elle transfert en sortie.
Enfin la commande peut effectuer une période de temporisation avant de recommencer le cycle par une nouvelle lecture du statut.
MICROPROCESSEURS
ARCHITECTURE CLASSIQUEVONNEUMANN
Architecture VonNeumann
CPU
Mémoire Programme et Mémoire Donnée
L’architecture VonNeumann utilise un seul bus pour transmettre les instructions (programme) et les données. Cette architecture ne permet pas de lire les instructions pendant la lecture ou l’écriture d’une donnée.
ARCHITECTUREHARVARD
Architecture Harvard
Mémoire Programme
CPU
Mémoire Donnée
L’architecture utilise deux bus séparés. Un bus pour les instructions (programme) et un autre bus pour les données. Avec cette architecture ont peut lire les instructions pendant la lecture ou l’écriture des données (pipeline). L’architecture Harvard est plus rapide.
MICROPROCESSEURSRISCETCISC
Les microprocesseursCISC(Complex Instruction Set Computing) sont dotés d’un jeu étendu d’instructions complexes. Ces instructions sont relativement lentes. Les microprocesseurs CISCprivilégient la puissance de traitement au détriment de la rapidité.
Les microprocesseursRISC(Reduced Instruction Set Computing) sont munis d’un jeu réduit d’instructions simples. Ces instructions sont adaptées et sont très rapides.
MICROCONTROLEURS
Les Microcontrôleurs sont des circuits intégrés qui contiennent, dans un circuit unique, toutes les fonctions d’une commande numérique classique. C'estàdire :  lemicroprocesseur ;  lesmémoires de programme et de données ;  lesports d’entrée et de sortie parallèle ou série ;  lesbus de données et d’adresse ;  d’autrespériphériques (compteur/timer, convertisseurs analogique/numérique, etc).
SEQUENCE DU PROCESSEUR
Le grafcet suivant reproduit le cycle de fonctionnement d’un processeur :
RESET Début Programme 1 1
Lecture Instruction
Transfert ?Test ?Calcul ? Transfert DonnéesSaut ProgrammeExécution calcul 1 1 1
Suite Programme
Le RESET fait débuter le processeur par la première instruction du programme. Le processeur lit cette instruction en sélectionnant son adresse dans la mémoire de programme.
Les instructions sont des opérations de calcul, de test ou de transfert : En cas de transfert, le processeur effectue un cycle de lecture ou un cycle d'écriture ; En cas de test, le processeur fait un choix entre deux branches de programme ; En cas d'opération de calcul, le processeur exécute l'opération.
Le processeur détermine l'adresse de la prochaine instruction et continue la séquence par la lecture de la prochaine instruction.
LANGAGE DE PROGRAMMATION
Edition de programme Le programmeur édite, enregistre et teste le programme sur un ordinateur équipé pour le développement du logiciel et la programmation du microcontrôleur ou d’une mémoire non volatile.
Les programmes peuvent être écrits à trois niveaux différents : Langage évolué (Pascal, Basic, Langage C, etc), Assembleur (mnémonique et opérande), Langage machine (binaire ou hexadécimal).
Le programme binaire est transféré dans une mémoire non volatile. Cette mémoire et sont logiciel sont implantés sur la carte de commande ou dans un microcontrôleur.
QUI EST MICROCHIPS
Microchip Technology Incorporated fabrique, entre autres, les produits suivants :  les microcontrôleurs picmicro®,  des microcontrôleurs radio rfPIC,  des microcontrôleurs dsp dspic®,  des circuits analogiques et des interfaces,  des circuits d’authentification keelok®,  des eeproms séries…
L’entreprise Microchip Technology Incorporated a été fondée en 1989. Sont siège est installé à Chandler en Arizona (USA). Elle emploie 3400 personnes. Microchips est le premier fournisseur mondial de microcontrôleurs 8 bits.
Les microcontrôleurs de Microchips sont commercialisés sous la marque PIC®. Depuis leur lancement, en 1990, plus de 3 milliards de PIC auraient été livrés.
Il y aurait plus de 212 types de microcontrôleurs différents.
L’architecture des PICs est de type Harvard à noyau RISC. Cette architecture reste compatible à travers une famille de 8 à 84 broches. Ce qui permet une migration aisée avec très peu de changement dans les programmes.
Les caractéristiques avancées sont :
 despériphériques de comptage et temporisation sophistiqués ;  desconvertisseurs analogique/numérique internes ;  descapacités mémoires étendues pour le code et les données ;  despériphériques de communication évolués (I2C™/SPI™/ USB/CAN ports et USARTs) ;  unetechnologie de programmation in situ (sur carte) ;  desmémoires Flash, EEPROM, OTP et ROM.
Les Microcontrôleurs PIC sont répartis en trois gammes en fonction de la largeur des mots d’instructions.  BaseLine : instruction sur 12 bits,  MidRange : instruction sur 14 bits,  HighEnd : instruction sur 16 bits.
LES MICROCONTROLEURS MID RANGE DE MICROCHIPS (PIC16CXXX)
ARCHITECTURE COMPLETE.
PIC16C712 (REMPLACE LE PIC16C71)
Mémoire programme EEPROM data Ram Port I/O Boîtier CAN 1 Générateur PWM Compteur/Timer
1024*14 256 octets 8 (Port B) + 5 (Port A) 18 broches 4 entrées sur 8 bits 10 bits 1 x 16 bits + 2 x 8 bits + WDT
Fréquence max20 MHzMEMOIRE DEDONNEES ICSP (programmation in situ)oui BOR (reset à l’affaiblissementoui Bank 0Bank 1Bank 2Bank 3 de tension) 7Fh CCP (comparaison et captureoui 128 o128 o128 o128 o PWM) 00h PIC16F84A (REMPLACE LE PIC16F84) RAMINTERNE Mémoire programme Flash1024*14 EEPROM data64 Bank 0Bank 1Bank 2Bank 3 Ram 68octets 7Fh Port I/O8 (Port B) + 5 (Port A) Zone libreZone libreZone libreZone libre Boîtier 18broches 20h CAN  1Fh 1 Générateur PWMSFR SFR SFR SFR Compteur/Timer 1x 8 bits + WDT 00h Fréquence max20 MHz ICSP (programmation in situ)Oui REGISTRES SPECIAUX(SFR) BOR (reset à l’affaiblissementNon de tension) CCP (comparaison et captureNon Add Bank0 Bank1 Bank2 Bank3 PWM) 00h INDFINDF INDFINDF 01h TMR0OPTION_REG TMR0OPTION_REG PIC16F877A (REMPLACE LE PIC16F877) 02h PCLPCL PCLPCL 03h STATUSSTATUS STATUSSTATUS Mémoire programme Flash8192*14 04h FSRFSR FSRFSR EEPROM data256 05h PORTATRISA Ram 368octets 06h PORTBTRISB PORTBTRISB Port I/O3 x 8 (Port B,C,D) + 6 (Port 07h PORTCTRISC PORTFTRISF A) + 3 (port E) 08h PORTDTRISD PORTGTRISG Boîtier 40broches 09h PORTEPORTE CAN 8entrées sur 10 bits 0Ah PCLATCHPCLATCH PCLATCHPCLATCH Comparateurs 2 0Bh INTCONINTCON INTCONINTCON 1 Générateur PWM2 x 10 bits 0Ch PIR1PIE1 Compteur/Timer 1x 16 bits + 1 x 8 bits + WDT 0Dh PIR2PIE2 Fréquence max20 MHz 0Eh TMR1LPCON Port sérieUSART, I²C, SPI 0Fh TMR1HOSCCAL ICSP (programmation in situ)Oui 10h T1CON BOR (reset à l’affaiblissementOui 11h TMR2 de tension) 12h T2CONPR2 CCP (comparaison et capture2 13h SSPBUFSSPADD PWM) 14h SSPCONSSPATAT 15h CCPR1L CHAMPS MEMOIRE 16h CCPR1H 17h CCP1CON MEMOIRE DEPROGRAMME 18h RCSTATXSTA 19h TXREGSPBRG 1FFFh 1AhRCREG 2ko (page 3)1Bh CCPR2L 1800h 1Ch CCPR2H 17FFh 1DhCCP2CON 2ko (page 2) 1Eh ADRES 1000h 1Fh ADCON0ADCON1 0FFFh 2ko (page 1) REGISTRE DETAT(STATUS) 08000h 07FFh Bit 76 54 32 10 2ko (page 0)  IRPRP1 RP0/TO /PDZ DCC 0000h Memory Symbole Fonction rganization C Retenue
DC Z /PD /TO RP0 RP1 IRP
Retenue décimale (pour les opérations BCD). Zéro Power Down Time Out (WDT) Bit 0 de sélection de banque de registre. Bit 1 de sélection de banque de registre. Sélection de banque de registre en accès indirect
RP1 RP0Banque de RegistreAdresse 0 0Banque 0000h—07Fh 0 1Banque 1080h—0FFh 1 0Banque 2100h—17Fh 1 1Banque 3180h—1FFh
RESET ET VECTEUR DINTERRUPTION
Le tableau suivant donne les adresses ou le microcontrôleur doit trouver le programme principal et le sousprogramme d’interruption.
Source RESET INTERUPT
PORT DENTREE/SORTIE PARALLELE
Vecteur 0000H 0004H
Pour la plupart des ports, la direction des informations (entrée ou sortie) est contrôlée par le registre de direction TRIS. TRISx contrôle la direction du PORTx. Un bit à 1 pour TRISx, correspond à une entrée pour le PORTx. Un bit à 0 pour TRISx, correspond à une sortie pour le PORTx. La lecture d’un PORT, prend en compte le niveau logique de la broche et non celui du registre du PORT.
JEU DINSTRUCTIONS
TRANSFERTS MOVF f,d
MOVWF f MOVLW k CLRF CLRFW CLRWDT
;si d=0 alors W = f ;si d=1 alors f = f (permet de tester un registre)
; f = W ; W = #k ; f = 0 ; W = 0 ; WDT = 0
OPERATIONS Opérations arithmétiques ADDWF f,d; si d=0 alors W = W + f ; si d=1 alors f = W + f ADDLW k; W = W + #k SUBWF f,d; si d=0 alors W = f  W ; si d=1 alors f = f  W SUBLW k; W = #k – W INCF f,d; si d=0 alors W = f + #1 ; si d=1 alors f = f + #1
DECF f,d
; si d=0 alors W = f  #1 ; si d=1 alors f = f  #1
Opérations logiques ANDWF f,d; si d=0 alors W = W & f ; si d=1 alors f = W & f ANDLW k; W = W & #k COMF f,d; si d=0 alors W = /f ; si d=1 alors f = /f IORWF f,d; si d=0 alors W = W + f ; si d=1 alors f = W + f IORLW k; W = W + #k XORWF f,d; si d=0 alors W = WÅf ; si d=1 alors f = WÅf XORLW k; si d=1 alors W = WÅ#k RLF f,d; si d=0 alors W =< f ; si d=1 alors f =< f RRF f,d; si d=0 alors W =f > ; si d=1 alors f =f >
BCF f,b; bit f.b = 0 BSF f,b; bit f.b = 1 SWAPF f,d; échange les demi octets
SAUTS CALL a GOTO a BTFSC f ,b BTFSS f,b RETFIE RETURN RETLW k DECFSZ f,d INCFSZ f,d
; appelle le sous programme à l’adresse #a ; saut à l’adresse #a ; si f.b = 0 alors sauter1 ligne ; si f.b = 1 alors sauter1 ligne ; retour d’interruption ; retour de sousprogramme ; W = #k et RETURN ; DECF et si Zéro alors sauter1 ligne ; INCF et si Zéro alors sauter1 ligne
NOP ;aucune opération SLEEP ;mode veille