Stm8 Entrées-sorties

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.