La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Etude de cas: carte 80C552++ ‘APPALACHES’

Présentations similaires


Présentation au sujet: "Etude de cas: carte 80C552++ ‘APPALACHES’"— Transcription de la présentation:

1 Etude de cas: carte 80C552++ ‘APPALACHES’
Le 80C552 est basé sur le noyau C51. Il dispose des fonctions suivantes : octets de RAM interne. - Deux TIMER 16 bits standards (T0 et T1) :"noyau C51". - Un troisième TIMER 16 bits (T2) couplé à quatre registres de capture - Un ensemble de 8 entrées de conversion analogique-numérique 8bits. - Deux sortie PWM (MLI)de résolution de 8 bits. - Cinq ports bidirectionnels de 8 bits TOR et un port d’entrée analogique (C.A.N). - Un port série I²C configurable en mode maître ou esclave. - Un port série UART Un système de gestion de quinze sources d’interruption sur deux niveaux de priorité. - Un chien de garde (watch dog). Schéma fonctionnel du 80C552 L’environnement de programmation

2 Configuration de la carte
Une EPROM (U1) de 64Ko de référence 27512, qu’on considérera comme divisée en deux parties ; les 32Ko inférieurs qu’on note (U1-L) et les 32Ko supérieurs qu’on note (U1-H) . Une RAM (U2) de 32 Koctets de référence Une RAM sauvegardée par batterie (U3) de 32 Koctets de référence U1 U2 U3 J1 J2 J6 J3 J10 J11 1 2 A chaque combinaison de positions de ces cavaliers, on obtient une configuration différente qui place les mémoires dans l’un des espaces mémoires (32K inf ou 32K sup) et l’un des plans d’adressage (CODE ou (et) DATA). L’environnement de programmation

