LA PROGRAMMATION DU RTC (MC 146818)
Le RTC (Real Time Clock) est un circuit qui s'occupe de la date, de l'heure et de générer certaines interruptions.
Il possède une RAM de 64 octets (parfois 128) qu'on peut adresser par l'intermédiaire des ports 70H et 71H .
Le RTC peut générer 3 types interruptions :
- 1 interruption à chaque mise à jour de la date, c'est-à-dire à chaque seconde.
- 1 interruption alarme.
- 1 interruption périodique, c'est une interruption qui sera générer à intervalle régulier.
Le port 70H est le registre d'index :
Bit 7
Bit 6-0 |
=
=
= |
0 Autorise les NMI (Non Masquable Interrupt).
1 Interdit les NMI.
Index dans la RAM (de 0 à 63 ou 127). |
L'écriture dans ce registre doit être suivit par la lecture
du registre de donnée (au port 71H).
|
Le port 71H est le registre de données :
|
Bit 7-0
|
=
|
DATA
|
LA MÉMOIRE DU RTC :
MÉMOIRE |
DESCRIPTION (CONTENU) |
00H
01H
02H
03H
04H
05H
06H
07H
08H
09H
32H |
SECONDES (actuel)
alarme secondes
MINUTE (actuel)
alarme minute
HEURE (actuel)
alarme heure
JOUR DE LA SEMAINE : (1 = DIMANCHE, 2 = LUNDI, ..., 7 = SAMDEDI)
JOUR DU MOIS
MOIS : (1 = janvier, ..., 0Ch (ou 12H) = décembre)
ANNÉE
SIÈCLE |
|
REGISTRE D'ÉTAT A (de l'horloge)
REGISTRE D'ÉTAT B
REGISTRE D'ÉTAT C
REGISTRE D'ÉTAT D |
LES OCTETS SUIVANT SERVENT AU BIOS :
0EH
0FH
10H
11H
12H
13H
14H
15H
16H
17H
18H
19H
1AH
1BH à 2DH
2EH
2FH
30H
31H
32H
33H
34H à 3FH |
OCTET DE DIAGNOSTIC
ÉTAT LORS DE L'ARRÊT DU SYSTEM (RESET)
DESCRIPTION DES LECTEURS DE DISQUETTES
RÉSERVÉ
TYPE DES DISQUE DUR (C, D)
RÉSERVÉ
OCTET DE CONFIGURATION
TAILLE DE LA MÉMOIRE DE BASE en Ko (octet de poids faible)
TAILLE DE LA MÉMOIRE DE BASE en Ko (poids fort)
TAILLE DE LA MÉMOIRE ÉTENDU en Ko (poids faible)
TAILLE DE LA MÉMOIRE ÉTENDU en Ko (poids fort)
TYPE DDUR C (octet d'extension)
TYPE DDUR D (octet d'extension)
RÉSERVÉ (pas d'infos)
OCTET FAIBLE DU CHECKSUM (de 10H à 2DH)
OCTET FORT DU CHECKSUM (de 10H à 2DH)
TAILLE MÉMOIRE ÉTENDU au dessus des 1Mo (octet faible)
TAILLE MÉMOIRE ÉTENDU au dessus des 1Mo (octet fort)
SIÈCLE
SETUP information
RÉSERVÉ (pas d'infos) |
|
|
DESCRIPTION DES REGISTRES :
REGISTRE A :
Bit 7
|
=
=
|
0
1
|
Indique que l'heure et la date peuvent être lues.
Indique que l'heure ou la date sont en cours de
changement dans la mémoire et ne peuvent être lues. |
le bit 7 (UIP) est accessible uniquement en lecture. |
Bit 6-4
Bit 3-0
|
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
= |
Fréquence horaire (XTAL)
010 => 32,768 Hz Défaut
les autres valeurs ???
Sélection de la vitesse pour les interruptions périodiques
0000 arrêt de l'horloge
0001 XTAL diviser par 128 (256 INT / seconde)
0010 XTAL /256 (128 INT/S = 1 INT toute les 7812 uS)
0011 XTAL /4 (8192 INT/S = 1 INT tte les 122 uS)
0100 XTAL /8 (4096 INT/S = 1 INT tte les 244 uS)
0101 XTAL /16 (2048 INT/S = 1 INT tte les 488 uS)
0110 XTAL /32 (1024 INT/S = 1 INT tte les 976,562 uS)
0111 XTAL /64 (512 INT/S = 1 INT tte les 1953 uS)
1000 XTAL /128 (256 INT/S = 1 INT tte les 3906 uS)
1001 XTAL /256 (128 INT/S = 1 INT tte les 7812 uS)
1010 XTAL /512 (64 INT/S = 1 INT tte les 15625 uS)
1011 XTAL /1024 (32 INT/S = 1 INT tte les 31250 uS)
1100 XTAL /2048 (16 INT/S = 1 INT tte les 62500 uS)
1101 XTAL /4096 (8 INT/S = 1 INT tte les 125 mS)
1110 XTAL /8096 (4 INT/S = 1 INT tte les 250 mS)
1111 XTAL /16192 (2 INT/s = 1 INT tte les 500 mS) |
---------------------------------------------------------------------------------------------------
REGISTRE B :
|
Ce registre permet d'autoriser ou d'interdire les
interruptions et de choisir le format de l'heure
et de la date. |
Bit 7
|
=
=
|
0
1
|
L'heure est actualisée toutes les secondes
L'heure est actualisée toutes les secondes
une nouvelle heure ou date ) |
Bit 6
|
=
= |
0
1 |
Permet les interruptions périodiques
Interdit les interruptions périodiques |
Bit 5
|
=
= |
1
0 |
Permet les interruptions pour l'alarme
Interdit les interruptions pour l'alarme |
Bit 4
|
=
= |
1
0 |
Permet les interruptions après update de l'heure
(toute les secondes)
Interdit les interruptions ... |
Bit 3
|
=
= |
1
0 |
Permet l'activation de l'horloge pour les
interruptions périodiques.
Désactive l'horloge des interruptions périodiques. |
Bit 2
|
=
|
FORMAT DE LA DATE ET DE L'HEURE
0 = BCD
1 = BINAIRE |
Bit 1
|
=
|
FORMAT DE L'HEURE
0 = Format 12 heures (il n'y a pas 13, 14, ..., 24)
1 = Format 24 heures (de 0 à 24 H) |
Bit 0
|
=
= |
1
0 |
Tient compte de l'heure d'été.
Ne tient pas compte de l'heure d'été |
---------------------------------------------------------------------------------------------------
REGISTRE C :
|
en lecture uniquement. Quand une interruption survient,
ce registre permet de savoir quelle est le type
d'interruption . |
Bit 7
Bit 6
Bit 5
Bit 4
|
=
=
=
=
=
=
=
=
|
0
1
0
1
0
1
0
1
|
Pas d'interruption
Indique qu'il y a une interruption
(périodique, alarme, update heure)
Pas d'interruption
Indique une interruption périodique
Pas d'interruption
Indique une interruption alarme
Pas d'interruption
Indique une interruption UPdate
(de mise a jour de la date) |
Bit 3-0 |
= |
|
???? Pas utilisé |
---------------------------------------------------------------------------------------------------
REGISTRE D : En lecture uniquement
Bit 7
|
=
= |
0
1 |
Pile usée (à changer)
Pile OK |
|