Vous êtes sur la page 1sur 4

Adresse de l'octet

HORLOGE TEMPS RÉEL PCF 8583

1 . Présentation

Ces pages sont une présentation simplifiée du composant. Elles permettront de lire plus facilement la documentation officielle Ce circuit propose de créer :

soit une horloge 1 associée à un calendrier soit un compteur d'évènements. Nous n'étudions ici que la fonction horloge-calendrier.

2 . La fonction horloge-calendrier

Dans cette configuration, le circuit se comporte comme une horloge. Les anglo-saxons lui donnent le surnom de RTC pour Real Time Clock. Pour donner l'heure en permanence, le circuit doit posséder une alimentation autonome de sauvegarde. Dans sa fonction horloge il donne :

les centièmes de seconde les secondes les minutes les heures. Dans sa fonction calendrier, il donne la date (= le quantième du jour) le mois le calendrier s'étend sur quatre ans 2 pour tenir compte des années bissextiles le jour de la semaine.

3 . La communication avec le composant

Elle se fait par une liaison I²C, en lecture ou en écriture. Chaque information est contenue dans un octet.

4 . L'organisation interne simplifiée du composant

La mémoire interne est divisée en registres (octets) auxquels on peut accéder soit directement (voir ci-dessous) soit de manière séquentielle grâce à l'auto incrémentation du compteur d'adresse interne Schématiquement on peut voir trois zones

 

00

Horloge

Calendrier

07

 

08

Réveil

0F

 

10

Mémoire

RAM

FF

Si la fonction réveil n'est pas utilisée, la zone mémoire correspondante peut être utilisée en tant que RAM d'usage général.

1 avec fonction réveil (alarm clock)

2 On n'obtiendra pas le quantième de l'année mais un n° d'ordre dans une liste de 0 à 3. 0 = année bissextile

5 . Accès direct, accès séquentiel

Lors d'un accès direct, l'utilisateur peut s'adresser à un octet particulier du composant, il doit donc indiquer à chaque fois l'adresse de cet octet lors de la communication par I²C L'accès séquentiel permet de profiter de l'auto-incrémentation du compteur d'adresse interne pour ne donner que l'adresse de départ de la suite d'octets avec lesquels on souhaite converser. Mieux, si l'adresse de départ est 00, l'envoi de l'adresse est superflu. La communication avec le composant obéit aux règles générales du protocole I²C.

6 . Signification des chiffres des registres internes

6.1 Registre de configuration

msb lsb 7 6 5 4 3 2 1 0
msb
lsb
7
6
5
4
3
2
1
0

Adresse : 00

Initialisation à 00

Témoin horloge

Témoin réveil

Autorisation réveil

1 : réveil autorisé

Option masque

1 : masque pour faciliter la lecture

Mode de fonctionnement

Mémorisation

Arrêt comptage

1 : arrêt

Option masque : les registres 05 et 06 contiennent, chacun, deux types d'information. L'option masque facilite la lecture de ces registres en supprimant les informations les moins importantes, dans le registre 05, l'année est supprimée dans le registre 06, c'est le jour de la semaine qui n'apparait pas. Pour retrouver ces informations, il faut que cet élément soit mis à 0 lors de la phase d'initialisation

6.2 Registre du compteur des heures

msb lsb 7 6 5 4 3 2 1 0
msb
lsb
7
6
5
4
3
2
1
0

Adresse : 04

Initialisation à 00

Unités des heures

Dizaines des heures

Témoin AM/PM

Mode 24 ou 12 h

0 : mode 24 h

6.3 Registre du compteur des années et des quantièmes des jours

msb

lsb

7

6

5

4

3

2

1

0

     

Adresse : 05

Initialisation à 00

Unités des quantièmes

Dizaines des quantièmes

Année

de 0 à 3

6.4 Registre du compteur des jours de la semaine et des mois

msb lsb 7 6 5 4 3 2 1 0
msb
lsb
7
6
5
4
3
2
1
0

7 . Qu'est-ce que BCD ?

Adresse : 06

Initialisation à 00

Unités des mois

Dizaines des mois

Jour de la semaine

de 0 à 6

BCD est une abréviation anglo-saxonne pour Décimal Codé en Binaire. Les valeurs numériques concernant de temps ne sont pas données sous forme binaire mais sous forme BCD pour faciliter l'exploitation du composant pour réaliser une horloge à numérique. Chaque groupe de quatre chiffres binaires représente un chiffre décimal. Exemple 35 sera représenté, dans les registres, par : 0011 0101 il est évident que cette dernière valeur est sans signification en binaire, elle doit être traduite par les fonctions adéquates du Cubloc.

8 . Registre de configuration du registre des alarmes

msb lsb 7 6 5 4 3 2 1 0
msb
lsb
7
6
5
4
3
2
1
0

9 . Communication

Adresse : 08

Initialisation à 00

Résolution de l'alarme de l'horloge

Autorisation interruption chronomètre

Mode de fonctionnement de l'alarme de l'horloge

Autorisation de l'alarme de l'horloge

Autorisation interruption réveil

La communication se fait par l'intermédiaire d'une liaison I²C. Nous reprenons les symboles vus dans les autres feuilles de présentation

9.1 Schéma d'une séquence d'écriture

Start

SelW

Ack

Choix

Ack

Don-1

Ack … Don-n

Ack

Stop

On met à profit l'auto-incrémentation du compteur interne des adresses pour écrire toutes les données de configuration (Don-x) au cours de la même transmission.

9.2 Schéma classique de la lecture de plusieurs octets de donnée

Start

SelW

Ack Choix Ack Start SelR Ack Don-1

Ack … Don-n

Nack

Stop

9.3 Schéma simplifié de la lecture de plusieurs octets de donnée

Ce schéma ne peut pas être mis en œuvre avec le Cubloc car l'acquittement des données ne respecte pas le modèle classique, le seul que peut traiter le Cubloc.

9.4 Adresse du composant :

0101 0000

(à laquelle il faut insérer le bit de sens)

l'adresse est figée sur notre horloge temps réel