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

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

baser 09 Maj 2013 11:17 1809 3
REKLAMA
  • #1 12287631
    baser
    Poziom 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

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


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

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • Pomocny post
    #2 12287759
    excray
    Poziom 41  
    W rejestrze 0x00 jest bit CH - Clock Halt który trzeba wyzerować aby uruchomić zegar.
  • REKLAMA
  • #3 12289814
    zbv
    Poziom 20  
    Może kwarc przy ds Ci nie pracuje?
  • #4 12290105
    baser
    Poziom 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
REKLAMA