INTERFACE PARALLELE : PIA 6821

Ce circuit interface le MPU avec les périphériques par deux bus de données 8
bits bidirectionnels et quatre lignes de ... 2 registres de contrôle programmables.

Part of the document


INTERFACE PARALLELE : PIA 6821 L'interface parallèle de type PIA 6821 (Peripherical Interface Adapter)
fournit un moyen d'interface des appareils périphériques avec un
microprocesseur 680X. Ce circuit interface le MPU avec les périphériques
par deux bus de données 8 bits bidirectionnels et quatre lignes de
contrôle.
La configuration fonctionnelle du PIA est programmée habituellement par le
MPU pendant
l'initialisation du système. Chacune des lignes de données vers la
périphérie (Port A et B) peut être programmée pour être utilisée soit en
entrée, soit en sortie à partir des registres internes et du bus de
données. . bus de données (D0 à D7) bidirectionnel vers le MPU . 2 bus de données (ou port A-B) bidirectionnels vers la périphérie . 2 registres de contrôle programmables . 4 lignes d'entrée d'interruption contrôlables individuellement . possibilités de contrôler des circuits CMOS à partir des ports, . possibilité de commander 2 charges TTL en sortie . compatible TTL
Bus de données (D0 à D7) : 8 lignes bidirectionnelles directement reliées
au bus du 6809. Elles assurent l'échange des données entre le
microprocesseur et le PIA. Si elles ne sont pas utilisées, ces lignes sont
à l'état haute impédance.
Bus d'adresses :
- CS0, CS1, /CS2 (Chip Select) : Sélectionnent le boîtier PIA (CS0(CS1(/CS2
= 1(1(0)
- RS0, RS1 (Register Select) : Sélectionnent les registres internes (4
octets mémoire).
Bus de contrôle :
- E : Signal d'activation des échanges
- /RESET : Initialisation du PIA. Les registres internes sont mis à zéro.
- R/W : Lecture - Ecriture
- IRQA, IRQB : Lignes d'interruptions
Lignes de transfert : PA0 à PA7, PB0 à PB7 : Ces 16 broches (2 x 8)
permettent de transmettre ou recevoir un mot de 8 bits. Suivant la
programmation du DDRA/DDRB, elles seront utilisées en entrée ou en sortie. FONCTIONNEMENT : De la périphérie vers le processeur :
La donnée disponible sur le port A en réception (port A configuré en
entrée) est directement transmise à l'amplificateur de bus de données par
l'intermédiaire du bus de sortie. Elle ne transite pas par l'ORA, il n'y a
donc pas mémorisation des données en entrée.
Du processeur vers la périphérie :
La donnée disponible sur le bus du MPU est chargée dans le registre de
sortie B par l'intermédiaire du bus d'entrée, elle est donc mémorisée. Le
port B est en sortie, la donnée est disponible tant qu'une nouvelle
écriture n'est pas intervenue. Sélection des registres :
Pour sélectionner un registre, il convient en premier lieu de sélectionner
le boîtier PIA (CSX) puis d'agir sur l'état logique des lignes RS1 et RS0. Exemple d'adressage : ADR = $E000 (adresse de base)
ADR+1 = $E001
ADR+2 = $E002
ADR+3 = $E003 Registre de contrôle CRA - CRB :
Ce registre permet la commande et le contrôle des ports de sortie A et B.
Pour y accéder, il suffit de fixer les états logiques sur RS1 et RS0. Ce
registre va permettre d'accéder aux autres registres : DDRA-DDRB et ORA-ORB
à partir du bit 2 du registre de contrôle : Registres de sortie ORA - ORB :
Ce sont les registres dans lesquels vont transiter les données. Pour lire
une donnée reçue par un port, il suffira de lire le contenu de ce registre. Registres de direction DDRA - DDRB :
Ils permettent de définir le sens de transfert de chacune des lignes des
ports A et B. Un état logique « 1 » définit la ligne en sortie, un état
« 0 » , en entrée. Ex : pour mettre la ligne PB4 en entrée et toutes les
autres en sortie, il faut écrire la valeur $10 dans le registre DDRB. PROGRAMMATION D'INITIALISATION DU PIA :
(port A en entrée, port B en sortie).
SCHEMA FONCTIONNEL INTERNE -----------------------
Accéder au CRA Accéder au DDRA Port A en entrée Accéder au CRA Accéder au ORA Accéder au ORB Accéder au CRB Port B en sortie Accéder au DDRB Accéder au CRB