Pages: [1] 2   Go Down
Author Topic: problema imprecisione RTC PCF8563  (Read 1650 times)
0 Members and 1 Guest are viewing this topic.
Camisano Vicentino (VI), Italy
Offline Offline
God Member
*****
Karma: 5
Posts: 956
ƎR like no other.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

per un progetto in cui mi servirebbe avere l'ora in modo abbastanza preciso, avevo pensato di usare un RTC PCF8563 nella versione DIP a 8 pin...
ora ho montato il circuito come in questa immagine (senza mettere le resistenze di pull-up sull'I2C) http://startingelectronics.com/beginners/start-electronics-now/tut16-arduino-clock/arduino-clock-battery-circuit-diagram.png
e caricando su un ATmega328 questo codice:
Quote
/*
  The circuit:
 * LCD RS pin to digital pin 10
 * LCD R/W pin to ground
 * LCD Enable pin to digital pin 9
 * LCD D4 pin to digital pin 5
 * LCD D5 pin to digital pin 6
 * LCD D6 pin to digital pin 7
 * LCD D7 pin to digital pin 8
 * 10K resistor:
 * ends to +5V and ground
 * wiper to LCD VO pin (pin 3)
 */

#include <Wire.h>
#include <Rtc_Pcf8563.h>
#include <LiquidCrystal.h>

LiquidCrystal lcd(10, 9, 5, 6, 7, smiley-cool;
Rtc_Pcf8563 rtc;

void setup() {
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.clear();
  
/*  rtc.initClock();
  //day, weekday, month, century(1=1900, 0=2000), year(0-99)
  rtc.setDate(9, 6, 2, 0, 13);
  //hr, min, sec
  rtc.setTime(3, 31, 0);*/
}

void loop() {
  lcd.clear();
  lcd.setCursor(0, 0);
  //lcd.print(rtc.formatTime(RTCC_TIME_HM));
  lcd.print(rtc.formatTime());
  lcd.setCursor(0, 1);
  //lcd.print(rtc.formatDate(RTCC_DATE_ASIA));
  lcd.print(rtc.formatDate());
  delay(200);
}


provando con un cronometro e anche con altri riferimente mi risulta che guadagni un secondo ogni 3 ore circa, che secondo me è tantissimo...
siccome avevo un altro pcf8563 a casa l'ho cambiato e ho cambiato anche il quarzo, adesso devo aspettare qualche ora per vedere se il problema è risolto o meno, però vedo già che sta prendendo un vantaggio...
vi risulta che questo modello di RTC sia così impreciso? o ho sbagliato qualcosa?

ho anche un'altra domanda, nel caso ponessi l'RTC in abienti freddi, la frequenza di oscillazione del quarzo potrebbe subire qualche variazione preoccupante?
grazie in anticipo a tutti smiley-wink
Logged

Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 336
Posts: 23146
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Manca importantissimo un C da 12/22 pF fra OSCI e GND, che in quello schema non c'è. Sull'altro pin del quarzo (OSCO) non importa perché è integrato.
Le R di pull-up possono non  servire usando la Wire se la distanza tra il micro e l'RTC è breve.
Logged


Camisano Vicentino (VI), Italy
Offline Offline
God Member
*****
Karma: 5
Posts: 956
ƎR like no other.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Manca importantissimo un C da 12/22 pF fra OSCI e GND, che in quello schema non c'è. Sull'altro pin del quarzo (OSCO) non importa perché è integrato.
Le R di pull-up possono non  servire usando la Wire se la distanza tra il micro e l'RTC è breve.
mi chiedevo appunto di quel condensatore che avevo visto su alcuni schemi in rete, ma non in tutti, e per questo pensavo non fosse importante smiley-sweat
adesso provo e vediamo se si risolve il problema, grazie mille smiley-wink

per quanto riguarda la temperatura dell'ambiente in cui è c'è da preoccuparsi più di tanto o no?
Logged

Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 336
Posts: 23146
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Manca importantissimo un C da 12/22 pF fra OSCI e GND, che in quello schema non c'è. Sull'altro pin del quarzo (OSCO) non importa perché è integrato.
Le R di pull-up possono non  servire usando la Wire se la distanza tra il micro e l'RTC è breve.
mi chiedevo appunto di quel condensatore che avevo visto su alcuni schemi in rete, ma non in tutti, e per questo pensavo non fosse importante smiley-sweat
adesso provo e vediamo se si risolve il problema, grazie mille smiley-wink

per quanto riguarda la temperatura dell'ambiente in cui è c'è da preoccuparsi più di tanto o no?
Ho preso un quarzo da 32 kHz a caso su RS: dal
PDF a -50°C vedo una differenza di -25 ppm rispetto alla frequenza nominale. Penso che puoi stare tranquillo, non trovi?  smiley-wink
Logged


Camisano Vicentino (VI), Italy
Offline Offline
God Member
*****
Karma: 5
Posts: 956
ƎR like no other.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

ok grazie, molto bene smiley
tra qualche ora vedo se era proprio quel quarzo a dare problemi...

P.S.
non mi spiego ancora perchè non abbia studiato il funzionamento dei quarzi, pur avendo fatto un ITIS all'indirizzo di elettronica...
Logged

Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 336
Posts: 23146
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

non mi spiego ancora perchè non abbia studiato il funzionamento dei quarzi, pur avendo fatto un ITIS all'indirizzo di elettronica...
Io sono un programmatore (fallito)... e mi son dovuto studiare tutta 'sta roba partendo da ZERO e da totale autodidatta... pensa un pò.. mi sa che sto peggio io  smiley-wink
Logged


Camisano Vicentino (VI), Italy
Offline Offline
God Member
*****
Karma: 5
Posts: 956
ƎR like no other.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Io sono un programmatore (fallito)... e mi son dovuto studiare tutta 'sta roba partendo da ZERO e da totale autodidatta... pensa un pò.. mi sa che sto peggio io  smiley-wink
beh complimenti smiley
Logged

Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

Tuscany
Offline Offline
Edison Member
*
Karma: 80
Posts: 2176
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

comunque con PCF8563 due/tre secondi  al giorno di errore sono gia' una meraviglia ( con DS1307 e' pure peggio )

nel datasheet dicono che +/- 5 minuti l'anno sono "raggiungibili".......... ( si, a regolarseli uno ad uno )

Ho da poco montato dei DS3231, vediamo come vanno
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 336
Posts: 23146
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Sì, effettivamente 1 secondo ogni 3 ore come diceva lui non è un grossissimo scarto. Anzi.
Magari però col C guadagna qualcos'altro in precisione. Chissà.
Logged


Camisano Vicentino (VI), Italy
Offline Offline
God Member
*****
Karma: 5
Posts: 956
ƎR like no other.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

con un condensatore da 22pF se prima guadagnavo circa un secondo in in 3 ore adesso quel secondo lo perdo invece...  smiley-confuse
dite che mi devo accontentare?
in che modo incide quel condensatore sulla frequenza di oscillazione del quarzo?
Logged

Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

Torino
Offline Offline
God Member
*****
Karma: 3
Posts: 766
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Questi integrati non sballano di loro il tempo ma è una conseguenza delle tolleranze dei componenti esterni.
Per ridurre gli errori dovuti a queste tolleranze si usano dei compensatori che sono dei condensatori variabili (tipo trimmer)posti in parallelo al condensatore di eccitazione che permette di aumentare il valore del condensatore cercando di portare la frequenza del quarzo al valore desiderato.....
Quindi se non si vogliono avere ritardi o anticipi bisogna regolare il compensatore controllando la frequenza di uscita dal chip ed il gioco è fatto smiley-wink
Logged

Selvazzano Dentro - Padova
Online Online
Edison Member
*
Karma: 45
Posts: 1560
"Chi sa fa, chi non sa insegna"
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ho letto che il DS3234 è notevolmente più preciso rispetto al DS1307
Logged

Offline Offline
God Member
*****
Karma: 2
Posts: 556
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao..
Io utilizzo un chip DS3231 e avendo il quarzo internamente, non sbaglia un colpo.
Purtroppo con i quarzi esterni sei soggetto a disturbi esterni e anche alla temperatura ambientale. Infatti i quarzi cambiano, anche se di poco, a seconda della temperatura.
Questo chip si regola in automatico.
Purtroppo non è informato DIP, al massimo puoi usare questo https://www.adafruit.com/products/255

Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 336
Posts: 23146
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

La domanda è: vale la pena spendere 17$ per avere un chip con una buona precisione o ti puoi accontentare di 8 secondi al giorno di differenza (-1 secondo ogni 3 ore sono -8 secondi al giorno)?  smiley-money

Una possibile soluzione software è fare come ho fatto io con la swRTC, aggiungendo cioè una correzione al tempo in base ad un valore calcolato empiricamente. Osservi l'orologio per un certo lasso di tempo e calcoli il suo scostamento medio dall'orario reale, a quel punto ogni giorno (oppure ogni 12 ore) riregoli l'orologio aggiungendo togliendo quella differenza.
Nel tuo caso, ogni 12 ore dovresti sommare 4 secondi per recuperare i 4 secondi persi dal PCF
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 30
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Domanda da ignorante, ed utilizare un trimmer capacitivo non è possibile?

Barbezuan

PS: Il condensatore è consigliato anche sul DS1307?
« Last Edit: February 12, 2013, 04:03:23 am by barbezuan » Logged

Pages: [1] 2   Go Up
Jump to: