ADC Microcontrôleur MSC1210
Contenu du module __ 1) Notions de bases en électronique numérique - Technologie des circuits intégrés logiques. - Matrices à diodes, codeurs, décodeurs, transcodeurs, PAL, EPLD, mémoires mortes ROM , PROM , EPROM, EEPROM, FLASH… - Bascules D , registres et mémoire vive RAM 2) Microcontrôleurs - Généralités sur les architectures - Etude de l'architecture Von Newman. - Instructions et modes d'adressage de la famille 8051 - Les ports d'entrées/sorties numériques - Les entrées analogiques - Les timers - Les sorties PWM - Les entrées de capture - Les ports d'entrées sorties séries SCI et SPI
Technologie des circuits intégrés logiques. _____ Niveaux logiques en électronique Fonctions logiques avec des composants discrets - Diodes et résistances - Transistors bipolaires en commutation - Transistor MOS Fonctions logiques en circuits intégrés - Notion de famille - Les circuits intégrés TTL - Les circuits intégrés CMOS - ECL10k et ECL100K et autres technologies
Les circuits intégrés TTL (Transistor to Transistor Logic) ____ Alimentation -Vcc = 5 volts tolérance 5% 2) Etage d'entrée - transistor à plusieurs émetteurs - intensité d’entrée 3) Etages de sortie - Sortie push-pull - Sortie à trois états - Sortie à collecteur ouvert 4) Niveaux logiques - des entrées - des sorties 5) Rapidité, temps de transfert 6) Les sous-familles L , H, S, LS, F
Circuit intégrés 7400 ____
Circuit intégrés 7400 ____
Les circuits intégrés CMOS (Complementary Metal Oxide Semiconductor) ____ Alimentation de 3 à 18Volts Niveaux logiques Propriétés électriques Description d’un inverseur logique Les sous-familles HC et HCT LVCMOS 3.3V, 3.0, 2.5, 1.5, 1.2 et 1.0V
Autres technologies ECL10k et ECL100K I2L
Décodeurs, encodeurs, transcodeurs ROM, PAL, FPLA, FPGA - Définition - Exemple - Réalisation avec une matrice à diodes 'ET', - Application au décodage d'adresses (voir Td) Encodeur - Réalisation avec une matrice à diode 'OU' - Application encodage des touches d'un clavier (voir Td) Transcodeurs - Exemple : BCD -> 7 segments ( voir Td) - Applications: - Mémoires mortes ROM, PROM, UVPROM, EEPROM, FLASH - Réseaux logiques PAL, GAL ... - Réseaux logiques FPLA
Registres et mémoires vives. A) Bascules (rappels) - RS - RSH - D active sur niveau d'horloge - D active sur front d'horloge B) Registres - à chargement et lecture parallèle - à décalage - Utilisations des registres : - mémoires de travail dans les mP - organes d'entrées sorties - convertisseur parallèle - série et série -parallèle C) Les mémoires vives (RAM) - Description, organisation, capacité - Bipolaires ou CMOS - Statique ou dynamique
Conversion de données Généralités - Grandeur binaire - " analogique - " numérique (ou digitale) Convertisseur analogique-numérique (CAN ou ADC) - Définition - Exemple simple - Pas, quantum, résolution, précision et linéarité Convertisseur numérique-analogique (CNA ou DAC) - Exemple Fonctionnement des CNA - Le réseau R/2R à commutation de tension - Le réseau R/2R à commutation de courant Fonctionnement des CAN - Convertisseur à simple rampe - Convertisseur à double rampe (précis mais lent) - Par comptage (pas utilisé) - Par approximations successives - Convertisseur FLASH - Sigma-delta
Convertisseur à simple rampe Générateur de rampe Tension à convertir + Comparateur - Compteur binaire H Raz & Horloge Top départ Fin de conversion 20 21 22 2n-1 N
Générateur de rampe R C K -Vref Vr = a.t avec a =Vref/RC
Convertisseur à double rampes Compteur binaire H Raz Horloge Top départ N R C K1 -Vref 2 Fin V 1 K2 & n Logique de contrôle
Convertisseur par comptage Compteur n bits & Fin Raz Départ H V Tension à convertir CNA Réseau R/2R Sortie numérique Q0 Qn-1 Horloge Comparateur
Convertisseur à registre à approximations successives RAS n bits Fin Raz Départ H V Tension à convertir CNA Réseau R/2R Sortie numérique Q0 Qn-1 Horloge D
Convertisseur "flash" (Principe) D0 D1 Transcodeur Vcc= 10 V C B A U V1 V2 V3 0 < U < V1 0 0 V1 < U < V2 0 1 V2 < U < V3 1 0 V3 < U < Vcc 1 1 U C B A D1 D0
Microcontrôleurs Architectures - Von Neumann - Harvard Jeu d'instructions - complexe CISC - réduit RISC Programme - Localisation, adresse de démarrage (reset) - Déroulement d'un programme Langages - langage machine, assembleur - langage C, compilateur, éditeur de liens(linker)… Mise au point et transfert dans la cible - programmateur - simulateur - émulateur
Architecture Von Neumann Unité de Traitement Mémoire Programme Données Adresses Périphériques
Architecture Harvard Données et Mémoire Unité de Traitement Programme Adresses Instructions ou Constantes Données et Périphériques
Les périphériques intégrés aux microcontrôleurs Ports d’entrées/sorties parallèles Ports d’entrées/sorties séries -Synchrones (SPI) -Asynchrone (SCI , I2C,CAN…) Compteurs ou Timers Générateurs PWM Entrées de capture Convertisseurs analogiques/numériques
Port d’entrées/sorties parallèles 1 Bus De DONNEES Broches SORTIES Ou ENTREES Signal de Validation
Principe de fonctionnement d'un bit du port // D Q H Bus de données Broche d'entrée/sortie Sélection Direction Validation écriture SORTIE D Q H Bus de données Broche d'entrée/sortie Sélection Direction ENTREE
Communication série synchrone Registre d'émission Registre de réception Horloge Données Commande de décalage 1 A chaque front d’horloge un bit est envoyé, il faut 8 fronts pour transférer les 8 bits
Communication série asynchrone 1 Registre d'émission TX S P F Buffer d'émission Registre de réception RX Buffer de réception Registres de configuration Horloge de décalage 1 Horloge de décalage 2 Données L’horloge 2 se synchronise grâce aux bits « s » et « f » (start et stop)
Compteur / Timer Entrée externe Prédiviseur Horloge système Compteur 8 ou 16bits Prédiviseur Entrée externe Horloge système registres de contrôle Vers le bus de données Débordement
Génération automatique d'un signal PWM Horloge système Prédiviseur Compteur/Timer Période PR Comparateur RAZ Valeur à comparer CMP R Q S Autorisation patte de sortie PWM Timer Sortie PWM PR CMP Ton T
Le microcontrôleur MSC 1210Y5 Architecture dérivé du 8051 (mais 3 fois plus rapide) Bus de données 8 bits Bus d'adresses 16 bits commun aux données et aux instructions Jeu d'instructions complexe (CISC) - 32k mémoire flash (programme) - 1280 octets de RAM interne (256 octets + 1024 octets) Périphériques : Entrées/sorties numériques, entrées analogiques Timers Ports de communication série etc.. Tcycle = 4.Thorloge
Documentation (Datasheets) msc1210ug.pdf documentation détaillée msc1210y5.pdf description du circuit intégré 80C51_FAM_PROG_GUIDE_1.pdf Instructions du 8051 sbau073.pdf carte de développement (schéma, borniers…) A51.pdf assembleur, editeur de liens, etc… C51.pdf compilateur
Mode microcontrôleur Mode microprocesseur (patte /EA=1) (patte /EA=0) Mémoire programme Adresse de la première instruction (RESET) : 0x0000 2k Boot ROM Mémoire programme Externe(/PSEN=0) Mémoire programme Interne (FLASH) 32k octets FFFF F800 F7FF 8000 7FFF 0000 Mode microcontrôleur Mode microprocesseur (patte /EA=1) (patte /EA=0)
Mémoires données (RAM) FF 80 7F 07 00 RAM Accès indirect MOV @R0/R1 Accès direct ou indirect MOV 00-FF R0…R7 Registres Périphériques Accès direct MOV 80-FF SRAM externe MOVX SRAM interne (1k) FFFF 0400 03FF 0000 Mémoires données (RAM)
Les principaux registres - Le registre A est un accumulateur 8bits. - Le registre B est utilisé par MUL et DIV ou comme registre auxiliaire. - Les registres auxiliaires R0, R1….R7 sont situés par défaut aux adresses 00…07 de la RAM mais on peut les affecter à d'autres adresses 08..0F, 10..17 ou 18..20. - Le compteur ordinal PC (16 bits) contient l'adresse de l'instruction à exécuter. - Les 2 registres DPTR0 et DPTR1 sont des registres 16 bits surtout utilisés pour l'adressage indirect externe. - Le registre de statut PSW se positionne en fonction du résultat des opérations CY AC F0 RS1 RS0 OV F1 P - Le pointeur de pile SP (8bits) .
Modes d'adressage Immédiat: la donnée est codée à la suite de l'instruction Ex : MOV A, #55h Direct: la donnée se trouve à une adresse de la RAM Ex : MOV A,30h Indirect: l'adresse de la donnée est dans un registre auxiliaire R0 ou R1 Ex : MOV R0, #30h MOV A,@R0 Externe indirect: l'adresse de la donnée est dans le registre DPTR Ex : MOV DTPR,#02A9h MOVX A,@DPTR On peut utiliser R0 si l'adresse est comprise entre 0000 et 00ff MOVX A,@R0 Code indirect : permet accéder à la mémoire programme (utile pour des données fixes : tables , chaînes..) Ex : MOVC A,@A+DPTR l'adresse est calculée en ajoutant A et DPTR
Mode d'adressage « bit » On peut positionner individuellement certains bits les 128 bits des adresses RAM : 20…2F bits 00..7F les bits des registres : 80, 88,90,98,….F8 bits 80..FF EX : SETB 87h ; met à 1 le bit 7 du port P0 CLRB 04h ; met à 0 le bit 4 de l'adresse 20h
Le jeu d'instructions Arithmétiques: ADD, ADDC, SUBB, INC, DEC,MUL, DIV, DA Logiques: ANL, ORL,XRL,CLR,CPL, RL,RLC,RR,RRC,SWAP Transfert de données: MOV, MOVX, MOVC, PUSH, POP, XCH,XCHD Bit : SETB, CLR, CPL… Branchements et sauts : SJMP,LJMP, JZ, JNZ, JC,JNB,JC,JNC,CJNE,DJNZ… LCALL, RET… NOP
Déroulement d'un programme - Exécution séquentielle des instructions à partir de l'adresse 0x0000 - Sauts, sauts conditionnels - Sous-programmes - Interruptions
Ecriture d'un programme Edition: Ecriture des Fichiers SOURCES - en langage machine (.a51) - en langage C (.c) Assemblage: Transformation des fichiers SOURCES en BINAIRES Edition des liens: Création du fichier EXECUTABLE (.hex) Programmation: Transfert dans la mémoire programme du composant Mise au point (débogage): - Simulation - Emulation
Outils de développement pour 8051