Les Module RTC
Sommaire du chapitre
- Les Module RTC
- Introduction
- Caractéristiques principales
- Brochage du RTC
- Fonctionnement
- Exemple d'utilisation avec la carte CREPP.io
- Format BCD
- Configuration initiale
- Lecture de l'heure et de la date
- Matériel nécessaire
- Utilisation de la carte CREPP.io
- Code
- Alternatives au DS1307
- Conclusion
- Programme du module RTC
Les Module RTC
Introduction
Le module RTC est une horloge temps réel largement utilisée dans les projets électroniques nécessitant une gestion précise du temps. Il permet de conserver l'heure et la date même en l'absence d'alimentation grâce à une batterie de sauvegarde.Caractéristiques principales
Horloge Temps Réel (RTC)
Général
Fabricant | Maxim Integrated (Analog Devices) |
Description | RTC I$^2$C BCD, 56 octets NV RAM, cristal externe 32.768 kHz |
Boîtier | 8-DIP / 8-SOIC |
Électrique
Alimentation (VCC) | 4.5 V – 5.5 V |
Alimentation batterie (VBAT) | 2.0 V – 3.5 V (CR2032 typique) |
Courant actif | 1.5 mA typ. |
Courant batterie | < 500 nA (oscillateur en marche) |
VCC absolue max | 7.0 V |
Précision | Dépend du cristal – typiquement $>$2 min/mois à 25°C |
Fonctions
Données horloge | Secondes, minutes, heures (12/24h), jour, date, mois, année |
Compensation année bissextile | Valide jusqu'en 2100 |
RAM non-volatile | 56 octets NV SRAM |
Sortie fréquence (SQW) | 1 Hz, 4.096 kHz, 8.192 kHz, 32.768 kHz |
Bascule batterie | Automatique sur VBAT si VCC absent |
Interface
Interface | I$^2$C (100 kHz standard uniquement) |
Adresse I$^2$C | 0x68 (fixe) |
Liens
Brochage du RTC
Le DS1307 possède 8 broches :
VCC : Alimentation (+5V)
GND : Masse
SDA : Ligne de données I2C
SCL : Ligne d'horloge I2C
SQW/OUT : Sortie de signal carré optionnelle (1 Hz, 4.096 kHz, 8.192 kHz, 32.768 kHz)
VBAT : Entrée de la batterie de sauvegarde. Cette fonctionnalité n'est pas présente sur la carte CREPP.io.
Horloge Temps Réel (RTC)
Général
Fabricant | Maxim Integrated (Analog Devices) |
Description | RTC I$^2$C haute précision avec TCXO et cristal intégrés |
Boîtier | 16-SOIC / SOP-8 |
Électrique
Alimentation (VCC) | 2.3 V – 5.5 V |
Alimentation batterie (VBAT) | 2.3 V – 5.5 V (CR2032 typique) |
Courant actif | 200 µA typ. (VCC = 3.3 V) |
Courant batterie | 3 µA typ. (VBAT = 3.0 V) |
VCC absolue max | 6.0 V |
Précision
Précision (0°C – 40°C) | $\pm$2 ppm |
Précision ($-$40°C – +85°C) | $\pm$3.5 ppm |
Capteur température intégré | Précision $\pm$3°C, résolution 0.25°C |
Fonctions
Données horloge | Secondes, minutes, heures, jour, date, mois, année |
Compensation année bissextile | Valide jusqu'en 2100 |
Alarmes | 2 alarmes programmables avec sortie INT/SQW |
Sortie fréquence | 1 Hz, 1.024 kHz, 4.096 kHz, 8.192 kHz (SQW) |
Sortie 32 kHz | Disponible sur broche dédiée 32KHZ |
Maintien sur batterie | Bascule automatique sur VBAT si VCC absent |
Interface \& Commande
Interface | I$^2$C (100 kHz standard / 400 kHz fast-mode) |
Adresse I$^2$C | 0x68 (fixe) |
Liens
Le DS323 possède broches :
VCC : Alimentation (+3.3V)
GND : Masse
SDA : Ligne de données I2C
SCL : Ligne d'horloge I2C
SQW/OUT : Sortie de signal carré optionnelle (1 Hz, 4.096 kHz, 8.192 kHz, 32.768 kHz)
VBAT : Entrée de la batterie de sauvegarde
Fonctionnement
Le RTC stocke l'heure et la date en utilisant un format BCD (Binary-Coded Decimal). Il doit être initialisé et lu via une interface I2C.Format BCD
Le format BCD encode chaque chiffre décimal sur 4 bits. Par exemple :25 (décimal) est représenté en BCD par
0010 010159 (décimal) est représenté en BCD par
0101 1001
Configuration initiale
Pour utiliser le RTC, il faut :Initialiser la communication I2C
Configurer l'heure et la date si elles ne sont pas déjà définies
Lire périodiquement l'heure et la date pour les afficher ou les utiliser dans un programme
Lecture de l'heure et de la date
Le microcontrôleur doit envoyer une requête sur le bus I2C pour récupérer les valeurs stockées dans le registre de temps.Exemple d'utilisation avec la carte CREPP.io
Matériel nécessaire
Carte CREPP.io
Module RTC
Le module sur la carte a été routé en +3.3V suite à une erreur. Il semblerait que ce module fonctionne quand même en +3.3V.
Utilisation de la carte CREPP.io
La carte CREPP.io dispose d'un emplacement pour le module RTC:

Le méplat sur le composant DS1307 se situe sur le coté du potentiomètre POT1.

Code
Code pour le module RTC
L'adresse I2C pour ces modules est souvent 0x68.
Programme du module RTC
Le temps doit s'afficher dans le moniteur série et la LED à coté du DS1307 doit clignoter à 1 Hz.
Alternatives au DS1307
Bien que le DS1307 soit largement utilisé, il existe des alternatives plus précises et plus performantes, telles que :DS3231 : RTC avec oscillateur à quartz intégré et compensation thermique, offrant une bien meilleure précision.
PCF8523 : RTC à faible consommation, adapté aux applications sur batterie.
RX8025 : RTC haute précision avec alarme et interruption intégrées.