• Aucun résultat trouvé

INTERFACES DU 68HC11 & GESTION DU TIMER

N/A
N/A
Protected

Academic year: 2022

Partager "INTERFACES DU 68HC11 & GESTION DU TIMER"

Copied!
24
0
0

Texte intégral

(1)

CHAPITRE 5:

INTERFACES DU 68HC11 & GESTION DU TIMER

SUPPORT DE COURS S4-SMI IHSSANE OUADNOUNI E-MAIL: [email protected]

(2)

INTERFACE PARALLÈLE

Ce type d’interface, répartie sur plusieurs ports (maximum 8 bits), permet de prendre en compte des états logiques appliqués en entrée (état de capteurs) ou de générer des signaux binaires en sortie (commande d’actionneurs).

Les broches de ces ports peuvent donc être configurées en entrée ou en sortie.

On trouve généralement :

Un registre de direction pour une configuration en entrée ou en sortie,

Un registre de donnée recopiant les états logiques de chaque broche de port,

Un registre d’option permettant plusieurs configurations en entrée ou en sortie.

(3)

INTERFACE PARALLÈLE

(4)

INTERFACE PARALLÈLE

Caractérisée par un transfert simultané de tous le bits d’un même mot.

Nécessite autant de conducteurs qu’il y a de bits à transmettre et un conducteur commun (liaison asymétrique) ou autant de paires que de fils si la masse n’est pas commune (liaison symétrique).

Un conducteur supplémentaire peut être utilisé pour transmettre un signal qui assurera la synchronisation entre les intervalles d’émission et ceux de réception

Autorise une grande vitesse de transmission (débit).

Un coût élevé (nombre de conducteurs)

Une distance franchissable limitée réservent la transmission parallèle aux liaisons de processeur à processeur.

(5)

INTERFACE SÉRIE

Cette interface permet au microcontrôleur d’échanger des données avec des circuits périphériques utilisant une liaison série asynchrone (ordinateurs, tables traçantes, modem, instruments de musique…)

Les circuits internes de la SCI permettent :

Des échanges asynchrones bidirectionnels en full duplex

De choisir la vitesse de transmission

De choisir le format de transmission

De choisir le mode d’activation de la partie réception (« classique » ou « réveil »)

De gérer les erreurs de transmission

(6)

INTERFACE SÉRIE

Les données envoyées ou reçues se présentes sous la forme d’une succession temporelle (sur un seul bit) de valeurs binaires images d’un mot.

Nécessite une interface de conversion pour sérialiser les bits à l'émission (conversion parallèle/série) et les dé- sérialiser à la réception (conversion série/parallèle).

Ne nécessite, pour la transmission des données, que deux conducteurs, d’un coût moins important, elle est utilisé pour les transmissions sur des distances importantes.

Les vitesses de transmission et de réception doivent être identiques (bits/s ou bauds).

Modes simplex, half-duplex et full-duplex

(7)

INTERFACE SÉRIE

(8)

INTERFACE SÉRIE 68HC11

Le port D est un port d’entrées sorties 8 bits à usage général partagé avec les interfaces séries asynchrones (SCI) et synchrones (SPI).

le sens de travail des lignes du port est programmé par les bits correspondants du registre DDRD .

La sortie de données se fait par écriture de registre PORTD

Il est possible de programmer le port D pour fonctionner avec des sorties a drain ouvert en mettant à « 1 » le bit DWON du registre du contrôle SPCR de l’interface série synchrone

Dans certaines situations, le fonctionnement des lignes de la SPI est influencé par les bits correspondants du DDRD

(9)

INTERFACE SÉRIE

(10)

LE CONVERTISSEUR ANALOGIQUE NUMÉRIQUE:

Le CAN intégré dans les microcontrôleurs est généralement du type “Approximations successives”.

Il possède plusieurs entrées multiplexées accessibles via les broches des ports de l’interface parallèle.

Le CAN possède normalement 2 registres :

Un registre de données contenant le résultat de la conversion,

Un registre de contrôle permettant de lancer et de surveiller la conversion.

(11)

LE CONVERTISSEUR ANALOGIQUE NUMÉRIQUE 68HC11

Le convertisseur intégré dans le 68HC811F1 est un CAN à approximation successive. Il dispose de 8 entrées multiplexées vers un échantillonneur bloqueur permettant de diminuer les erreurs de conversion dues à la variation du signal d’entrée.

Les 8 entrées sont communes avec le port E.

Deux lignes spécifiques Vrefh et Vrefl sont utilisées comme référence de tension.

