Remettons tout de suite les pendules à l’heure ! ( 😆 ) Notre framboise314 n’a pas eu droit à un « garde-temps » ou horloge RTC.
Le maintien du prix le plus bas possible explique ce choix technique. D’ailleurs les plus anciens se souviendront (avec nostalgie) que sur les IBM-PC originaux les premières commandes au démarrage du DOS étaient… date et time !
Au sommaire :
- 1 Horloge RTC DS1302 pour le Raspberry Pi
Horloge RTC DS1302 pour le Raspberry Pi
Pour le Raspberry Pi 1
[stextbox id= »warning » caption= »Attention ! »]Cet article s’applique au Raspberry Pi 1. Les adresses des E/S sont différentes selon les SOC. Voir par exemple https://www.framboise314.fr/utiliser-lhorloge-rtc-1302-sur-le-b/[/stextbox]
Le premier PC
En effet le PC à ses débuts (malgré son prix élevé) n’était pas non plus doté d’une horloge RTC. La solution est venue en ajoutant des cartes ISA comportant un circuit d’horloge et… une ou plusieurs piles ou batteries cadmium nickel. Par la suite, les circuits d’horloge ont été intégrés à la carte mère, ainsi que les batteries de sauvegarde (IBM PC/AT en 1984, utilisant un circuit intégré RTC Motorola MC146818 )
Le protocole NTP
Le Raspberry Pi, lorsqu’il est relié à un réseau (Ethernet ou WIFI) se connecte à un serveur de temps pour récupérer l’heure. C’est le protocole NTP (Network Time Protocol = Protocole de synchronisation de temps sur réseau) qui est mis en œuvre.
L’architecture NTP repose sur une arborescence de serveurs. Les serveurs de niveau I sont synchronisés par une horloge atomique, ce qui garantit la précision de l’heure pour l’ensemble du réseau.
ntp.conf
Si on jette un coup d’oeil à /etc/ntp.conf, on voit que ce sont les serveur ntp de Debian qui sont sollicités.
pi@raspberrypi /etc $ cat ntp.conf # /etc/ntp.conf, configuration for ntpd; see ntp.conf(5) for help .../... # pool.ntp.org maps to about 1000 low-stratum NTP servers. Your server will # pick a different set every time it starts up. Please consider joining the # pool: <http://www.pool.ntp.org/join.html> server 0.debian.pool.ntp.org iburst server 1.debian.pool.ntp.org iburst server 2.debian.pool.ntp.org iburst server 3.debian.pool.ntp.org iburst .../...
En France vous pouvez remplacer ces quatre lignes par
server 0.fr.pool.ntp.org iburst dynamic server 1.fr.pool.ntp.org iburst dynamic server 2.fr.pool.ntp.org iburst dynamic server 3.fr.pool.ntp.org iburst dynamic
L’option iburst signifie qu’en cas d’indisponibilité du serveur, ntp essaiera plusieurs fois avant d’abandonner. L’option dynamic permet de conserver dans la configuration les serveurs indisponibles, au cas où ils seraient à nouveau accessibles plus tard. (d’après Debian).
La carte RTC
C’est la carte à base de DS1302 que j’ai choisie. Elle vient de chez Hobby Electronics où on la trouve pour 4.20£ (5,10€). Je vous l’avais présentée dans une sélection de cartes RTC pour le Raspberry Pi il y a quelques mois. Et puis rédaction du livre oblige, j’ai dû mettre pas mal de projets en sommeil, dont celui-ci.
La carte est munie de cinq contacts qui vont permettre de la relier au GPIO du Raspberry Pi. J’ai utilisé des petits cordons femelle-femelle pour ces essais.
Elle comporte un circuit intégré DS1302+, un quartz horloger et une pile CR2032, un grand classique des piles de sauvegarde sur PC.
DS1302
Le DS1302 monté sur le Raspberry est un DS1302+ (sa gamme de température de fonctionnement va de 0°C à 70°C). Attention si vous prévoyez une utilisation à l’extérieur dans des conditions hivernales (station météo à Mouthe par exemple 😥 ), il faudra prévoir de maintenir la température du circuit.
Ce circuit intègre une horloge/calendrier et 31 octets de RAM statique, sauvegardés par la pile. (Eh oui c’est dans ces octets qu’un PC sauvegarde son setup). La communication avec le microprocesseur se fait en communication série. Seuls 3 fils sont nécessaires pour faire communiquer le DS1302 : CE (RST), I/O (DATA) et SCLK (Serial Clock).
Pour les techniciens ce chronogramme indique la méthode pour lire ou écrire le DS1302. Pour les autres pas d’inquiétude un programme fourni par HobbyTronics va faire le boulot.
Le DS1302 peut être alimenté entre 2 volts et 5,5 volts. Il se comportera donc parfaitement sous 3,3 volts, et il n’y aura aucun problème d’adaptation entre sa sortie et l’entrée GPIO auquel il sera relié. Prévoyez quand même une résistance de tirage entre la borne DATA et le + 3,3 volts (10 à 33 kΩ feront l’affaire – j’ai utilisé une 22 kΩ).
Pile CR2032
Le DS1302 conserve les données et maintient l’heure avec une puissance inférieure à… 1µW. La notice technique indique un courant de maintien sur la pile entre 0,3 et 1µA selon la tension.
La pile CR2032 a une capacité d’environ 200mAh, et à mon avis, elle mourra de vieillesse avant de mourir d’épuisement !
Quartz et précision
Le quartz est un quartz horloger de fréquence 32,768 kHz. La précision de l’horloge dépend de sa précision.
Les cristaux ordinaires (c’est certainement le cas de celui-ci) ont une précision de +/- 50ppm environ, ce qui représente 0,005%… Pour obtenir une meilleure précision, il faut mettre en œuvre des moyens disproportionnés avec le prix de la carte RTC…
Si vous faites le calcul vous parvenez à une dérive maxi de 2 minutes par mois lorsque le Raspberry n’est pas relié au réseau. A vous de voir si cela vous convient. Il est possible également de recaler l’horloge de temps en temps si cette précision est insuffisante pour votre application.
La connexion au Raspberry Pi
Pour la rédaction de cet article, j’ai utilisé des fils de liaison femelle-femelle pour carte prototype afin de relier les picots du GPIO de la framboise314 à ceux de la carte RTC. Toujours pour les tests la résistance de tirage a été simplement enfoncée a l’arrière des connecteurs pour établir le contact. Bien entendu pour un montage définitif, il conviendra de sécuriser l’ensemble…
Le programme rtc-pi.c
Ce programme est fourni par HobbyTronics. Il faudra le compiler pour l’utiliser mais cela ne pose pas de problème particulier. Autant vous le dire tout de suite, le programme de HobbyTronics est prévu pour le Raspberry Pi V1. Il faudra donc le modifier pour pouvoir l’utiliser avec la V2 de notre framboise314. En effet sur cette version 2, le GPIO 27 a remplacé le GPIO 21 et il faut modifier le programme en conséquence.
D’autre part après modification du programme, la mise à l’heure de mon Raspberry Pi renvoyait obstinément une date et une heure de 2013, et comme je n’habite pas à proximité d’une faille spatio-temporelle, j’en ai déduit que c’était l’écriture dans le DS1302 qui ne se faisait pas correctement.
Relecture de la notice du bestiau pour m’apercevoir qu’il y a un registre qui permet d’autoriser l’écriture. Sur certains forums Arduino il est précisé que parfois ce registre est positionné et empêche l’écriture dans l’horloge.
Retour dans le programme pour m’apercevoir que ce registre n’est pas dans la liste des déclarations. L’auteur est tombé sur un DS1302 qui acceptait l’écriture est ne s’en est pas inquiété. J’ai donc ajouté cette autorisation d’écriture et cette fois mon DS1302 a sagement accepté de se mettre à l’heure.
Modification de la version 1 à la version 2 :
Cherchez les lignes
#define : SCLK_OUTPUT, SCLK_HIGH and SCLK_LOW
Remplacez les par les lignes ci-dessous qui contiennent les valeurs correctes pour l’utilisation du programme avec un Raspberry Pi V2.
#define SCLK_OUTPUT *(gpio+GPIO_SEL2) &= 0xFF1FFFFFL; *(gpio+GPIO_SEL2) |= 0x00200000L #define SCLK_HIGH *(gpio+GPIO_SET) = 0x08000000L #define SCLK_LOW *(gpio+GPIO_CLR) = 0x08000000L
Modification pour assurer l’écriture dans le DS1302
Dans la partie
/* RTC Chip register definitions */ #define SEC_WRITE 0x80 .../... #define YEAR_READ 0x8D #define WR_ENABLE 0x8E
Ajoutez la dernière ligne #define WR_ENABLE 0x8E qui définit l’adresse du registre.
Avant que les données soient écrites dans le DS1302, ajoutez la ligne permettant de configurer le registre WR_ENABLE :
/* Got valid input - now write it to the RTC */ /* The RTC expects the values to be written in packed BCD format */ /* Mettre le bit write protect à 0 */ write_rtc(WR_ENABLE, 0); write_rtc(SEC_WRITE, ( (second/10) << 4) | ( second % 10) ); write_rtc(MIN_WRITE, ( (minute/10) << 4) | ( minute % 10) ); write_rtc(HOUR_WRITE, ( (hour/10) << 4) | ( hour % 10) ); write_rtc(DATE_WRITE, ( (day/10) << 4) | ( day % 10) ); write_rtc(MONTH_WRITE, ( (month/10) << 4) | ( month % 10) ); write_rtc(YEAR_WRITE, ( ((year-2000)/10) << 4) | (year % 10) );
La version mise à jour
Enfin si vous ne vous sentez pas d’humeur à aller modifier des lignes de programme, vous pouvez simplement télécharger la version modifiée (Raspberry Pi V2) que je mets à votre disposition sur framboise314…
Téléchargez l’archive sur framboise314 :
pi@raspberrypi ~ $ wget https://www.framboise314.fr/docs/rtc-pi_V2.zip --2019-10-30 20:54:38-- https://www.framboise314.fr/docs/rtc-pi_V2.zip Résolution de www.framboise314.fr (www.framboise314.fr)... 88.190.253.244 Connexion vers www.framboise314.fr (www.framboise314.fr)|88.190.253.244|:80...connecté. requête HTTP transmise, en attente de la réponse...200 OK Longueur: 7850 (7,7K) [application/zip] Sauvegarde en : «rtc-pi_V2.zip» 100%[======================================>] 7 850 --.-K/s ds 0,004s 2019-10-30 20:54:49 (1,71 MB/s) - «rtc-pi_V2.zip» sauvegardé [7850/7850]
Vous pouvez extraire les fichiers (il y le fichier source et l’exécutable)
pi@raspberrypi ~ $ unzip rtc-pi_V2.zip Archive: rtc-pi_V2.zip creating: rtc-pi_V2/ inflating: rtc-pi_V2/rtc-pi inflating: rtc-pi_V2/rtc-pi.c
Si vous voulez compiler le fichier source :
pi@raspberrypi ~/rtc-pi_V2 $ cc rtc-pi.c
Vous obtenez un fichier a.out qu’il suffira de renommer rtc-pi pour pouvoir l’utiliser.
(le programme exécutable fourni dans l’archive sera écrasé).
pi@raspberrypi ~/rtc-pi_V2 $ mv a.out rtc-pi pi@raspberrypi ~/rtc-pi_V2 $ ls -al total 32 drwxr-xr-x 2 pi pi 4096 oct. 30 21:00 . drwxr-xr-x 3 pi pi 4096 oct. 30 20:57 .. -rwxr-xr-x 1 pi pi 10852 oct. 30 21:00 rtc-pi -rw-r--r-- 1 pi pi 10940 févr. 21 2014 rtc-pi.c
Utilisation de rtc-pi
Le programme rtc-pi peut
- Configurer l’heure système et l’horloge RTC
- Configurer l’heure système à partir de l’horloge RTC
Mise à l’heure du système et de l’horloge RTC
La mise à l’heure consiste à fournir au programme la date et l’heure sous la forme :
YYYYMMJJHHNNSS
avec :
- YYYY L’année exprimée avec 4 chiffres (2014)
- MM Le mois exprimé avec 2 chiffres (02=février)
- JJ Le jour exprimé sur 2 chiffres
- HH L’heure exprimée sur 2 chiffres
- NN Les minutes exprimées sur 2 chiffres
- SS Les secondes exprimées sur 2 chiffres
Exemple :
pi@raspberrypi ~/rtc-pi_V2 $ sudo ./rtc-pi 20140221195045 Date-Heure positionnée.
NOTA : L’utilisation de sudo est obligatoire pour accéder aux ports du GPIO.
J’ai ajouté dans le programme un message qui confirme le réglage de l’heure.
La date : 21 février 2014 à 19H50mn45s
Mise à l’heure du système à partir de l’horloge RTC
Si vous souhaitez mettre le système à l’heure à partir de l’heure sauvegardée par l’horloge RTC:
pi@raspberrypi ~/rtc-pi_V2 $ sudo ./rtc-pi pi@raspberrypi ~/rtc-pi_V2 $ date vendredi 21 février 2014, 19:53:08 (UTC+0100)
Date permet de vérifier la date système.
Automatisation de la mise à l’heure système au démarrage
L’intérêt de cette carte est de mettre à l’heure un système qui démarre sans être connecté au réseau. Il faut pour cela ajouter à /etc/rc.local notre programme rtc-pi.
Celui-ci va récupérer l’heure de l’horloge RTC, maintenue par la pile CR2032, et va configurer l’heure système lors de chaque démarrage du Raspberry Pi.
Ouvres /etc/rc.local avec sudo nano /etc/rc.local et ajoutez le programme rts-pi avec son chemin absolu.
#!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. # Print the IP address _IP=$(hostname -I) || true if [ "$_IP" ]; then printf "My IP address is %s\n" "$_IP" fi # Mise à jour de l'horloge système à partir du module RTC /home/pi/rtc-pi_V2/rtc-pi
Pour les tests, débranchez votre Raspberry Pi du réseau (ou enlevez la clé WIFI). Attendez un moment et redémarrez le. L’heure système devrait être correcte.
D’autre modèles de carte RTC à base deDS1302
En fait, tout modèle conçu à partir d’un DS1302 se comportera exactement comme celui-ci. Le DS1302 est tellement « simp le » (du point de vue connectique) qu’on ne peut pas vraiment faire autrement que suivre le schéma de la documentation technique…
Voici quelques modèles glanés sur le web, mais vous en trouverez sans doute d’autres…
Conclusion
Pour tous ceux qui utilisent un Raspberry Pi non connecté à Internet, l’horloge RTC offre une solution fiable pour maintenir l’heure. Les systèmes mobiles en particulier pourront bénéficier de cette solution (s’ils ne sont pas équipés d’un GPS…).
Je vais également creuser un peu du côté ds 31 octets disponibles dans le DS1302 pour y stocker des infos qui seraient sauvegardées par la pile. Une espèce de setup du Raspberry Pi…
Un autre article sur le DS1302 paru fin 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«
Comme toujours vos remarques, commentaires et suggestions seront les bienvenus !
Ping : Un module RTC à base de DS1302 pour le R...
Merci pour votre article
je me demandais juste si il fallait charger les modules kernel concernat l’IIC qui ne sont pas chargé par defaut , ou bien si le code se debrouille sans
merci
didier GAYRARD
Bonjour, et merci pour vos informations. Une petite remarque, le fichier PDF ne contient pas toutes les informations de cet article.
Bonjour
oups! merci de me prévenir
le plugin a dû être perturbé…
je vais voir si je peux vider le cache???
Cordialement
François
ps : j’ai effacé le cache pdf de WP Post to PDF mais ça n’a rien changé
si un utilisateur averti de WordPress peut m’aider????
Bonjour,
Vous avez un fort joli blog, et votre maîtrise du Raspberry ainsi que vos connaissances en électronique m’amènent à vous solliciter. Je développe un projet de timelapse longue durée avec transmission de photos par 3G à base de Raspberry et de Gopro, le tout autonome en énergie (panneaux solaires et batteries fonctionnant en 5V et en 3.7V). Le Raspberry servant à la transmission de quelques photos par jour via une clé 3G. Il faut qu’il démarre environ toutes les 2 heures (mais cela peut varier), afin de récupérer la dernière photo sur la carte sd de la gopro, et de l’envoyer, puis de s’éteindre complètement (pour des raisons d’économie d’énergie). Comment réaliser l’automatisation du démarrage du Pi?
Salutations.
Jérôme
Bonjour Jérôme
Si vous éteignez complètement le Raspberry Pi il faudra prévoir un système externe chargé des opérations.
L’arrêt peut se faire en envoyant une impulsion sur un port GPIO, mais le système s’arrête seulement, le Raspberry ne s’éteint pas…
Par contre il redémarre si on met un poussoir, un relai ou un contact quelconque sur le Reset (https://www.framboise314.fr/ma-framboise314-fait-risette-ajouter-un-bouton-de-reset-au-rasperry-pi-version-b/)
il faudrait mesurer la consommation lorsque le système est en mode Halt pour voir si c’est intéressant.
Si vous voulez une extinction complète, il faut gérer l’arrêt du système (il n’aime pas forcément les arrêts brutaux) puis le coupure d’alimentation un peu après. La remise sous tension du système le fera redémarrer 2 heures plus tard.
Je ne sais pas si ces explications ont pu vous aiguiller, n’hésitez pas à me recontacter si besoin.
François
Bonjour,
J’ai donc finalement trouvé le bon article pour vous faire part des modifications que j’ai apporté à ce logiciel:
+ajout de la détection automatique de la carte Raspberry Pi V1/V2
+ajout de l’accès à la SRAM intégrée en lecture et écriture
+quelques fonctions supplémentaires en ligne de commande
Voyez le dépôt ci-dessus sur bitbucket.
Cordialement
Alain
Bonjour Alain
Quand je clique sur asez73, je tombe sur une page de login…
Cordialement
François
Etonnament donc, j’ai bien du mal à mettre en ligne ce que je veux…
Pourtant, j’ai bien démarré avec une sauvegarde sur K7!
Donc voilà le dépôt bitbucket correspondant au RTC DS1302:
https://bitbucket.org/asezille/raspberry-pi-rtc-ds1302 qui est public donc sans login (normalement).
J’ai 2 autres dépôts en préparation pour un CI apte à recevoir cette carte et faire de la teleinfo et du one wire en plus.
Cordialement
Alain
Super !
Cette fois ça fonctionne Alain
merci 🙂
François
Bonjour,
J’ai du changer la ligne 99 qui ne reconnaissait pas correctement la version de ma raspberry et donc ne fonctionnait pas.
C’est la conversion hexa vers int qui posait pb.
Avec cette ligne cela fonctionne bien :
revision = strtol(strcpy(revision_string, strchr(line, ‘:’) + 2),NULL,16);
au lieu de :
revision = atoi(strcpy(revision_string, strchr(line, ‘:’) + 2));
Ma revision_string était ‘000e’.
Effectivement, la conversion hexa vers int était fausse… Un Pull request sur le dépôt Bitbucket sera certainement le bienvenu.
ha, nickel j’ai justemment recu des modules comme ceux ci, par contre le programme est fourni sans licence… puis-je le poster sur notre wiki? etc?
bonjour tuxun
vouiii ce qui est publié sur le site (sauf indication contraire) est sous licence CC v3 comme indiqué en bas de la page. Donc…. pas de problème !
cordialement
François
Bonjour,
Pour RASPBERRY B+ , RTC1302 et utilisation des GPIO rarement utilisés :
J’ai du me plonger dans toute la doc mais j’ai 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.
J’envoie le source à l’admin François.
Je cherche à savoir comment mettre à jour le RTC lors de l’extinction du raspberry (à partir de ntp ?, …)
Merci à vous
Bonjour Auxonnais
Merci pour ce retour sur le programme
la nouvelle version pour le B+ est parue ici :
https://www.framboise314.fr/utiliser-lhorloge-rtc-1302-sur-le-b/
Cordialement
François
Bonjour;
Si on se connecte à Internet pour mettre à jour le RTC , a quoi cela sert d’avoir une horloge.
Dans mon cas je ne veux plus du tout que le PI soit connecté à internet ;
J’effectue la mise à l’ heure un utre système d’horloge sans gps sans internet.
Comment viré les mises à jour automatiques du système.? .. une fois les divers automates (Crouzet, boitier fabriqué maison ) en place on ne touche plus. Il semble que les mises à jour essai de se lancer et non connecté on se retrouve avec une erreur de segmentation de PYTHON. Si le PI doit être connecté alors poubelle .
Merci
Bonjour
patience… il faut que le commentaire soit validé avant d’apparaitre la première fois 🙂
Le Raspberry Pi n’a pas à être connecté à Internet, l’horloge RTC permet de garder l’heure s’il est éteint et rallumé.
Le Pi Zero d’origine n’avait pas de port réseau et fonctionne très bien.
Les mises à jour se lancent si vous entrez la commande sinon il est possible que vous ayez installé une appli qui demande elle même les mises à jour
en aucun cas le Raspberry Pi ne le fera
Après, si vous mettez un Raspberry Pi à la poubelle, pensez à Malinux, votre Raspberry Pi retrouvera une nouvelle vie et aidera des enfants
https://www.framboise314.fr/malinux-tele-ca-continue/
cordialement
François
Bonjour;
Et voilà c’est comme cela que l’on retape un commentaire atteint par un ridicule « time OUT ».
Bon je simplifie pour ne pas tout retaper.
Non les mises à jour sont lancées automatiquement via le CRON de ROOT (ANACRON ), enchainement de mise à jour mauvais donc en attendant je modifie les fichiers DIALY WEELY etc…
Donc mauvaise réponse
Bonjour
désolé pour le « ridicule » time out mis en place après que le site ait été hacké et soit tombé plusieurs jours, le temps de remettre les sauvegardes…
Il évite de laisser le temps à un « attaquant » pour tenter de s’infiltrer
On peut bien entendu configurer la date et l’heure en ligne de commande, pour un Raspberry Pi non connecté. Voyez par exemple https://stackoverflow.com/questions/25374570/how-to-update-date-and-time-of-raspberry-pi-with-out-internet
Pour les mises à jour qui se font en automatique, vous ne précisez pas quel OS vous utilisez… Avec Raspbian elles sont manuelles…
le root n’est pas activé par défaut et il n’y a pas d’anacron à ma connaissance (à moins que ça ait été modifié dans la dernière version de Raspbian)
cordialement
François
Bonjour;
Pour le Time Out je comprends, d’habitude je fast un copié.
Pour les mises à jour cela ne c’est produit que depuis la dernière version. (je n’avais aucun souci avec le PI2). Mais depuis le PI 3 quelque chose à changer.
Effectivement avec le PI 2 sous RASPBIAN les mises à jour n’étaient pas automatiques.
Si la connexion n’a pas lieu le lancement de PYTHON même sans spécifier de SCRIPT entraine une erreur de segmentation.
Le pire c’est que l’erreur se retrouve ensuite dans le lancement d’APT.
La première fois je suis reparti à l’installation avec mise ne place de PYMODBUS, GTK etc.. (enfin de mes outils necessaires).
Sans doute un concours de circonstances.
PS: J’ai du répondre au Mail (clups)
Merci Francois
Ping : Utiliser l’horloge RTC 1302 sur le B+ | Framboise 314, le Raspberry Pi à la sauce française….
Bonjour.
Pour un PI V2 vous proposez GPO17 (11)-RST GPO18 (12)-DAT GPO27 (13)-CLK.
Si ces broches ne sont pas disponibles, est-il possible d’utiliser GPIO7 (26) – GPIO8 (24) – GPIO11 (23) (en modifiant naturellement rtc-pi.c) ?
Les broches 11-12-13 font parties du GPIO et 23-24-26 du bus SPI et en principe toutes les broches sont reconfigurables (sauf 8-10). Cette reconfiguration est-elle complexe ?
Par avance merci pour votre aide (et merci aussi pour le site).
François S.
Bonjour François
oui c’est possible
Voyez par exemple le programme dans cet article https://www.framboise314.fr/utiliser-lhorloge-rtc-1302-sur-le-b/. C’est un programme modifié par Philippe un lecteur du blog, pour utiliser les dernières broches du GPIO d’un B+. Je pense que vous pourrez vous en inspirer. Vous me direz….
Pour les autres broches (I2C, SPI…) il suffit de ne pas charger le module qui les gère et elles sont disponibles comme E/S
Bonne journée
Cordialement
François
Merci pour votre réponse. J’ai commandé le module (en Chine avec un petit délai de 20 jours).
En faisant quelques recherches, je suis tombé sur ce site :
Low Level Programming of the Raspberry Pi in C
http://www.pieter-jan.com/node/15
Cet article donne des indications très précieuses et peut, peut être, intéresser d’autres amateurs de framboises. Je vous tiendrai informé de mes tests.
Cordialement.
François S.
Bonjour FS
ce sera avec plaisir et les pages de framboise314 vous sont ouvertes si vous souhaitez publier vos résultats ! 😉
cordialement
François bis
Bonjour,
Merci pour votre article.
A quoi sert la résistance de tirage que vous ajoutez ? J’ai réalisé le montage sans la mettre et cela fonctionne correctement.
Il me semble que le RPi dispose déjà de résistances de tirage internes (cf. Table 6-31 de http://www.raspberrypi.org/wp-content/uploads/2012/02/BCM2835-ARM-Peripherals.pdf). Celle-ci est positionnée à Low par défaut pour GPIO 27.
D’avance merci de votre réponse.
Philippe
Bonjour Phil
Vous avez raison mais… je pense que c’est un réflexe de vieil électronicien 😉
J’aime pas voir un fil en l’air… même si on me dit que….
Cordialement
François
Bonjour et merci pour cet article avec toujours autant de clarté que sur le reste du site !
je débute dans le monde des raspberry… et je commence avec un A+ et du coup j’ai un petit « trouble » avec les notions de « v1 » ou de « v2 »
Ma Revision (/proc/cpuinfo) est « Revision : 0012 », donc une « v1 » d’apres ce que je crois comprendre, exact ?
une question « hors contexte », pourquoi les RaspBerry Pi A+ sont si peut « couvertes » dans les différents articles/montages etc etc… ?
Même sur le site officiel, beaucoup de docs pour les A, B, B+ mais pratiquement rien sur la A+
car, du coup, pour un débutant, il est assez difficile de s’y retrouver en terme de « compatibilité » avec les autres cartes.
y a t’il, et quelles sont, les différences à prendre en compte pour cette « A+ » (GPIO etc…)
merci d’avance et bravo pour vote site très clair
bonsoir,
je viens de finir ce tuto assez facile à suivre, mais j’ai quand même un problème quand je fais sudo reboot sans être connecté à internet, et si ensuite je fais la commande date j’ai cette date qui s’affiche : Tue Nov 30 00:00:36 CET 1999 . j’ai télécharger la version V2 et je suis sur un rasp b+. pouvez vous m’aider a résoudre ce problème ?
merci d’avance.
Bonjour,
Comme Mollkov, j’ai essayé ce tutto. Tout fonctionne sans problème avec une raspberry V1, mais avec une V2, c’est une autre chose. La date reste inchangée et indique Tue Nov 30 00:00:41 CET 1999 .
J’ai pourtant changé les lignes comme indiqué et vérifié mainte fois mon code mais rien n’y fait. Quelqu’un a t-il la solution?
J’ai le même problème.
Avez-vous trouvé une solution ?
Avec mon raspberry B+ v2 ça fonctionne mais visiblement l’heure doit être enregistré quelque part. Car même déconnecté il raffiche l’heure au moment de l’arrêt. (Raspian jessy)
https://www.framboise314.fr/utiliser-lhorloge-rtc-1302-sur-le-b/
Ping : Maintenir Domoticz à l'heure - BassignyElectro
Bonjour,
Je ne parviens pas à utiliser le DS1302 sur mon Rpi3.
J’ai bien essayé de mettre mon nez dans le code en C mais je n’ai pas assez de connaissance de ce langage pour faire des tests et bien diagnostiquer.
Je suis bloqué :-/
Avec le code que j’ai récupéré je parviens à mettre à jour l’horloge du rpi avec l’heure passée en paramètre.
Par contre je n’ai pas la certitude que ça écrive bien sur la puce DS1302.
En mode « read » (sans argument), la fonction me renvoie une erreur : Unable to change the system time. Did you run as an administrator ? The operation returned the error message « invalid argument ».
J’ai essaye d’afficher la valeur année censée être lue sur la puce. Il me renvoie 255 …
Si quelqu’un peut me filer un coup de pouce … Moi je suis vraiment coincé sur ce coup !
Je me réponds tout seul.
Pour résoudre mon problème, je me suis référé à un commentaire de la page suivante : https://www.framboise314.fr/utiliser-lhorloge-rtc-1302-sur-le-b/
où il est indiqué :
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
Aprés avoir modifié ceci dans le code C, j’ai compilé et tout fonctionne à merveille.
Merci pour ces articles
Bonjour Michael
J’adore quand les lecteurs répondent eux-même à leur question 🙂
surtout s’ils trouvent la réponse sur framboise314 😉
oui, les adresses des registres diffèrent selon les SoC et il faut parfois adapter…
cordialement
François
Héhé en effet ça peut paraitre comique de voir mes deux commentaires consécutifs. En vérité, ça fait au moins 5 ou 6 fois que je me colle sur le cablage / paramétrage du module (je ne compte pas la lecture de cet article qui a précédé l’achat du module). Ce coup-ci, je l’ai eu !!
non non, pas comique, simplement ça prouve que vous savez chercher une solution et ce que vous dites montre votre persévérance… deux qualités indispensables en informatique 🙂
avec le fait de garder son calme en toute circonstance 😉
bonne continuation !
Bonjour.
Je suis allé chez Conrad à Lille hier et j’y ai trouvé cette carte vendu par lot de 2 (VMA 301), sous la marque Velleman, pour 4,99 €.
Velleman fait pas mal de petit kits pour Arduino qui doivent être compatibles avec le Pi. J’y ai vu un kit RFID (VMA 405) pour moins de 12 € et il ressemble furieusement à un kit utilisé par les aficionados du PI.
http://www.velleman.eu/products/search/?q=vma&search=Recherche&page=2&scroll=367.015625
Bonjour,
Je viens de lire ce très intéressant sujet sur l’ajout d’un rtc sur un pi. J’ai un pi 2 et voudrais donc le rendre autonome avec ce module au niveau de l’heure mais je ne sais pas trop comment faire pour mettre le programme dans le pi… faut il se connecter sur le pi en ssh et faire un copier coller du programme sur une installation raspbian stretch toute fraiche ou il y a t il une autre procédure. Je suis un grand débutant donc désolé si la question vous parait pas très intelligente …
cordialement
Bonjour
cet article s’applique au Pi1
de plus le programme est écrit en langage C et doit être compilé
si vous débutez dans le monde Pi et Linux, choisissez une solution clé en main
pour ne pas risquer d’être déçu…
cordialement
François
Ah zut, j’avais pas vu un truc …. la V2 veut pas dire raspberry pi 2 …parceque c’est sur un pi 2 ou un pi 3 que je voudrais installer le rtc ds 1302
Bon bah vous avez raison,
J’ai suivi tout votre article et le rtc ne fonctionne pas avec mon rpi 2 version B+ . Pourtant j’ai fait l’installe et le câblage en suivant scrupuleusement l’article … je serais curieux de savoir ce qui ne fonctionne pas et comment modifier pour que ca marche … j vais essayé de continuer à chercher en espérant qu’une âme charitable me vienne en aide
Merci d’avoir répondu si rapidement,
J viens de comprendre en regroupant plusieurs articles (dont le votre) comment faire pour inclure le code dans le pi… en clair il faut que je copie le code qui se termine en . C du fichier zip dans le raspberry et ensuite le compiler avec la ligne de commande ecrite sur votre page et transformer ce fichier en a.out en rtc.pi comme ecrit dans votre page … j vais me lancer et on verra bien ..qui tente rien n’ a rien (j’ai pris le fichier pour la version 2)
Cordialement
Bonjour,
Comment faire pour resynchroniser la RTC quand il y a une connexion internet?
Cordialement
Bonjour François
Très beau tuto.
J’ai décidé bille en tête de l’appliquer sur mon Raspberry que je viens de recevoir….mais oups !
C’est un Raspberry 4 et ça ne semble pas fonctionner
Je pense que si j’en déduis par rapport à ton article, l’adresse des MOC doit être encore différente ?
Même si google est mon ami, il ne me réponds pas grand chose…
Merci d’avance
bonjour
merci et… oui la fondation a du mal à lacher les infos sur le Pi4 (nos amis de Recalbox s’arrachent les cheveux dessus depuis sa sortie) je n’ai malheureusement pas ces infos pour le pi4
Bonjour Francois
Merci de ta réactivité
Oui c’est dommage de ne pas avoir ces infos.
Je vais essayer de les contacter pour voir…
Sinon il plutôt que de passer par des entrées / sorties peut-être passer par un bus I2C ?
eh non on est prisonnier de ce bus qui est unique sur le DS1302
à essayer un driver en python ?
https://github.com/dmand/rpi-ds1302
https://github.com/sourceperl/rpi.rtc
je n’ai pas testé