Académique Documents
Professionnel Documents
Culture Documents
• LE MODE SLEEP
• Architectures
– Von-Neuman / Harvard
• Jeux d'instructions
– CISC / RISC
Le PIC 877
• Unité centrale = 8 bit
• Mémoire programme = 8 Kmots de 14 bits
• Mémoire données = 8 bits / 368 octets
– Registres en mémoire
• Ports d’entrée/sortie (bcps!)
– Ex: Série, Parallèle, Numériques,
Analogiques, ..
Architecture
interne du PIC
Unité centrale
(Central Processing Unit)
• CPU = exécution des instructions (14 bits)
– Contrôle les bus (données/instructions)
– Programm Counter (PC = 13 bits) + la pile (stack = 8x13 bits)
– Architecture pipe-line (lecture (registre IR) / exécution (ALU) )
ALU
(Arithmetic and Logic Unit)
– ALU: opérations logiques + bits d’état
– Registre de travail (W – Accumulateur)
Registre d’état (STATUS)
• Les opération arithmétiques (+, -,
décalages...) affectent 3 bits (Carry (C),
Zero (Z) et Digit Carry (DC)
– C (report/retenue) = le 9ème bit d’une opération
– DC = report du bit 3 vers le bit 4
– Z (si résultat = 0, alors Z=1) = le bit test
• STATUS = C(b0) DC(b1) Z(b2) …
Mémoire programme
• 8K x 14b organisés en 4 pages x 2K
• PC = ½ PCLATH + PCL
A 0 1 2 3 U5
MM74C922
1
B 4 5 6 7 Y1
6
2
Y2
3
C 8 9 A B
8 4
Y3
Y4
OE
13
RB0
12
DA
11 17
X1 A
PIC
10 16
D C D E F 8
X2
X3 OSC
B
C
15
KBM
7 14
X4 D
1
5
5
6
Validation des interruptions
• Registre INTCON
– Flag GIE : met toutes les interruptions choisies
en service
– Flag PEIE : active les interruptions
périphériques
Types d’interruptions
• Primaires (registre INTCON)
• Timer 0 : débordement du timer 0
– Valider: TOIE; Flag : TOIF
• Pin RB0 : signale une transition sur patte RB0 dans le sens
déterminé par INTEDG
– Valider : INTE; Flag : INTF
• Ch RB4/7 : changement de niveau sur une des entrées RB4 à
RB7
– Valider: RBIE; Flag RBIF
– Utilisation:
• Valider le bit concernant l’interruption
• Valider le bit GIE
Types d’interruptions
• Périphériques
– Valider : registres PIE1 et PIE2
– Flags: registres PIR1 et PIR2
– Utilisation
• Valider le bit concernant l’interruption (PIE1/PIE2)
• Valider le bit PEIE (INTCON)
• Valider le bit GIE
Le Watchdog
• Timer interne spécifique (>7 ms)
– Réglable,
– Désactivable au démarrage
– Remis à 0 sur appel de clrwdt
– Redémarre le PIC si arrive en bout de course
• Signalé par bit T0 de statut
– Utilisation
• Détection boucle infinie dans programme (possible
sur faute électrique ou du programmeur)
• Réveil sur sleep
Les interruptions …
• Sources
– Declencheur Flag Registre Adr PEIE Enable Registre Adr
– Timer 0 T0IF INTCON 0x0B NON T0IE INTCON 0x0B
– Pin RB0 / INT INTF INTCON 0x0B NON INTE INTCON 0x0B
– Ch. RB4/RB7 RBIF INTCON 0x0B NON RBIE INTCON 0x0B
– Convert. A/D ADIF PIR1 0x0C OUI ADIE PIE1 0x8C
– Rx USART RCIF PIR1 0x0C OUI RCIE PIE1 0x8C
– Tx USART TXIF PIR1 0x0C OUI TXIE PIE1 0x8C
– Port série SSP SSPIF PIR1 0x0C OUI SSPIE PIE1 0x8C
– Module CCP CCP1IF PIR1 0x0C OUI CCP1IE PIE1 0x8C
– Timer 1 TMR1IF PIR1 0x0C OUI TMR1IE PIE1 0x8C
– Timer 2 TMR2IF PIR1 0x0C OUI TMR2IE PIE1 0x8C
– EEPROM EEIF PIR2 0x0D OUI EEIE PIE2 0x8D
– SSP mode I2C BCLIF PIR2 0x0D OUI BCLIE PIE2 0x8D
– Port parallèle PSPIF PIR1 0x0C OUI PSPIE PIE1 0x8C
Scrutation ou interruption
• Scrutation (polling)
– Maîtrise des temps
– Conservation du caractère séquentiel
– Perte de temps
• Interruption
– Permet de prendre en compte un événement au plus
vite
– Évite scrutations inutiles
– Risque d'engorgement ?
Mode SLEEP
• Placement en sommeil
– Remise à zéro du watchdog
– Arrêt de l'oscillateur (donc des instructions)
• Réveil
– Reset
– Échéance du watchdog
– Interruption RB0/INT RB EEPROM
Fonction d’interruption
• Prototype :
• void interrupt(void)
• Cours de Bigonoff
– www.abcelectronique.com/bigonoff
• Microchip
– Datasheet du PIC
– Simulateur MPLAB
– www.microchip.com