La précision de ce convertisseur est de ± ½ LSB sur toute la gamme de température, ces références de tension devront être stables par rapport aux variations de l’alimentation ou de la température pour conserver au convertisseur toute sa précision.

Il faut toujours garder Vrefh – Vrefl > 2,5 Volts.

(12)

LE CHIEN DE GARDE:

Ce dispositif est un système anti-plantage du microcontrôleur. Il s’assure qu’il n’y ait pas d'exécution prolongé d’une même suite d’instructions.

Un compteur pré-chargeable se décrémente régulièrement au rythme de la fréquence d’horloge.

Si aucun pré-chargement n’est effectué avant qu’il n’atteigne la valeur “0” un Reset est généré relançant ainsi le microcontrôleur.

NB: Il faut donc penser à pré-charger régulièrement ce chien de garde par programme lorsqu’il est activé.

(13)

TIMER

Le Timer permet de réaliser les fonctions suivantes :

Génération d’un signal périodique modulé ou non en largeur d’impulsion,

Génération d’une impulsion calibrée,

Temporisation,

Comptage d'événements.

Plusieurs registres associés au Timer permettent de configurer les différents modes décrits précédemment.

(14)

TIMER 68HC11

Les boucles d’attente ainsi que la gestion du signal PWM nécessitent l’utilisation du Timer.

Le cœur de ce dernier est un registre de 16 bits, TCNT, qui s’incrémente à chaque pulsation de l’horloge.

Le facteur prescale, défini par les bits PR1 et PR0, détermine combien de pulsations d’horloge sont nécessaires pour incrémenter d’une unité le registre TCNT.

Un programme de base dans lequel on utilise le système Timer est similaire aux autres programmes :

Il faut en premier lieu configurer les registres de contrôle,

écrire dans un registre de données si nécessaire ;

on attend qu’un indicateur soit mis dans un certain état,

(15)

TIMER 68HC11

Exemple : configuration du facteur prescale

Les b//its PR0 et PR1 se trouvent dans le registre interne TMSK2 dont l’adresse est $1024

$1024 TOI RTII PAOVI PAII 0 0 PR1 PR0 TMSK2

PR0 PR1 Fréquence Compteur

0 0 F/1

0 1 F/2

(16)

TIMER 68HC11

Dans le but d’avoir le temps de voir le compteur osciller, nous allons abaisser la fréquence du timer au 1/16 de sa valeur = (fréquence du quartz)/2, en mettant PR1 et PR0 du registre TMSK2 ($1024) à 1: PR0=PR1=1.

Si fréquence de quartz =4Mhz donc la fréquence d’oscillation = 2Mhz et donc la fréquence du compteur =2Mhz/16.

Configuration:

LDX #$1024 // Le registre d’indexe X pointe sur le TMSK2 BSET X,0 // configuration du bit PR0 du TMSK2 à 1

BSET X,1 // configuration du bit PR1 du TMSK2 à 1

(17)

TIMER 68HC11

Le module Output Compare, appartenant au système Timer, permet de générer des signaux carrés tel qu’un signal PWM.

On peut également déclencher une exécution d’une séquence sans pour autant générer un signal sur une sortie.

module Output Compare

(18)

TIMER 68HC11

Exemple : Calcul du temps de cycle On suppose que PR0=PR1=0

la fréquence du quartz = 8MHz

Le temps de cycle étant le temps nécessaire pour que le TCNT passe de (0000)Hex à (FFFF)Hex soit 216 périodes d’horloge:

TH= 1/(Fréquence d’oscillation)= 1/(4*106)=0,25 10-6 secondes Tcycle= 216 * TH= 216 * 0,25 10-6 =16,384 ms

(19)

TIMER 68HC11

On écrit dans le registre TOCx, le registre TCNT compte les pulsations de l’horloge.

Quand la valeur du registre TCNT atteint la valeur du registre TOCx:l’indicateur OCxF est mis à l’état haut.

Ces indicateurs sont situés dans le registre TFLG1.

L’indicateur OCxF est mis à l’état haut, il se passe un événement qui dépend des registres TCTL1 et TMSK1

Le bit d’interruption associé OCxI dans le registre TMSK1 détermine si une interruption est générée dans

(20)

TIMER 68HC11

Pour réaliser une temporisation de 5ms on aura pas besoin d’attendre un cycle en entier:

Tempo=5ms il faut donc charger un TOC on choisit le TOC1

Calcul de la valeur à charger au TOC1

Valeur = (tempo*216)/temps de cycle= (5.10-3*65536)/16,384.10-3 =20000

