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.

Atmega 32 DS1307 - Nagły brak odczytu godziny, jest dostęp do EEPROM

baser 09 May 2013 11:17 1710 3
IGE-XAO
  • #1
    baser
    Level 13  
    Witam, złożyłem sterownik oparty o Atmege32 oraz ds1307, program został napisany, całość złożona na płytce testowej i działało. Zaprojektowałem płytkę i ją złożyłem, po czym pojawił się problem. DS1307 nie odlicza czasu, zawsze na wyświetlaczu mam godzinę 0:0:0, lecz dziwne jest to że mam dostęp do pamięci EEPROM, tj mogę ją odczytywać i zapisywać. Program po tym jak działał na płytce testowej nie został zmieniony, jest ciągle ten sam. Doszukuje się problemu z połączeniem DS1307 i Atmegi32, lecz nie ma zimnych łutów, a połączenia są dobre. Sprawdzałem już 2 różne kwarce oraz różne rezystory podciągające SDA i SCL do +5V, ale nie widać efektów. DS1307 nie był lutowany, umieszczony jest w podstawce precyzyjnej.

    Proszę o sugestię, rady, ponieważ nie mogę sobie z tym poradzić.

    Poniżej fragmenty schematu oraz płytki:
    Atmega 32 DS1307 - Nagły brak odczytu godziny, jest dostęp do EEPROM Atmega 32 DS1307 - Nagły brak odczytu godziny, jest dostęp do EEPROM

    Code: c
    Log in, to see the code

    Code: c
    Log in, to see the code

    Code: c
    Log in, to see the code


    Przykładowy odczyt i zapis do EEPROM który działa:

    Code: c
    Log in, to see the code

    Code: c
    Log in, to see the code
  • IGE-XAO
  • Helpful post
    #2
    excray
    Level 40  
    W rejestrze 0x00 jest bit CH - Clock Halt który trzeba wyzerować aby uruchomić zegar.
  • IGE-XAO
  • #3
    zbv
    Level 20  
    Może kwarc przy ds Ci nie pracuje?
  • #4
    baser
    Level 13  
    Problem rozwiązany. Błędy były dwa:
    1) podczas rysowania schematu odwrotnie oznaczyłem wyjścia z ATmegi32: SDA i SCL. Wystarczy spojrzeć na schemat, w ATmedze nogi poprawnie oznaczone, lecz dalej połączenie z tych nóg oznaczone odwrotnie.

    2) Tutaj dziękuje excray. Nie ustawiłem Bitu CH na 0, zrobiłem to kiedyś podczas oprogramowywania układu DS1307, lecz po wyjęciu baterii zegar został wstrzymany.

    Układ w pełni sprawny :) Dziękuje, temat zamykam