Publié le 9 novembre 2014 - par

Utiliser l’horloge RTC 1302 sur le B+

RTC_module_DS1302_250pxEn février 2014, je vous avais proposé un article sur l’utilisation du circuit RTC DS1302 avec le Raspberry Pi.
Cet article a été utilisé par Philippe qui a modifié le programme pour utiliser les GPIO 20, 21 et 26 (broches 38, 40, 37) et ainsi libérer la place pour d’autres extensions.
Philippe m’a fait parvenir le programme modifié que vous trouverez ci-dessous.

GPIO_RTC_DS1302_connexion

Connexion du module RTC à base de DS1302

On voit sur ce tableau que Philippe a utilisé les ports GPIO situés « en bas » du GPIO du B+. Ceci a l’avantage de libérer complètement la partie supérieure du GPIO pour d’autres utilisations.

Le programme rtc-pi-bplus est disponible en téléchargement. Faites un clic droit sur le lien et choisissez « Enregistrer la cible du lien sous… » si vous êtes sous Windows et que ça coince… bin oui aussi, pourquoi vous êtes sous Windows ?

DS1302_hqewEt si vous utilisez un système d’exploitation sérieux 😉 utilisez

wget https://www.framboise314.fr/docs/rtc-pi-bplus.zip

Si le Raspberry est connecté à Internet, il se met à l’heure via NTP. Pour mettre à l’heure l’horloge du RTC1302 utilisez cette commande :

sudo ./rtc-pi $(date +%Y%m%d%H%M%S)

Si vous trouvez ce programme utile, ne manquez pas de le dire à Philippe en lui laissant un mot dans les commentaires ci-dessous…

Merci à Philippe pour ce retour très intéressant sur le DS1302

Complément d’information

Un autre article sur le DS1302 paru début 2014. Et un lecteur du blog, Flavien me signale : « Je me suis servi de cette lib qui ne demande aucune installation ou configuration :
https://github.com/codelast/raspberry-pi/tree/master/real-time-clock »

Sources

À propos François MOCQ

Électronicien d'origine, devenu informaticien, et passionné de nouvelles technologies, formateur en maintenance informatique puis en Réseau et Télécommunications. Dès son arrivée sur le marché, le potentiel offert par Raspberry Pi m’a enthousiasmé j'ai rapidement créé un blog dédié à ce nano-ordinateur (www.framboise314.fr) pour partager cette passion. Auteur de plusieurs livres sur le Raspberry Pi publiés aux Editions ENI.

12 réflexions au sujet de « Utiliser l’horloge RTC 1302 sur le B+ »

  1. rubictus

    Je viens de recevoir le même module (à base de DS1307) que celui vu sur l’article ci-dessous, commandé effectivement pour moins de 2 € sur mamazone (port compris – envoyé direct de Chine et reçu après 2 bonnes semaines !) sur :
    http://hardware-libre.fr/2013/08/raspberry-pi-ajouter-une-horloge-rtc-en-i%C2%B2c/

    A priori, pas besoin d’appli externe, 2 modules noyaux i2c à charger dans raspbian.

    Pas encore mis en oeuvre moi-même, mais ça semble imbattable en terme de coût / simplicité.

    Répondre
  2. Ping : Mesure de distance par ultrasons avec le Raspberry Pi | Framboise 314, le Raspberry Pi à la sauce française….

    1. François MOCQ Auteur de l’article

      bonjour
      oui le module RTC vous permet de conserver l’heure avec une pile (comme sur un PC 😉 ) et à la remise en route votre RasPi se recale sur cette heure.
      cordialement
      François

      Répondre
  3. Johann CAMBOLY

    Bonjour,
    Tout d’abord, je remercie Philippe pour cette astuce qui ma grandement aidé.
    Cependant j’ai commandé une dizaine de RaspBerry V2 (1 Go de RAM) à 40 Pins, j’ai remarqué que mes DS1302 ne marchait plus.
    Le programme que vous fournissez fonctionne parfaitement sur la B+ (RaspBerry V1) à 40 Pins, serait’il possible de faire le même programme avec les mêmes Pins du schéma ci-dessus pour la V2 ?

    Merci pour ce topic.

    Répondre
    1. François MOCQ Auteur de l’article

      Bonjour
      Les adresses des IO ont changé entre le 2835 et le 2836
      voir http://lists.denx.de/pipermail/u-boot/2015-February/204483.html

      +#ifdef CONFIG_BCM2836
      +#define BCM2835_GPIO_BASE 0x3f200000
      +#else
      #define BCM2835_GPIO_BASE 0x20200000
      +#endif
      #define BCM2835_GPIO_COUNT 54

      Dans le programme remplacez
      #define GPIO_ADD 0x20200000L // physical address of I/O peripherals on the ARM processor
      par
      #define GPIO_ADD 0x3f200000L // physical address of I/O peripherals on the ARM processor

      recompilez et ça roule !

      Répondre
  4. jo

    Bonjour,

    merci beaucoup pour ce joli programme modifié !
    Pour mon projet le GPIO 21 ( pin 40) est déjà utilisé par une carte, mais c’est ce même port qui est déclaré dans le programme rtc-pi-bplus pour le DAT (ou SDA).. Comment puis-je modifié cette affectation ?

    Merci d’avance !

    Répondre
  5. Ping : Un module RTC à base de DS1302 pour le Raspberry Pi | Framboise 314, le Raspberry Pi à la sauce française….

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Complétez ce captcha SVP *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.