Questions & AnswersCategory: Library and FirmwareProblème de maitien de l’heure avec la RTC.
francis.morel asked 6 years ago

Bonjour à tous et encore bravo à Alexandre pour cette carte.<br><br>J\’ai bien vu le soucis sur la casse des fichier .h (je travaille sous Linux) mais je l\’ai assez vite corrigé pour aller jouer avec les exemples.<br>Le DevDuino tourne actuellement avec rtc et c\’est magnifique.<br>En revanche: pas de mémorisation de la date/heure dans le chip.<br>Premier chantier de travail avec la carte ?<br>Encore merci et bravo !<br><br>Fram

grychowski.bg replied 6 years ago

Bonjour,

Moi aussi passage à 2065 lorsque alimentation coupée. Pile bien insérée

francis.morel replied 6 years ago

Bonjour grychowski.bg
Le probleme a été réglé dans la dernière version de la librairie que tu peux télécharger ici:
https://github.com/devduino/devduino/archive/master.zip
Bon amusement avec la DevDuino !
Fram

3 Answers
Best Answer
marcoux_a answered 6 years ago

La solution est de corriger le registre de contrôle #3… J’ai modifié rtc.cpp pour ajouter ceci et maintenant ça fonctionne! Est-ce la meilleur façon de toujours écrire le registre au démarrage? Mais au moins ça fonctionne

 

(English) Issue with RTC clock not keeping it\’s value is linked to the Control_3 register that is set by default to NOT switch over to VBat. Modifying it\’s value to 0x80 enable to switch over and makes it work! Below the change done to rtc.cpp in the library (not the sketch!). #define PCF8523_CONTROL_3_REGISTER_ADDRESS 0x02void Rtc::begin() {Wire.beginTransmission(PCF8523_I2C_ADDRESS);Wire.write(PCF8523_CONTROL_3_REGISTER_ADDRESS);Wire.write(0x80); (Enable switch-over, no interrupt)Wire.endTransmission();}

Alex Staff replied 6 years ago

Je vais revérifier la lib mais en tout cas merci beaucoup du retour.

francis.morel replied 6 years ago

Salut Alexandre !
Histoire d’épiloguer, je confirme les modifications de marcoux_a (en commentant le commentaire relatif au 0x80) qui font correctement fonctionner le RTC de mon côté, désormais.
A clore.
Francis

Alexandre Pailhoux Staff answered 6 years ago

Bonjour Francis!
Merci du retour!
Normalement si avec une pile, la date et l\’heure sont mémorisées.
As-tu bien essayé avec la pile?

francis.morel replied 6 years ago

Oui, la pile est bien en place et mon multimetre indique 3,29V.

francis.morel replied 6 years ago

Oups. C’est réglé: il fallait bien enfoncer la pile. Merci !

francis.morel replied 6 years ago

Non. Il y a un problème. Quand le DevDuino est branché, no pb, mais quand il est débranché puis redémarré, la date/heure part sur 2064-02-00…

francis.morel replied 6 years ago

Mon scénario.

Alors, j’ouvre l’exemple, change SET_RTC pour true et positionne la date/heure puis téléverse le code dans le DevDuino.
Il redémarre avec la date/heure indiquée.

Si je réinitialise le DevDuino, la date est remise à celle indiquée dans le code (normal).

Du coup, je bascule SET_RTC à false, re-televerse le code; au redémarrage, la date/heure a bien continué son décompte et a bien été sauvegardée.
Je réinitialise le DevDuino; la date/heure a continué son décompte, c’est cool.

Je débranche le DevDuino, attends 10 secondes, puis je le rebranche.
La date/heure n’est pas conservée et prend une valeur aléatoire (ici: 2065-03-09 T 07h04m00s).

La pile ne permet pas de conserver la date/heure.

Docteur ?

marcoux_a replied 6 years ago

Je confirme, même comportement de mon côté…

Alex Staff replied 6 years ago

Est-ce que ça a un impact so tu débranches 1 seconde ou 10 secondes?
J’aurai tendance à dire qu’il est possible que la pile ne fasse pas bien contact avec son emplacement.
Elle a bien été insérée dans le bon sens?
C’est possible de vérifier au multimètre.

francis.morel replied 6 years ago

Salut Alexandre.
Hier, dans le doute, j’ai contrôlé la broche 3 (VBat) au multimètre et j’ai bien mesuré 3,35,V DevDuino branché ou pas.
La pile est bien dans le bon sens.
Je regarde encore ce soir.
Francis

francis.morel replied 6 years ago

Dans le doute…
Le PCF8523 a un mode battery switch-over qui, déactivé, ne bascule pas sur la pile à la perte de tension (VDD), registre Control_3 (02h), bits PM[2:0].
Pour PM=010, 011 et 111, le mode battery switch-over est désactivé et la pile n’est pas prise en compte.
Or, par défaut, PM=111… (cf. table 11 p15, renvoi [3] de la documentation https://www.nxp.com/docs/en/data-sheet/PCF8523.pdf ).
Je regarderai plutôt cela ce soir.
Francis

marcoux_a replied 6 years ago

Je crois que l’option du registre est une bonne piste… Moi aussi 3.25V a la broche 3 (VBAT) donc c’est pas la batterie!

marcoux_a replied 6 years ago

Bingo c’est le registre… J’ai modifié rtc.cpp pour ajouter ceci et maintenant ça fonctionne!
#define PCF8523_CONTROL_3_REGISTER_ADDRESS 0x02
void Rtc::begin() {
Wire.beginTransmission(PCF8523_I2C_ADDRESS);
Wire.write(PCF8523_CONTROL_3_REGISTER_ADDRESS);
Wire.write(0x80); (Enable switch-over, no interrupt)
Wire.endTransmission();
}

francis.morel replied 6 years ago

Yes ! Merci marcoux_a !
@Alexandre: après le coup de la casse dans les librairies, pour les fichiers .h et Linux, ceci est une nouvelle mise à jour à faire.
En tous les cas, tu peux compter sur tes utilisateurs (fans ?) !
Francis

marcoux_a replied 6 years ago

J’ai repris ma solution seul comme ça ce sera plus facile à voir et voter directement pour la solution sans lire tout! @francis.morel un petit vote 😉

francis.morel replied 6 years ago

C’est fait !

marcoux_a answered 6 years ago

En fait la datasheet du PCF8523 demande une résistance série d’environ 1k + un cap au GND d’environ 3.3uF. Le schémas montre à la page 11 une R de 1.3k (OK) avec un C de 10uF + 100nF en // je suspecte que c’est la cause… Je ne peux pas tester pouir le moment et sans les Gerber du PCB c’est difficile…

Alex Staff replied 6 years ago

De 1k à 1.3k ça n’a pas d’impact, j’ai juste gagné une ligne de moins sur la nomenclature.
100nF c’est du découplage, ça ne fait jamais de mal.
10uF c’est un bulk qui forme un RC avec celle de 1.3k, l’essentiel c’est d’être au dessus de 3.3uF.
Si la RTC ne garde pas l’heure, je pense que soit la batterie n’est pas bonne ou soit elle est mal insérée, mais en tout cas je l’ai bien validée.
Tenez moi au courant.

francis.morel replied 6 years ago

Salut à tous.
De mon côté, j’ai bien constaté 3,35V sur VBAT (broche 3), idem au niveau du condensateur à côté (à 0/GND de l’autre côté, broche 4/VDD).
Je ne pense pas que les composants aient une influence sur ce problème.
Francis

francis.morel replied 6 years ago

Je voulais écrire broche 4/VSS.