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

[Mega8][C] TWI problem z DS1307

magnex 23 Lut 2010 19:51 1853 3
REKLAMA
  • #1 7740222
    magnex
    Poziom 12  
    Mam problem z obsługą zegara DS1307 po szynie TWI.
    Po pierwsze korzystam z płyty firmy Propox (EVBavr04).
    Zmieniłem baterię domyślnie zainstalowaną na płycie (3.6V) na inną 3V, ponieważ przeczytałem o problemach związanych ze zbyt dużym napięciem.
    Kwarc jest dobrze przylutowany.

    Mój problem polega na tym, że wysyłam sygnał STARTU na szynę, sprawdzam rejestr TWSR i jest ok, ma wartość 0x08. Następnie wysyłam adres 0xD0 i w TWSR pojawia mi sie odpowiedź 0x20, czyli MT_SLA_NACK, czyli urządzenie nie zgłasza gotowości.

    Próbowałem kilku bibliotek, ale zawsze nie przechodzi procedury wysłania adresu urządzenia.
  • REKLAMA
  • #2 7740686
    morson
    Poziom 14  
    A ustawiłeś dobrze bitrate ?
    
    TWBR = (F_CPU / 100000 - 16) / 2 + 1; // max 100kHz
    


    Sprawdź sobie czy podwieszenie linii działa poprawnie, może trafił im się jakiś zimny lut.
  • REKLAMA
  • #3 7740795
    janbernat
    Poziom 38  
    I zdjąłeś zworki load i backup?
    Płytka i zegar działa- chociaż ja korzystałem z gotowca z bascoma- a gotowców w sieci napisanych w C jest mnóstwo.
    Jakieś 10% jest dobrych- tylko nie wiadomo które.
    Zworki JSCA i JSCL mają być wetknięte!
    To te przy gniazdach 1-wire i I2C.
  • #4 7740940
    magnex
    Poziom 12  
    TWBR mam ustawione na 32(dec), przy F_CPU = 8 MHz, co powinno dać 100kHz
    Zworki load i backup mam zdjęte, a te przy gniazdach włożone.
    Wydaje mi się, że sam DS jest dobrze wlutowany.

    Sama płytka działa, bo inne programy działają dobrze.

    Co do gotowców, to po wielu próbach, chcę tylko odpowiednio zaincjować zegar, a tylko polecenie startu przechodzi poprawnie.
REKLAMA