Toutes les interfaces simples ou spécialisés de la famille 6800 sont compatibles avec
le 6809.
A. FAKKAR 68
LePIA 6821
Interface d'entrées/sorties parallèles : PIA-6821
Le PIA se présente sous forme d'un boîtier DIL, 40 broches mono-tension (0. +5V).
A. FAKKAR 69
LePIA 6821
* Liaisons avec le microprocesseur :
Ces 8 lignes bidirectionnelles sont directement reliées au bis 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 dans l'état haute impédance.
Bus d'adresses :
- CS0, CS1, CS2 (Chip Select LINE) : Ces trois entrées permettent de sélectionner le
boîtier
- RS0, RS1 (Register Select Line) : Les quatre combinaisons de ces deux lignes permettent
de sélectionner les registres internes (4 octets mémoire).
Bus de contrôle :
- R/W : Lecture-écriture.
- IRQA, IRQB : Reliées à IRQ FIRQ ou NMI du microprocesseur, ces lignes permettent
d'interrompre l'exécution d'un programme.
Ports de transfert
- PB0-PB7 : Comme pour la partie A, ces 8 lignes sont utilisables en entrée ou en sortie,
suivant la programmation de DDRB. Contrairement à la partie A, ces lignes sont en logique
trois états.
Lignes de transfert
A. FAKKAR 70
LePIA 6821
- CA1-CB1 : Ces deux entrées associées respectivement aux parties A et B sont actives
sur des fronts montants ou descendants suivant la programmation des registres de contrôle
associés et positionnent un drapeau d'interruption (bit 7 des registres de contrôle).
- CA2 : Cette ligne associée à la partie A du PIA peut être programmé en entrée ou en
sortie. Elle permet de contrôler l'échange à travers le PIA, son rôle est déterminé par le
contenu des bits 3, 4 et 5 de CRA. Elle positionne, en entrée, un drapeau d'interruption
(bit 6 de CRA).
- CB2 : Cette ligne associée à la partie B du PIA travaille en entrée ou en sortie dans un
monde défini par les bits 3, 4 et 5 de CRB. En sortie elle peut servir de source de courant
(1 mA sous 1,5 V), contrairement à CA2. En entrée, elle positionne un drapeau
d'interruption (bit 6 de CRB).
c. Fonctionnement du PIA :
A. FAKKAR 71
LePIA 6821
Transfert d'une donnée de la périphérie vers le processeur :
La donnée disponible sur le bus du MPU est chargée dans le registre de sortie B par
exemple, par l'intermédiaire du bus d'entrée, elle est donc mémorisée. Le port B est en
sortie (DDRB = $FF), la donnée est disponible tant qu'une nouvelle écriture n'est pas
intervenue.
Les lignes A2-A15 sont reliées à une logique de décodage qui détermine l'adresse
de base de PIA en sélectionnant le boîtier. Les lignes A0-A1 sont respectivement
connectées aux lignes sélection de registre interne. L'occupation mémoire du PIA se situe
aux adresses ADR, ADR+1, ADR+2 et ADR+3.
A. FAKKAR 72
LePIA 6821
2. Programmation du PIA :
CA1 et CB1 toujours en entrée sont initialisées par le contenu des bits 0 et 1 de
CRA et CRB. Elles positionnent l'indicateur CRA7 ou CRB7 quand elles sont actives.
CA2 et CB2 travaillent en entrées quand CRX5 = 0 (X=A ou B). Elles sont
initialisées de la même manière que CA1 et CB1, par le contenu des bits 3 et 4 de CRA et
CRB. Elles positionnent l'indicateur CRA6 ou CRB6 quand elles sont actives.
CA2 et CB2 travaillent en sorties quand CRX5 = 1 (X= A ou B). Le contenu du bit
4 permet alors de choisir deux modes de fonctionnement : le mode dialogue (CRX4 = 0) ou
le mode programmé (CRX4 = 1).
- Pour le fonctionnement en mode programmé, les lignes CA2 et CB2 prennent l'état du
bit 3. Pour CRA3 = 0, par exemple, la ligne CA2 est à l'état bas, l'écriture de CRA3= 1
entraîne le passage de CA2 à l'état haut. Le fonctionnement est identique pour CB2-
CRB3.
- Contrairement aux autres modes de fonctionnement, dans le mode dialogue, les parties A
et B du PIA ont un fonctionnement différent. Le port A travaille en entrée, la lecture par le
microprocesseur du registre ORA entraîne le passage à l'état bas de CA2 (CRA4 = 0). Le
port B travaille en sortie, l'écriture par le microprocesseur du registre ORB entraîne le
passage à l'état bas de CB2.
A. FAKKAR 73
LePIA 6821
Dans ces deux cas, c'est le contenu de CRX3 qui détermine le mode de retour à
l'état initial de CA2 ou CB2 Les lignes CA2 ou CB2 repassent à l'état haut (CRX = 0)
quand un front actif est détecté sur CA1 ou CB1. Si CRX3 = 1, CA2 ou CB2 reprennent
leur état initial quand le circuit est déselecté, sur un front montant (CB2) ou descendant
(CA2).
A. FAKKAR 74
LePIA 6821
REGISTRE DE DIRECTION DU PORT A
7 6 5 4 3 2 1 0
0 = entrée 0 = entrée 0 = entrée 0 = entrée 0 = entrée 0 = entrée 0 = entrée 0 = entrée
1 = sortie 1 = sortie 1 = sortie 1 = sortie 1 = sortie 1 = sortie 1 = sortie 1 = sortie
P 1 X
R
O Mode dialogue:
G
R
A CA2 = CRA3 Rx : CA1 ou => CA2 et CRA7
M
M
E
Lire PA => CA2 et CRA7
1 0 1
P
CA2 U
0 L lire PA => CA2 Tx : Écrire sur PB => CB2
en S
écrire PB => CB2
É
sortie CB1 ou => CB2
D 0 0
I
A
L
O
G
U
voir
E
A. FAKKAR 75