Stm8 Entrées-sorties
Pile
18/09/2019
Les entrées-sorties
Tout processeur doit échanger avec le monde extérieur, un ordinateur aura au moins un clavier et un écran. Un micro-contrôleur aura par exemple les entrées-sorties suivantes:
| Types d'entrées-sorties | Exemples d'application |
|---|---|
| Liaison série | pour communiquer avec un terminal |
| Convertisseur analogique-digitale | pour mesurer des grandeurs physiques comme la température |
| Des entrées logiques | pour détecter le passage d'un élément devant un capteur |
| Des sorties logiques | pour commander la mise en marche d'un moteur |
| Des sorties analogiques | pour commander en proportion l'ouverture d'un volet |
| Des sorties modulées par largeur d'impulsion | pour commander un servo-moteur en PWM |
| Liaisons numériques entre composants | pour acquérir une température avec un bus I2C |
et aussi d'un composant capable de mesurer le temps, le temporisateur.
Ces entrées-sorties sont des circuits électroniques spécialisés implantés directement sur le circuit intégré du micro-contrôleur ou dans un composant relié par un bus au micro-contrôleur.
Dans un cas comme dans l'autre, une fonction d'entrée-sortie correspond à une partie du silicium sur laquelle sont gravés les transistors, résistances et autres permettant d'assurer la fonction électroniquement.
Dans le premier cas les connexions entre le cœur du processeur et le sous-ensemble fonctionnel sont gravés dans le silicium, dans le second cas ces fils de connexion sont sortis du micro-contrôleur et reliés aux pattes correspondantes du circuit.
On est à la frontière entre le monde de la programmation et le monde du traitement du signal; en fonction des besoins certains traitements peuvent être fait par programmation ( privilégie la flexibilité) ou par des étages de traitement électronique ( privilégie la vitesse).
Vue du processeur, ces entrées-sorties sont des registres qui sont valorisés pour paramétrer le fonctionnement du circuit électronique, des registres qui sont utilisés pour obtenir l'information attendue ( La valeur associée à la tension lue en entrée) et enfin un ou plusieurs signaux susceptibles de déclencher une interruption du processeur.
Les entrées-sorties projetées en mémoire
Pour accéder à ces registres on a plusieurs possibilités:
- on peut utiliser des instructions spécifiques du processeur semblables aux instructions portant sur les registres du cœur ( INC X),
- on peut réserver un certain nombre d'adresses de l'espace mémoire pour accéder à ces registres. La seconde solution est beaucoup plus flexible, puisqu'elle permet de s'adapter en nombre et en type sans avoir à modifier le cœur du processeur; c'est ce que l'on appelle des entrées-sorties projetées en mémoire, les registres sont accédés avec les instructions d’accès mémoire sur l'adresse qui leurs est réservé. Par exemple sur le STM8S105 le registre de contrôle du Timer 1 est à l'adresse 0x00 5250 ==Les ports== Dans la pratique un micro-controleur intégre plusieurs sous-ensembles fonctionnels et un certain nombre de pattes d'entrées-sorties. L'élément dimensionnant les coûts de production d'un micro-contrôleur est le nombre de pattes du circuit intégré; le fondeur de micro-contrôleur a intérêt à produire les microcontrôleurs les plus flexibles et donc a généralisé la possibilité d'affecter par la programmation l'usage d'une patte à ensemble fonctionnel. L'ensemble constitué du sous-ensemble fonctionnel gravé dans le silicium et les pattes du microcontrôleur associés fonctionnellement sont appelés un port. Pour des raisons de rétro-compatibilité dans une gamme de micro-contrôleur, ces ports ont un nom symbolique caractérisant le niveau fonctionnel dans une version donné.
| Nom de port | Commentaires |
|---|---|
| Timer1 | Première génération de temporisateur complet |
| Timer2 | Timer simplifié rapide |
| UART2 | Liaison série classique |
De cette manière un programme conçu pour une gamme de microcontrôleur peut être porté sur la génération suivante sans modification. Malheureusement d'un modèle à l'autre certains ports peuvent avoir des caractéristiques légèrement différentes, voir même être absent. La seule solution est de se référer à la documentation du fabriquant (Data sheet).
Initialisation et exploitation
On constate que l'on a besoin de préciser au démarrage du microcontrôleur l'usage des broches d'entrée-sortie et les paramètres précisant le fonctionnement de chaque port utilisé. Cela s'effectue dans des registres de paramétrage propres à chaque port
C'est la phase d'initialisation ( ou de paramétrage ou de démarrage), elle n'est exécutée qu'une seule fois.
Par défaut au démarrage tous les ports sont dans un état neutre qui ne risque pas de provoquer de dégâts sur les équipements interfacés avec le micro-contrôleur, ni sur le micro-contrôleur lui-même.
Par la suite le micro-contrôleur va lire et écrire des registres des données périodiquement, c'est la phase d'exploitation. Sauf exception on ne modifie pas dans cette phase les registres de paramétrage.