3 Configuration de la carte
U1-L CODE (0000-7FFFH) U2 DATA (0000-7FFFH) U3 CODE et DATA U1 : Moniteur de la carte H : charge un programme Hexa (format Intel ou Motorola) P ou <espace> : exécute en Pas a Pas l'instruction suivante A <espace> ou [n aaaa] : affiche/modifie les points d'Arrêt G <espace> ou [aaaa] : Go (ou exécute le programme a l'adresse aaaa) M <aaaa>,[aaaa] : désassemble X <aaaa>,[aaaa] : liste la mémoire eXterne (Xdata) I <aa>,<aa> : liste la mémoire Interne (data et Idata) S <aa> : affiche la valeur du Sfr(aa) R : affiche les Registres B <aaaa>,[aaaa]=<dd> : initialise un Bloc de mémoire externe E <aaaa>-[dd] : édite la mémoire Externe D <aa>-[dd] : édite la mémoire interne (Data et iData) F <aa>=<dd> : modifie la valeur du SFR(aa) C <r>=<dd> : Change le registre (Pc Sp Acc B Dptr psW r0..9) L’environnement de programmation

4 La génération du code exécutable
Programme source: Langage ‘C’ ou Assembleur Compilation + édition des liens données binaires représentant les instructions a exécuter par le microcontrôleur Programme (C, assembleur, .. ) Compilation (Code + références aux fonctions externes) Edition des liens (Code programmes + code fonctions externes) Librairies de fonctions (code ) Format final (fichier .HEX ou .BIN) Le fichier généré: soit de format .BIN, qui contient uniquement du code soit de format .HEX, qui contient en plus du code, les adresses à partir desquelles le code doit être logé, ainsi que des données de détection d’erreurs. Ce format est destiné à être transféré par liaison série ou autre à une carte c équipée d’un moniteur pouvant gérer ce format (ce qui est notre cas). L’environnement de programmation

5 L’environnement de programmation
Le format Hexadécimal Fichier Hexadécimal Connexion entre le PC et carte. Port série RS232C libre du cote PC . Logiciel permettant la transmission et la réception à travers le port série: Exemple: HYPERTERMINAL fournis avec Windows Configuration de communication: 9600,8,N,1 (vitesse = 9600bps; Nombre de bits données = 8 ;  Parité :aucune ; Nombre de bits de stop =1.) Enfin on a besoin d’un câble série pour connecter le port série du PC à celui du microcontrôleur. L’environnement de programmation

6 L’environnement de développement Intégré KEIL
saisie, simulation et compilation des programmes Espace d’édition Hiérarchie des fichiers Fenêtre d’erreur Environnement du logiciel est constitué de librairies de plusieurs microcontrôleur, classées en familles : Philips, Intel… L’environnement de programmation

7 Environnement mVision de Keil
Etude d’un exemple Fichier généré « jelassi.hex » :02800C0080FEF4 : B :0C FE4F6D8FD C43 : FF L’environnement de programmation

8 Chargement du programme
Commande H pour le chargement du fichier généré a travers la liaison série > > H > 12 OCTETS > G 800C :02800C0080FEF4 : B :0C FE4F6D8FD C43 : FF Envoyer le fichier hexadécimal à travers la liaison série Si le chargement s’est bien effectué le moniteur renvoie le nombre d’octets chargés Exécution du programme par la commande G L’adresse du début de programme est supposé ici 800C La détermination de cette adresse se fait par la fenêtre « Disassembly Window » de l’environnement mVision de Keil L’environnement de programmation

9 La simulation avec Keil
Exécution pas a pas :02800C0080FEF4 : B :0C FE4F6D8FD C43 : FF Accès aux ports d’entrées-sorties L’environnement de programmation

10 La Conversion Analogique numérique
Accès aux convertisseurs analogiques numériques Le registre ADCON ADC1 ADC0 ADEX ADCI ADCS AADR2 AADR1 AADR0 Sélection de l’entrée 0 (AADR0, AADR1, AADR2) Lancer la conversion (ADCS=1) ADCI programmé à 0 Conversion lancée uniquement par mise à 1 de ADCS (ADEX=0) L’environnement de programmation

11 Exploitation des entrées analogiques
Programme de conversion Analogique numérique ADCI ADCS 0 0 : CAN libre, une conversion peut être lancée 0 1 : conversion en cours, lancement impossible : conversion finie, lancement impossible 1 1 : combinaison impossible AADR2  AADR1  AADR0  Bit de sélection d’une des 8 entrées analogiques ADEX : autorisation de lancement externe d’une conversion #include<reg552.h> #include<stdio.h> void main (void) { unsigned int resultat , rinf; ADCON&=0xF8; ADCON&=0xDF; while (1) ADCON|=0x08; while(!(ADCON&0x10)) { }; while(ADCON&0x08) rinf=(ADCON>>6)&0x03; resultat=ADCH*4 + rinf; printf ("\n %d",resultat); ADCON&=0xEF; } //sélection du canal 0 par mise à 0 des 3 premiers // bits du ADCON ; // mettre le bit ADEX à 0 : conversion lancée par //mise à 1 de ADCS //Lancer la conversion par mise du bit ADCS à 1 //Attendre jusqu’a ce que ADCI passe à 1 // et //ADCS passe à 0 ; //lire les 2 bits du poids faible du résultat de la //conversion à partir du registre ADCON ; //lire les 8 bits poids fort et ajouter les 2 bits //poids faible ; //émission du résultat vers le port série ; //Remettre ADCI à 0. L’environnement de programmation

12 Exploitation des résultats par MATLAB
Lecture des échantillons convertis par MATLAB Chargement Exploitation Programme N°1 : écrit en langage ‘C’ et exécuté sur le microcontrôleur et qui permet :  La conversion analogique-numérique d’un signal injecté sur le port P5. L’émission de l’échantillon converti sur la liaison série à la suite d’une requête du logiciel MATLAB Programme N°2 : écrit en MATLAB et exécuté sur un PC et qui permet : La récupération des N échantillons convertis en format 8 bits.  L’émission des requêtes sous forme du caractère ‘ESPACE’. L’environnement de programmation

13 Exploitation des résultats par MATLAB
Programme côte Microcontrôleur Programme MATLAB #include<reg552.h> #include<stdio.h> void main (void) { unsigned int resultat , rinf; ADCON&=0xF8; ADCON&=0xDF; while (1) ADCON|=0x08; while(!(ADCON&0x10)) { }; while(ADCON&0x08) getchar(); rinf=(ADCON>>6)&0x03; resultat=ADCH*4 + rinf; printf ("\n %d",resultat); ADCON&=0xEF; } w= serial('COM1'); set(w,'BaudRate',9600); fopen(w); z=0; for i=1:1:700 plot (z); fprintf (w,' '); b=fscanf(w,'%d'); while(length(b)~ =1) end k=(b*5)/1024; z=[z,k]; drawnow title('tension'); fclose(w); delete(w); clear w; L’environnement de programmation


Télécharger ppt "Etude de cas: carte 80C552++ ‘APPALACHES’"

Présentations similaires


Annonces Google