logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

wpływ częstotliwości odczytu na opóźnienie RTC (PCF 8563)

pgp 09 Gru 2007 22:51 2564 6
REKLAMA
  • #1 4571272
    pgp
    Poziom 19  
    Posty: 412
    Pomógł: 6
    Ocena: 17
    Napotkałem na dziwny problem - podczas częstego odczytu czasu i daty z RTC philisa - układ się spóźnia. Mam uruchomione przerwania co 1 sek i po jego odbiorze odczytuje czas - żeby nie migać niepotrzebnie i nie obciazać głównego programu , który musi jeszcze róźne inne rzeczy robić. W takiej konfiguracji program potrafi przez 10 godz spóźnić się nawet o 2 godz. Jeżeli natomiast program zmodyfikuje tak że aktualizacja wyświetlacza następuje po naciśnięciu przycisku to wtedy jest ok. No chyba że zacznę klikać jak głupi to też pajawia sie opóźnienie..

    Na odczyt skłąda się oczyt godz, min, sek, roku . mies i dnia. Znalazłem taki zapis w dokumentacji :(PCF8563-04.pdf)

    When one of the RTC registers is read the contents of all counters are frozen.


    Czyżby to była odpowiedź na moje pytanie ? czyżby zanim odczytam minuty/dzien/ rok / mies to jedna sekunda co jakiś czas jest gubiona przez tą blokadę ?
  • REKLAMA
  • #2 4571442
    Dar.El
    Poziom 41  
    Posty: 5450
    Pomógł: 750
    Ocena: 888
    Witam
    Może trzeba to robić szybciej i co minutę w przerwaniu?. Robię zegarek i niedługo to sprawdzę ale na 8583.
  • REKLAMA
  • #3 4571723
    arturt134
    Poziom 27  
    Posty: 792
    Pomógł: 76
    Ocena: 24
    Ja czytam co sekundę, nie zauważyłem żeby występowały opóźnienia tego rzędu. Przyrząd z takim RTC, po kilku (kilkunastu?) dniach ma wskazanie różne o kilka minut, ale żeby 2 godziny na kilka godzin, to nie zdarzyło mi się.

    Dodano po 7 [minuty]:

    Przepraszam, dopiero teraz doczytałem, że chodzi o PCF8563. Ja używam PCF8583.
  • REKLAMA
  • #4 4571897
    Ch.M.
    Poziom 27  
    Posty: 1009
    Pomógł: 62
    Ocena: 15
    Myślę, że rodzaj użytego układu niewielkie ma znacznie. Problem jest prawdopodobnie z kodem... Nie wiem jak szybklo działa Ci i2cale może zbyt wolno? No i może nie zakańczasz prawidłowo transmisji po ostatnim odczytanym bajcie a układ czeka i czeka...
    Pozdrawiam
  • #5 7977669
    furch
    Poziom 10  
    Posty: 16
    Pomógł: 1
    Ocena: 1
    Miałem taki sam problem, podczas odczytywania wprowadzane było opóźnienie dla zegara. W moim przypadku rozwiązanie to : dodanie sekwencji stop i start do odczytu.

    code

    i2cstart();
    i2cwrite(162);
    i2cwrite(0);
    i2cwrite(64); // STOP
    i2cstop();


    odczyt danych / zapis danych


    i2cstart();
    i2cwrite(162);
    i2cwrite(0);
    i2cwrite(0); // START
    i2cstop();

    code
  • REKLAMA
  • #6 7979655
    Konto nie istnieje
    Poziom 1  
  • #7 7980135
    gothye
    Poziom 33  
    Posty: 2421
    Pomógł: 183
    Ocena: 60
    osobiście wolę układy dallasa i wykorzystanie INT z układu DS podłączając pod przerwania zewnętrzne uC , upraszcza to program ;)

Podsumowanie tematu

✨ Problem opóźnienia zegara RTC PCF8563 podczas częstego odczytu czasu i daty wynika prawdopodobnie z mechanizmu blokowania rejestrów RTC podczas odczytu, co jest opisane w dokumentacji układu. Odczyt kolejnych bajtów (godzina, minuta, sekunda, rok, miesiąc, dzień) powoduje zamrożenie liczników, co może skutkować utratą sekund w trakcie długotrwałego, intensywnego odczytu. Rozwiązaniem może być optymalizacja kodu komunikacji I2C, w tym prawidłowe zakończenie transmisji oraz stosowanie sekwencji stop i start między odczytami, co zapobiega opóźnieniom. Inni użytkownicy nie zauważyli znaczących opóźnień przy odczytach co sekundę lub nawet 10 razy na sekundę, co sugeruje, że problem może leżeć w implementacji oprogramowania lub szybkości magistrali I2C. Alternatywnie, stosowanie układów Dallas (np. DS) z przerwaniami zewnętrznymi może uprościć obsługę i zmniejszyć obciążenie procesora. Dodatkowo, dobór kondensatora rezonatora kwarcowego wpływa na dokładność RTC.
Wygenerowane przez model językowy.
REKLAMA