Donc la valeur à charger au TOC1 est 20000 une fois le TCNT arrive à 20000 le OC1F se mettra au niveau haut.

C’est-à-dire que le temps correspondant à la temporisation est écoulé.

$1016 15 14 13 12 11 10 9 8 TOC1

$1017 7 6 5 4 3 2 1 0 TOC1

(21)

TIMER 68HC11

Programme de la temporisation < Temps de cycle On considère l’exemple précédent

La temporisation =5ms et le Temps de cycle = 16,384ms (TCNT passe de 0000 à FFFF)

LDD #20000 // Charger dans un registre 16 bits la valeur à laquelle on compare le TCNT STD $1016 // Charger le TOC1 par cette valeur

LDX #$1023 // Le registre d’indexe pointe sur le TFLG1 siège du bit de comparaison OC1F B1 BRCLR X,7 B1 // Teste le 7ème bit de X s’il est égal à 0 dans ce cas il se branche à B1.

Une fois le OC1F passe à 1 on sort de la boucle et donc le temps de la temporisation est écoulé.

(22)

TIMER 68HC11

Programme de la temporisation > Temps de cycle

Dans ce cas de figure, la temporisation nécessite un ou plusieurs cycle de passage du TCNT de (0000)Hex à (FFFF)Hex

Prenons pour exemple une temporisation de 250ms pour un MC alimenté par un quartz de 2MHz:

on utilise le facteur de prescale, soit PR0=0 et PR1=1 ainsi on va diviser la fréquence d’oscillation par 8.

1ère étape : calculer le temps de cycle

Temps de cycle = 216 *1/8*(fréquence du quartz)/2 = 8,192ms.

(23)

TIMER 68HC11

2ème étape : calculer le nombre de fois que le TCNT doit passer de (0000)Hex à (FFFF)Hex Ratio = temporisation / temps de cycle = 250.10-3/8,192.10-3 = 30,52

Donc le TCNT doit passer de (0000)Hex à (FFFF)Hex 31 fois et programmer 0,52 d’un cycle comme dans l’exemple précédent.

3ème étape : observer le bit TOF du registre interne TFLG2 pour surveiller le débordement du TCNT et à chaque fois on le remis à 0 pour calculer le nombre de débordement correspondant au ration calculé:

$1025 TOF RTIF PAOVF PAIF 0 0 0 0 TFLG2

(24)

TIMER 68HC11

Exemple de programme de temporisation

LDX #$1024 // Le registre d’indexe X pointe sur le TMSK2 BCLR X,0 //Configuration du bit PR0 du TMSK2 à 1 BSET X,1 // Configuration du bit PR1 du TMSK2 à 1

LDAA #31 // Charger le compteur de nombre d’itération LDX #$1025 // Le registre d’indexe X pointe sur le TFLG2

B1 BRCLR X,7 B1 // Teste le 7ème bit de TFLG2 s’il est égal à 0 dans ce cas il se branche à B1.

DECA

BNE B1

LDD #33920 // Charger dans le registre D par la valeur = 0,52*216

STD $1018 // Charger le TOC2 par cette valeur (pour comparaison avec le TCNT) Prescale de division par 8

Références

Documents relatifs

Modification des sphères d’expertise, transformation des organisations, transformation du contrôle, que ce soit comme objet de recherche – artefact de la société du contrôle

Ouvert à tous avec inscription préalable obligatoire Groupe limité à 10 personnes sans l'encadrant Port du masque obligatoire durant la phase d'accueil. Mains désinfectées au

Nombre de travailleurs pour lesquels l'entreprise a introduit une déclaration DIMONA ou qui ont été inscrits au registre général du personnel au cours de l'exercice

Sous l’autorité du Maître de Port, l’Agent de gestion et d’exploitation du Port aura pour missions principales :. - L’accueil téléphonique et physique

Cet appel à articles est ouvert à la comparaison internationale, tant cette triple question de la construction du sens de l’action collective territoriale, du jeu

Figure n° 1 : Architecture de la thèse Partie 1: Du contrôle de dépenses et de budgets au contrôle de rationalité Chapitre 1:Prise de connaissance du contrôle dans

Deux autres types sont plus partagés dans leur inscription au registre du risque : le céréalier se situe soit dans le registre du citoyen (vulnérabilité sociétale), soit dans

Quand une broche est en sortie, son état est déterminé par le bit correspondant du registre du port (PORTA ou PORTB). Quand une broche est en entrée, c'est son niveau qui lui est