RTC (Raspi) : Différence entre versions

De Les Fabriques du Ponant
Aller à : navigation, rechercher
(Poussé depuis encluminure.)
 
(Poussé depuis encluminure.)
Ligne 18 : Ligne 18 :
  
 
==== Noyau Unix ====
 
==== Noyau Unix ====
Sous Unix, il faudra installer les noyaux i2c et i2c-dev (voir [[i2c#Unix]]).
+
Sous Unix, il faudra installer les modules i2c et i2c-dev (voir [[i2c#Unix]]).
 
Ensuite, pour la partie RTC, rtc_ds1307.
 
Ensuite, pour la partie RTC, rtc_ds1307.
  
Ligne 52 : Ligne 52 :
 
== Voir aussi ==
 
== Voir aussi ==
 
* [[Système temps réel]]
 
* [[Système temps réel]]
* [[NTP|Protocole d'Heure Réseau]]
+
* [[Ntp|Protocole d'Heure Réseau]]
  
  

Version du 21 décembre 2014 à 15:57

La Raspberry-Pi n'a pas d'horloge temps réel. Pour se mettre à l'heure, elle utilise le protocole Ntp, mais on peut aussi lui greffer un module externe.

Module RTC

Le module RTC DS1338 de Maxim-Dallas contient un quartz à 32,768 KHz, un support de pile (CR2032) et une interface i2c. Il est compatible avec le DS1307 (qui fonctionne entre 5V et 7V), et fonctionne avec une une tension de 3,3V donc compatible avec ce que peut fournir la raspi.

La raspi sera le maitre et le module sera l'esclave.

Câblage

La raspi possède les broches i2c dans son GPIO, et le module externe peut être alimenté en 3,3V. On connecte donc :

  • SDA sur la broche 3 (GPIO 2 - SDA)
  • SCL sur la broche 5 (GPIO 3 - SCL)
  • Vcc sur la broche 1 (3V3)
  • Gnd sur la broche 9 (Gnd)

La broche SQW fournit un signal d'horloge carré n'est pas utilisé ici.

Noyau Unix

Sous Unix, il faudra installer les modules i2c et i2c-dev (voir i2c#Unix). Ensuite, pour la partie RTC, rtc_ds1307.

On trouve le bus et l'esclave avec i2cdetect, puis on renseigne le système avec le bon i2c- et 0x:

sudo modprobe rtc_ds1307
sudo bash -c `echo "ds1307 0x68" > /sys/class/i2c-adapter/i2c-0/new_device `

dmesg | tail
 [ 22.748166] rtc-ds1307 0-0068: rtc core: registred ds1307 as rtc0
 [ 22.748216] rtc-ds1307 0-0068: 56 bytes nvram
 [ 22.748276] i2c i2c-0: new_device: Instantiated device ds1307 at 0x68

On se retrouve avec un accès a la rtc externe par /dev/rtc0.

Mise à l'heure

On utilise hwclock pour mettre à l'heure le matériel.

sudo hwclock --set --date="31/12/2014 13:59:42"
sudo hwclock -r

On peut ensuite

  • sudo hwclock --systohc : copie l'heure système vers la rtc
  • sudo hwclock --hctosys : copie l'heure de la rtc sur le système.


Voir aussi