Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

[Bascom] DS1307 - Po kilku miesiącach pracy przestał odpowiadać .

rabbit2 25 Jul 2012 12:00 1498 4
  • #1
    rabbit2
    Level 19  
    Witam . Pytanie mam takie: Czy RTC DS1307 ma jakiś limit jeśli chodzi o ilość odczytu , coś podobnego jak mają pamięci eeprom ? Pytam dlatego że po kilku miesiącach nieustannej pracy nagle przestał odpowiadać . Wymieniałem baterie , na słabszą , lub bardziej naładowaną , próbowałem bez baterii (vbat do GND zgodnie z pdefem) , wymieniałem kwarc i nic, czyżby padł ? Jeśli tak to z jakiego powodu mógł. Zastanawiam się właśnie czy nie ma jakiegoś limitu tak jak napisałem wyżej .Program w Bascomie robiłem , a uC to AVR mega32 ,
    U mnie wyglądało to mniej więcej tak :


    Odczyt z DS-a
    wyświetlanie na matrycy
    i od początku



    i tak w koło czyli jakieś 80 razy na sekundę odczytywałem ds-a , czyżby padł z wyczerpania :)

    Chyba sprawdziłem już wszystko. Oprogramowanie odpada , w końcu chodziło kilka miesięcy , mikrokontroler też , podłączałem DS-a pod inne mikrokontrolery i cisza . Dla pewności podłączałem też inne układy i2c (eeprom 24cxx i inny RTC pcf8563) tu nie ma problemów . Bateria wymieniana na trzy różne ( różne napięcia 2.8V do 3.3 ) . Wszystkie połączenia OK. Kondensator na zasilaniu był i jest obecny . Kwarc przy samych nogach wyginany już na wszystkie możliwe sposoby . Rezystory podciągające 4,7k , rezystor pomiędzy VCC a SQW/OUT 10K

    Czy jest jakiś sposób żeby w 100 % potwierdzić ze DS zakończył Żywot ?
    Czy mogłem go wykończyć tym ciągłym odczytywaniem ?
  • #2
    FastProject
    Level 28  
    Nie widzę, abyś wymienił kwarc...próbowałeś?

    Próbowałeś dać nowego DS1307?

    Może wyczerpała ci się bateria, a po jej wymianie nie masz zerowania bitu aktywującego pracę oscylatora?

    W zasadzie wykorzystywałem kilka rożnych RTC z Maxima i niektóre działają już po kilka lat i także w ciągu sekundy często je odpytuje, ale jeszcze żaden się nie uszkodził. Nie oznacza to jednak, że są nieśmiertelne...zawsze zdarzy się jakiś feler, jakiś wadliwy egzemplarz lub inny czynnik zewnętrzny w postaci np przepięcia.
  • #3
    rabbit2
    Level 19  
    Witam . Kwarce rzecz jasna też wymieniałem , Nowego ds-a nie mam ale za kilka dni będę miał bo tylko została mi podmiana no inny egzemplarz .

    Quote:
    Może wyczerpała ci się bateria, a po jej wymianie nie masz zerowania bitu aktywującego pracę oscylatora?


    .. podobno było tak że prze jakiś czas nie było u mnie prądu , a jak się już pojawił ,to zegar przestał gadać.

    zapisuje tak:

    Code: basic4gl
    Log in, to see the code



    ODCZYTUJE tak:

    Code: basic4gl
    Log in, to see the code


    Jak zrobic "zerowania bitu aktywującego pracę oscylatora" ? Od samego początku chodził w taki sposób jak napisałem wcześniej.

    Działam w bascomie.
  • #4
    Mundi1970
    Level 24  
    Quote:
    Jak zrobic "zerowania bitu aktywującego pracę oscylatora" ?


    Robisz to automatycznie zapisując sekundy w DS1307, 7 bit wyzerowany aktywuje prace oscylatora. Ustawienie 7 bitu w sekundach zatrzymuje oscylator.

    Co do obsługi zapisu i odczytu DS1307, twój przykład w ogóle nie jest odporny na błędy, zakładasz że każda instrukcja I2cwbyte i I2rwbyte wykona się poprawnie i jedziesz dalej. Po wykonaniu I2cwbyte i I2rwbyte pasowałoby sprawdzić zmienną globalną Err, jeżeli jest 0 to zapis/odczyt wykonano poprawnie jeżeli inny niż 0 to błąd.