je suis en train de faire un montage qui a besoin d'un calendrier et j'utilise pour ça un PCF8583 mais je n'arrive pas à le faire fonctionner.
je m'explique :
je veux le faire fonctionner avec un quartz 32.768kHz, montage classique.
j'arrive très bien à écrire et à lire dans la mémoire, mais le n'arrive pas à lui faire incrémenter ses données. je sais qu'il faut configurer le registre 0x00 mais j'ai essayé et je n'y arrive pas.
il existe plusieurs modes d'utilisation :
- 32.768kHz
- 50Hz
- compteur
si je le configure en 50Hz il incrémente correctement mais pas à la bonne vitesse (forcement puisque ce n'est pas le bon quartz)
mais impossible de le faire fonctionner en mode 32.768kHz, j'ai essayé avec 3 puces neuves différentes et tjs le même problème.
est-ce que quelqu'un a une idée sur le problème?
ou est-ce que quelqu'un a déja utilisé ce composant et sait le configurer?
c bien ce que j'ai comme code mais impossible de le faire fonctionner, et mon circuit est celui de la data.
par contre j'ai mis un quartz un peu plus rapide car j'en avais pas sous la main à la bonne fréquense, je me suis demandé si ça ne venais pas de là mais comme ça fonctionne en 50Hz je ne pense pas que ce soit le problème
06/11/2008 - 00h40
HULK28
Date d'inscription
janvier 2006
Localisation
IDF
Messages
10 256
Re : PCF8583 help please
Tu as mis quoi?
"Le temps met tout en lumière." Thalès
06/11/2008 - 00h42
spilz
Date d'inscription
décembre 2005
Âge
28
Messages
45
Re : PCF8583 help please
un 6MHz, mais ça fonctionne en mode 50Hz donc je ne comprends pas
Ca ne peut pas fonctionner à 6MHz, le 50Hz est prévu avec une base de temps externe genre une synchro secteur.
Ce circuit est conçu pour recevoir un quartz horloger à 32,768KHz ou un signal en compteur d'évènements.
Le 50Hz que tu vois est la fréquence ambiante "reniflée" par l'entrée haute impédance.
@+
Dernière modification par HULK28 ; 06/11/2008 à 00h56.
"Le temps met tout en lumière." Thalès
06/11/2008 - 00h52
spilz
Date d'inscription
décembre 2005
Âge
28
Messages
45
Re : PCF8583 help please
bien vu, je vais essayer d'en trouver un à la bonne frequense, merci pour ton aide, je te tiens au courant
14/11/2008 - 18h47
spilz
Date d'inscription
décembre 2005
Âge
28
Messages
45
Re : PCF8583 help please
bonsoir, je viens de recevoir mon quartz et l'horloge fonctionne très bien.
pour le mode 50Hz apparemment il faut quand même le quartz à 32.768 kHz.
j'ai un autre problème tout bête si quelqu'un pouvait m'aider :
je cherche à activer l'alarme, plus précisément j'ai une date avec une heure précise et je voudrais que l'alarme se déclanche à ce moment, mais impossible de comprendre le fonctionnement du registre alarm
quelqu'un sait?
merci
spilz
14/11/2008 - 22h11
HULK28
Date d'inscription
janvier 2006
Localisation
IDF
Messages
10 256
Re : PCF8583 help please
Bonsoir,
je ne connais pas précisemment cette RTC mais en lisant la doc je vois ceci:
il y a un registre 'alarm' à l'adresse 0x08 qui est activé si un bit du registre de contrôle est mis à 1 (à savoir le bit 2).
Si ce bit est à 0 le registre est destiné à être utilisé comme de la RAM (0x08 à 0x0F), mis à 1 donc si 'alarm' est déclaré actif c'est réservé à différents types d'alarmes programmmables (évènement, chaque jour, chaque semaine, etc).
Dès qu'une occurence est détectée la sortie INT est mise à 0 (drain ouvert).
"Le temps met tout en lumière." Thalès
15/11/2008 - 08h41
spilz
Date d'inscription
décembre 2005
Âge
28
Messages
45
Re : PCF8583 help please
oui, je suis d'accord là dessus, mais c'est justement la configuration du registre alarm qui me pose problème, je ne suis pas très bon en anglais et je n'arrive pas à comprendre les nuances
je cherche à configurer l'alarme pour une date et heure précise, sans répétition
je ne comprends pas non plus les histoires de timers
merci de ton aide
spilz
16/11/2008 - 15h11
spilz
Date d'inscription
décembre 2005
Âge
28
Messages
45
Re : PCF8583 help please
personne n'a une idée sur comment régler ce registre alarme?
16/11/2008 - 16h43
HULK28
Date d'inscription
janvier 2006
Localisation
IDF
Messages
10 256
Re : PCF8583 help please
L'idée si, le temps de le faire non.
Tout est indiqué dans la doc, il faut que tu déclares les bons registres c'est tout.
Sinon tu peux faire plus simple, tu fais en soft une routine qui détecte l'heure, la minute et tu déclenches l'action qui va bien.
@+
"Le temps met tout en lumière." Thalès
16/11/2008 - 16h51
spilz
Date d'inscription
décembre 2005
Âge
28
Messages
45
Re : PCF8583 help please
^^ je comprends tout a fais
j'ai essayé pas mal de fois ce w-e et impossible d'obtenir un niveau haut à la sortie de l'INT et j'ai essayé pas mal de config des deux registres (status et alarm) mais ça n'a jamais fonctionné.
pour la solution en soft j'y avais pensé mais comme il doit tourné normalement en faisant d'autres taches, j'avais prévu de le faire fonctionner avec les inteeruptions.
spilz
16/11/2008 - 17h20
HULK28
Date d'inscription
janvier 2006
Localisation
IDF
Messages
10 256
Re : PCF8583 help please
Tiens essaye ça:
Code:
struct Time
{
byte hr;
byte mi;
byte se;
};
struct Date
{
byte yr;
byte mo;
byte da;
byte weekday;
};
void _8583_configure_alarm_register(byte alarm_control_reg)
{
i2c_master_start();
i2c_master_out_byte(0xa0);
i2c_master_out_byte(0x08); // control register address
i2c_master_out_byte(alarm_control_reg);
i2c_master_stop();
}
void _8583_write_alarm(struct Time *p_t, struct Date *p_d)
{
byte v;
i2c_master_start();
i2c_master_out_byte(0xa0);
i2c_master_out_byte(0x01+8);
i2c_master_out_byte(0x00);
v = to_BCD(p_t->se);
i2c_master_out_byte(v);
v = to_BCD(p_t->mi);
i2c_master_out_byte(v); // 0x03 + 8
v = to_BCD(p_t->hr);
i2c_master_out_byte(v);
v = to_BCD(p_d->da);
i2c_master_out_byte((p_d->yr << 6) | v);
v = to_BCD(p_d->mo);
i2c_master_out_byte((p_d->weekday << 5) | v );
i2c_master_stop();
}
j'ai deja un pilote pour le composant, j'arrive bien a configurer l'heure et à le faire fonctionner, j'arrive bien a lui mettre une date pour l'horloge, c'est juste les registres 0x00 et 0x08 où je ne sais pas quoi mettre.
après avoir lu et relu la data, je pense devoir mettre ça comme config, mais impossible de mettre la pin 7 au niveau haut (comme si j'étais tjs en interruption)
0x00 : 0b0000 0100
0x08 : 0b1011 0000
sachant que ce que je cherche c'est qu'a une date et heure données je passe de 1 a 0 sur /int et qu'il reste à 0 tant que je ne l'ai pas remis à 1 par logiciel.
mais ça ne fonctionne pas et je ne comprends pas pourquoi
je veux bien mettre le pilote que j'ai mais je ne sais pas si j'ai le drois, je l'ai trouvé sur un autre forum en anglais mais je ne sais plus où, dis moi si je peux, je pense que ça peut servir à pas mal de monde, sinon je rechercherai le lien