Register Select Bits 5 4 3 2 1 7 6 5 4 3 2 1 0 ------------------------------------------------------------------------- | Port Mode | H34 | H12 | H4 | H3 | H2 | H1 | Port General 0 0 0 0 0| | | | | | | | | Control | Enable| Enable| Sense | Sense | Sense | Sense | Control Register --------------------------------------------------------------- ------------------- | | SVCRQ | Operation | Port Interrupt | Port Service 0 0 0 0 1| * | | | | | | Select | Select | Priority Control | Request Register --------------------------------------------------------------- ------------------- | Bit | Bit | Bit | Bit | Bit | Bit | Bit | Bit | Port A Data 0 0 0 1 0| | | | | | | | | | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | Direction Register --------------------------------------------------------------- ------------------- | Bit | Bit | Bit | Bit | Bit | Bit | Bit | Bit | Port B Data 0 0 0 1 1| | | | | | | | | | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | Direction Register --------------------------------------------------------------- ------------------- | Bit | Bit | Bit | Bit | Bit | Bit | Bit | Bit | Port C Data 0 0 1 0 0| | | | | | | | | | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | Direction Register --------------------------------------------------------------- ------------------- | | | | Port Interrupt 0 0 1 0 1| Interrupt Vector Number | * | * | | | | | Vector Register --------------------------------------------------------------- ------------------- | Port A | | H2 | H1 | H1 | Port A 0 0 1 1 0| | H2 Control | Int | SVCRQ | Stat | | Submode | | Enable| Enable| Ctrl | Control Register --------------------------------------------------------------- ------------------- | Port B | | H4 | H3 | H3 | Port B 0 0 1 1 1| | H4 Control | Int | SVCRQ | Stat | | Submode | | Enable| Enable| Ctrl | Control Register --------------------------------------------------------------- ------------------- | Bit | Bit | Bit | Bit | Bit | Bit | Bit | Bit | Port A 0 1 0 0 0| | | | | | | | | | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | Data Register --------------------------------------------------------------- ------------------- | Bit | Bit | Bit | Bit | Bit | Bit | Bit | Bit | Port B 0 1 0 0 1| | | | | | | | | | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | Data Register --------------------------------------------------------------- ------------------- | Bit | Bit | Bit | Bit | Bit | Bit | Bit | Bit | Port A Alternate 0 1 0 1 0| | | | | | | | | | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | Register --------------------------------------------------------------- ------------------- | Bit | Bit | Bit | Bit | Bit | Bit | Bit | Bit | Port B Alternate 0 1 0 1 1| | | | | | | | | | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | Register --------------------------------------------------------------- ------------------- | Bit | Bit | Bit | Bit | Bit | Bit | Bit | Bit | Port C 0 1 1 0 0| | | | | | | | | | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | Data Register --------------------------------------------------------------- ------------------- | H4 | H3 | H2 | H1 | | | | | Port Status 0 1 1 0 1| | | | | H4S | H3S | H2S | H1S | | Level | Level | Level | Level | | | | | Register --------------------------------------------------------------- ------------------- | | | | | | | | | 0 1 1 1 0| * | * | * | * | * | * | * | * | | | | | | | | | | --------------------------------------------------------------- | | | | | | | | | 0 1 1 1 1| * | * | * | * | * | * | * | * | | | | | | | | | | --------------------------------------------------------------- ------------------- | TOUT/TIACK\ | ZD | | Clock | Timer | Timer Control 1 0 0 0 0| | | * | | | | Control |Control| | Control | Enable| Register --------------------------------------------------------------- | Bit | Bit | Bit | Bit | Bit | Bit | Bit | Bit | Timer Interrupt 1 0 0 0 1| | | | | | | | | | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | Vector Register --------------------------------------------------------------- ------------------- | | | | | | | | | 1 0 0 1 0| * | * | * | * | * | * | * | * | | | | | | | | | | --------------------------------------------------------------- ------------------- | Bit | Bit | Bit | Bit | Bit | Bit | Bit | Bit | Counter Preload 1 0 0 1 1| | | | | | | | | | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | Register High --------------------------------------------------------------- ------------------- | Bit | Bit | Bit | Bit | Bit | Bit | Bit | Bit | Counter Preload 1 0 1 0 0| | | | | | | | | | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | Register Mid --------------------------------------------------------------- ------------------- | Bit | Bit | Bit | Bit | Bit | Bit | Bit | Bit | Counter Preload 1 0 1 0 1| | | | | | | | | | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | Register Low --------------------------------------------------------------- ------------------- | | | | | | | | | 1 0 1 1 0| * | * | * | * | * | * | * | * | | | | | | | | | | --------------------------------------------------------------- ------------------- | Bit | Bit | Bit | Bit | Bit | Bit | Bit | Bit | Counter Register 1 0 1 1 1| | | | | | | | | | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | High --------------------------------------------------------------- ------------------- | Bit | Bit | Bit | Bit | Bit | Bit | Bit | Bit | Counter Register 1 1 0 0 0| | | | | | | | | | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | Mid --------------------------------------------------------------- ------------------- | Bit | Bit | Bit | Bit | Bit | Bit | Bit | Bit | Counter Register 1 1 0 0 1| | | | | | | | | | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | Low --------------------------------------------------------------- ------------------- | | | | | | | | | Timer Status 1 1 0 1 0| * | * | * | * | * | * | * | ZDS | | | | | | | | | | Register --------------------------------------------------------------- ------------------- | | | | | | | | | 1 1 0 1 1| * | * | * | * | * | * | * | * | | | | | | | | | | --------------------------------------------------------------- | | | | | | | | | 1 1 1 0 0| * | * | * | * | * | * | * | * | | | | | | | | | | --------------------------------------------------------------- | | | | | | | | | 1 1 1 0 1| * | * | * | * | * | * | * | * | | | | | | | | | | --------------------------------------------------------------- | | | | | | | | | 1 1 1 1 0| * | * | * | * | * | * | * | * | | | | | | | | | | --------------------------------------------------------------- | | | | | | | | | 1 1 1 1 1| * | * | * | * | * | * | * | * | | | | | | | | | | ---------------------------------------------------------------
7 6 5 4 3 2 1 0 ------------------------------------------------------------- | Port Mode | H34 | H12 | H4 | H3 | H2 | H1 | | Control | Enable | Enable | Sense | Sense | Sense | Sense | ------------------------------------------------------------- PGCR 7 6 Port Mode Control 0 0 Mode 0 (Unidirectionnelle 8 bits) 0 1 Mode 1 (Unidirectionnelle 16 bits) 1 0 Mode 2 (Bidirectionnelle 8 bits) 1 1 Mode 3 (Bidirectionnelle 16 bits) PGCR 5 Fonctionnement avec H34 0 non 1 oui PGCR 4 Fonctionnement avec H12 0 non 1 oui PGCR 3-0 Niveau logique de fonctionnement des broches H 0 Logique negative: La broche H associe est au niveau haut de tension lorsqu'elle est non positionnee et au niveau bas de tension lorsqu'elle est positionnee. 1 Logique positive: La broche H associe est au niveau bas de tension lorsqu'elle est non positionnee et au niveau haut de tension lorsqu'elle est positionnee.
7 6 5 4 3 2 1 0 --------------------------------------------- | | SVCRQ | Operation | Port Interrupt | | * | Select | Select | Priority Control | --------------------------------------------- PSRR 6 5 SVCRQ Select 0 X la broche PC4/DMAREQ\ est utilisee en PC4; Le mode DMA n'est pas utilise. PSRR 4 3 Selection du fonctionnement des broches d'interruption 0 0 la broche PC5/PIRQ\ est utilisee en PC5, la broche PC6/PIACK\ est utilisee en PC6, sans interruption. 0 1 la broche PC5/PIRQ\ est utilisee en PIRQ\, la broche PC6/PIACK\ est utilisee en PC6, avec interruption autovectorisee. 1 0 la broche PC5/PIRQ\ est utilisee en PC5, la broche PC6/PIACK\ est utilisee en PIACK\. 1 1 la broche PC5/PIRQ\ est utilisee en PIRQ\, la broche PC6/PIACK\ est utilisee en PIACK\, avec interruption vectorisee. PSRR Determine l'ordre de priorite d'interruption des broches H 2 1 0 du + prioritaire au - prioritaire 0 0 0 H1S > H2S > H3S > H4S 0 0 1 H2S > H1S > H3S > H4S 0 1 0 H1S > H2S > H4S > H3S 0 1 1 H2S > HSS > H4S > H3S 1 0 0 H3S > H4S > H1S > H2S 1 0 1 H3S > H4S > H2S > H1S 1 1 0 H4S > H3S > H1S > H2S 1 1 1 H4S > H3S > H2S > H1S
7 6 5 4 3 2 1 0 ----------------------------------------- | Interrupt Vector Number | * | * | -----------------------------------------Ce registre contient dans ses 6 bits de poids fort le numero de base des 4 vecteurs d'interruption du port (H1S, H2S, H3S et H4S). Le contenu de ce registre peut etre lus de deux maniere: soit par un cycle de lecture ordinaire, soit par un cycle de reconnaissance d'interruption (IACK). Apres un RESET ce registre est egale a la valeur hexadecimale $0f. Apres une ecriture dans ce registre les bits 0 et 1 sont toujours a 0.
7 6 5 4 3 2 1 0 --------------------------------------------------------------- | | | H2 | H1 | H1 | | Port A | | Interrupt | SVCRQ | Status | | Submode | H2 Control | Enable | Enable | Control | --------------------------------------------------------------- Attention: Seul le mode 0 Submode 1X est presente ici. PACR 7 6 Submode du Port A 1 X submode 1X PACR 5 4 3 Contole H2 0 X X Broche en entree, le bit H2 sens) est positionne sur un front montant ou descendant (en fonction du bit H2S) de la broche H2. 1 X 0 Broche en sortie au niveau logique bas (Attention le niveau de tension de H2 depend du bit H2 sens). 1 X 1 Broche en sortie au niveau logique haut, meme remarque que 1 X 0. PACR 2 Interruption avec H2 0 Non 1 Oui PACR 1 Interruption avec H1 0 Non 1 Oui PACR 0 Controle H1 X En fonction du bit H1 sens, le bit H1S est positionne sur un front detecte sur la broche H1.
7 6 5 4 3 2 1 0 --------------------------------------------------------------- | | | H4 | H3 | H3 | | Port B | | Interrupt | SVCRQ | Status | | Submode | H4 Control | Enable | Enable | Control | --------------------------------------------------------------- Attention: Seul le mode 0 Submode 1X est presente ici. PBCR 7 6 Submode du Port B 1 X submode 1X PBCR 5 4 3 Contole H4 0 X X Broche en entree, le bit H4 sens) est positionne sur un front montant ou descendant (en fonction du bit H4S) de la broche H4. 1 X 0 Broche en sortie au niveau logique bas (Attention le niveau de tension de H4 depend du bit H4 sens). 1 X 1 Broche en sortie au niveau logique haut, meme remarque que 1 X 0. PBCR 2 Interruption avec H4 0 Non 1 Oui PBCR 1 Interruption avec H3 0 Non 1 Oui PBCR 0 Controle H3 X En fonction du bit H3 sens, le bit H3S est positionne sur un front detecte sur la broche H3.
7 6 5 4 3 2 1 0 ---------------------------------------------------------------------------------------- | H4 Level | H3 Level | H2 Level | H1 Level | H4S | H3S | H2S | H1S | ----------------------------------------------------------------------------------------Les bits 7 a 4 indiques le niveau instantane des broches H. Attention ce niveau ne depend pas des bits de "sens" du registre PGCR: Un bit a 1 indique un niveau haut de tension sur la broche H correspondante. Un bit a 0 indique un niveau bas de tension.
L'interpretation des bits d'etat 3 a 0 depend de la programmation du mode et du submode:
Dans le mode 0 submode 1X, un bit HS 3 a 1 indique qu'il y a eu un front sur la broche H correpondante. Le type de front depend du bit H sens, par exemple: Si le bit H1 sens est a 0, H1S passera a 1 sur le premier front descendent de la broche H1. Inverssement, si le bit H1 sens est a 1, H1S passera a 1 sur un front montant de la broche H1.
Un bit HS repasse a 0, soit par un RESET, soit par une ecriture a 1 de ce bit sinon il reste toujours a 1 quelque soit l'etat de son entree H.
7 6 5 4 3 2 1 0 --------------------------------------------------- | TOUT/TIACK\ | Z.D. | * | Clock | Timer | | Control | Control | | Control | Enable | --------------------------------------------------- TCR 7 6 5 Controle de TOUT/TIACK\ 0 0 X Les broches PC3/TOUT et PC7/TIACK\ sont dediees au port C. 0 1 X La broche PC3/TOUT est utilise pour generer un signal carre: TOUT change d'etat a chaque passage du compteur par 0. La broche PC7/TIACK\ est dediee au port C. 1 0 0 Pas presente ici. 1 0 1 La broche PC3/TOUT est utilise pour generer une interruption. TOUT passe au niveau bas au passage du compteur par 0 (bit ZDS a 1). La broche PC7/TIACK\ est utilise pour la reconnaissance d'interruption vectorisee. 1 1 0 Pas presente ici. 1 1 1 La broche PC3/TOUT est utilise pour generer une interruption. TOUT passe au niveau bas au passage du compteur par 0 (bit ZDS a 1). La broche PC7/TIACK\ est dediee au port C, le mode d'interruption est donc autovectorisee. TCR 4 Control de la detection du passage a zero 0 Apres le passage a zero du compteur 24 bits celui ci est recharge a l'aide des registres de prechargement sur la premiere impulsion d'horloge CLK. 1 Apres le passage a zero du compteur 24 bits celui ci passe a la valeur maximale $FFFFFF. TCR 3 Toujours a zero TCR 2 1 Controle du decomptage 0 0 La broche PC2/TIN est dediee au port C c'est donc la broche CLK qui sert d'horloge. Le prediviseur est utilise. Il est decremente a chaque transition de CLK. Le compteur 24 bits est decremente quand le predivieur passe de la valeur $00 a $1f. La mise en marche du timer est controlee par le bit 0 du TCR. 0 1 La broche CLK et le prediviseur sont utilises. Le prediviseur est decremente a chaque transition de CLK. Le compteur 24 bits est decremente quand le predivieur passe de la valeur $00 a $1f. La broche PC2/TIN controle le fonctionnement du TIMER. Si l'entree TIN est au niveau Haut le TIMER ce met en marche. 1 0 La broche PC2/TIN est utilise comme signal d'horloge. Le prediviseur est utilise. Il est decremente a chaque transition de TIN. Le compteur 24 bits est decremente quand le predivieur passe de la valeur $00 a $1f. La mise en marche du timer est controlee par le bit 0 du TCR. 1 1 La broche PC2/TIN est utilise comme signal d'horloge. Le compteur 24 bits est decremente a chaque transition de TIN. La mise en marche du timer est controlee par le bit 0 du TCR. TCR 0 Mise en marche du TIMER 0 Non 1 Oui
7 6 5 4 3 2 1 0 ---------------------------------------------- | * | * | * | * | * | * | * | ZDS | ----------------------------------------------Ce registre contient un seul bit significatif: le Zero Detect Status. Ce bit vaut 1 lorsque le compteur de 24 bits passe de la valeur $00001 a $00000. Le ZDS repasse a zero soit par un RESET ou soit par un arret du TIMER. Pour acquiter une interrutpion, il faut mettre a 1 ce bit.