techniques de programmation structurée des entrées / sorties parallèles

LE ST6225: TECHNIQUES DE PROGRAMMATION DES ENTREES/SORTIES PARALLELES APPLICATION: COMMANDE PROPORTIONNELLE DE 2 MOTEURS PAS A PAS
L'article est composé de deux parties: une approche technique des E/S parallèles du ST6225 (configuration, interruptions). une réalisation mettant en évidence ce qui y a été détaillé. Il s'agit là d'une commande proportionnelle de deux moteurs pas à pas, utilisée pour commander vos réalisations mécaniques (modélisme, maquettes, prototypes...) ou simplement pour tester des moteurs usagés.

Etude technique des E/S parallèles
Les entrées/sorties parallèles
Avant d'aborder de façon approfondie l'étude et la mise en oeuvre des entrées/sorties du ST6225 nous allons faire brièvement quelques rappels fondamentaux. Les sorties parallèles correspondent à un ensemble de sorties logiques accessibles physiquement sur une ou plusieurs broches du circuit intégré. Ces sorties logiques sont programmables à un niveau logique 1 ou 0 à l'aide d'instructions plus ou moins spécialisées selon le micro-contrôleur utilisé. Le fait que ces sorties soient rendues accessibles matériellement permet d'envoyer vers des dispositifs extérieurs des informations et/ou commandes, comme cela est illustré par le schéma ci-dessous.
en voit immédiatement l'intérêt: il devient possible de commander l'allumage d'une lampe, de mettre en fonctionnement une pompe... Bref, de commander une partie opérative quelconque (à condition qu'il y ait entre les deux un interface de puissance adapté à l'utilisation).
Les entrées parallèles correspondent à un ensemble d'entrées logiques accessibles physiquement sur une ou plusieurs broches du circuit intégré. Les états logiques de ces entrées parallèles peuvent être "lus" (niveau logique 0 ou 1 de chacune des entrées) par le micro-contrôleur, ce qui permet de conditionner l'exécution de tout ou partie du programme en fonction d'informations "extérieures". Le fait que ces entrées soient rendues accessibles matériellement permet de prendre en compte des informations et/ou commandes en provenance de dispositifs extérieurs comme cela est illustré par le schéma suivant.
L'intérêt est qu'il devient possible de détecter: l'état de charge d'une batterie, le dépassement d'une température limite, une fuite d'eau... Bref, de prendre en compte des informations (ou commandes) provenant de l'environnement extérieur (capteur de température, détecteur d'humidité, contact de butée...), à condition qu'il y ait entre les deux un interface de conditionnement et de détection adapté à l'utilisation.
Les entrées et les sorties parallèles sont regroupées en ports . Un port est généralement un ensemble de 8 entrées/sorties (mais il peut en comporter moins selon les micro-contrôleurs). A chaque port parallèle correspond un nombre de broches du circuit intégré identique au nombre d'entrées/sorties. C'est à ces broches que peuvent être connectés les interfaces de puissance (pour la commande) et les interfaces de détection et de conditionnement (pour le captage). Ainsi un port de 8 entrées/sorties parallèles est donc un port de 8 bits et possède 8 broches du circuit intégré qui lui sont physiquement dédiées.
Généralement une broche du circuit intégré correspondant à une entrée/sortie peut servir d'entrée ou de sortie . Ces deux fonctions ne peuvent être que rarement utilisées simultanément (mais cela reste possible dans certains cas). Par exemple, on ne peut espérer avec une même broche détecter une fin de course d'un organe mécanique (fonction d'entrée associée à un capteur de butée) et commander l'inversion du déplacement de celui-ci (fonction de sortie associée à un étage de puissance). Afin de remédier au problème, chaque port est généralement doté d'un registre de direction permettant de configurer physiquement chaque broche d'un même port en entrée ou en sortie.
Mode de fonctionnement des entrées/sorties parallèles du ST6225
Le micro-contrôleur ST6225 dispose de 20 lignes d'entrées/sorties parallèles réparties en 3 ports qui sont :
* Le port A de 8 bits (PA0 à PA7)
* Le port B de 8 bits (PB0 à PB7)
* Le port C de 4 bits (PC4 à PC7)
Pour chacune de ces lignes correspond une broche physique du ST6225 comme on le voit ci-contre.
ce qui concerne le port C, il s'agit d'un port de 8
incomplet dont l'utilisateur n'a accès qu'aux 4
de poids le plus fort. Chaque bit de chacun des ports peut être configuré en entrée ou en sortie .
Un bit défini en sortie peut être configuré selon deux modes de fonctionnement différents:
Sortie à drain ouvert , capable d'absorber un courant vers la masse de 20mA pour le demi port PA0 à PA3 et de 5mA pour l'autre demi port PA4 à PA7 ainsi que les ports B et C. Ceci permet de commander directement en courant des LED, des segments d'afficheurs, des étages à transistors... et permet également d'adapter les niveaux de tensions logiques entre deux technologies différentes (ex: commander un circuit CMOS alimenté en 3,3V...).
Sortie symétrique (étage push-pull) , plus classique, autorisant également la commande de LED mais avec risque de dégradation des niveaux logiques. Cette configuration est plus adaptée pour la commande directe de circuits logiques de technologies compatibles (ex : commande d'un compteur, d'un multiplexeur...).
Un bit défini en entrée peut être configuré selon quatre modes de fonctionnement différents:
* Entrée avec résistance de rappel au +VDD sans interruption , autorisant la détection d'un niveau logique dont l'état 0 peut être un forçage à la masse (0V). Ce type de configuration est privilégié lorsqu'on souhaite détecter la fermeture d'un contact (ou transistor à collecteur ouvert), par exemple configuration par des mini-interrupteurs du mode de fonctionnement d'un appareil, contact d'une alarme... et permet également d'adapter les niveaux de tensions logiques entre deux technologies différentes.
* Entrée sans résistance de rappel et sans interruption , autorisant la détection d'un niveau logique en sortie d'un circuit logique extérieur au boîtier du ST6225 (par exemple la sortie Q d'un compteur, la sortie d'un multiplexeur logique...).
Entrée avec résistance de rappel au +VDD avec interruption . Les caractéristiques électriques sont les mêmes que celles énoncées dans le premier cas (forçage possible à la masse) mais à cela est ajoutée une caractéristique logicielle: au front descendant du signal appliqué sur l'entrée logique, le déroulement du programme principal est momentanément arrêté et un saut à une routine d'interruption est effectué. On peut donc associer une action logicielle à une action matérielle (électrique).
Et enfin
- pour les broches PA0 à PA3: entrée sans résistance de rappel ni interruption ;
- pour les autres broches: entrée analogique , autorisant la conversion analogique/numérique du signal appliqué à l'entrée.
L'état initial de tous les ports parallèles est: Entrée avec résistance de rappel au +VDD sans interruption.
Configuration du mode de fonctionnement des entrées/sorties parallèles
Les registres de configuration sont adressables en mode direct dans une zone d'espace adressable comprise entre 00h et FFh:
Registres de direction DDRx (Data Direction Register)
Pour chaque port X (ici X = A, B, C), le registre de direction permet de définir chacun de ses bits en entrée ou en sortie selon l'usage:
0 = bit défini en Entrée.
1 = bit défini en Sortie.



Aucun commentaire:

Enregistrer un commentaire