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][C] PCF8583 + 24C64 = będy podczas zapisu do EEPROM

wasyl32 05 Cze 2011 20:53 2327 10
REKLAMA
  • #1 9580123
    wasyl32
    Poziom 19  
    Posty: 559
    Pomógł: 30
    Ocena: 44
    Witam
    Na szynie I2C podłączoną mam kość PCF8583 oraz pamięć 24C64.
    Wykonuję zapis do pamięci a następnie odczyt. Jednak podczas zapisu następuje przekłamanie danych. Np zapisuję wartość 35 do pamięci a w rzeczywistości zapisana zostaje wartość 32 lub 33. Gdy odłączę od szyny I2C PCF8583 problem znika. W czym więc leży problem? Bardzo proszę o jakieś sugestie.
    P.S. Na szynach są oczywiście rezystory podciągające do + (4,7k).
  • REKLAMA
  • #2 9580163
    GSM
    Poziom 25  
    Posty: 543
    Pomógł: 72
    Ocena: 16
    Witam,

    a adresy ustawione odpowiednio? Jaka prędkość magistrali? Pokaż schemat! Zdjęcie płytki też jest mile widziane.
    W ogóle podajesz bardzo szczątkowe informacje...

    Pozdrawiam,
    GSM
  • #3 9581423
    wasyl32
    Poziom 19  
    Posty: 559
    Pomógł: 30
    Ocena: 44
    Witam
    GSM napisał:

    a adresy ustawione odpowiednio? Jaka prędkość magistrali? Pokaż schemat! Zdjęcie płytki też jest mile widziane.
    W ogóle podajesz bardzo szczątkowe informacje...
    GSM

    Fakt - informacje dość szczątkowe, ale w miarę pytań uzupełnię.
    Schematu i płytki brak - wszystko jest na płytce stykowej. Pod linie TWI podłączona jest kostka PCF i 24C. Na obu R 4,7k wpięte do +. W 24C64 A0..A2 + WP podpięte są do masy. Przy zasilaniu 100nF zarówno w 24C64 jak i w PCF.
    Prędkość magistrali - na każdej to samo (50, 100 i 200kHz).
    Kodu chwilowo nie pokażę bo jestem w pracy :)

    Po odpięciu PCF wszystko działa prawidłowo. Z podpiętym PCF niestety są problemy.
  • REKLAMA
  • #4 9581449
    GSM
    Poziom 25  
    Posty: 543
    Pomógł: 72
    Ocena: 16
    A A0 w PCF'ie podłączone do czegoś? Nie pamiętam, czy może ono "wisieć".

    Mówisz, że pamięć działa (gdy jest sama), a PCF? Czy on też działa gdy jest sam na magistrali?

    Pokaż program.

    Pozdrawiam,
    GSM

    P.S.
    wasyl32 napisał:
    Fakt - informacje dość szczątkowe, ale w miarę pytań uzupełnię.


    Powinieneś wszystkie istotne informacje udostępnić od razu, patrz regulamin pkt. 3.1.15 :wink:
    Ale to taka drobna dygresja.
  • REKLAMA
  • #5 9581558
    wasyl32
    Poziom 19  
    Posty: 559
    Pomógł: 30
    Ocena: 44
    Witam
    A0 w PCF także do masy.
    PCF działa poprawnie zarówno sam jak i z pamięcią.
    Nawet jak w programie zostawię tylko kod odpowiedzialny za obsługę pamięci, bez ani jednej linijki tyczącej się PCF, to i tak pamięć świruje :)
    Kod bez obsługi PCF wygląda mniej więcej tak:
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • #6 9581617
    GSM
    Poziom 25  
    Posty: 543
    Pomógł: 72
    Ocena: 16
    wasyl32 napisał:
    A0 w PCF także do masy.


    ... A pytałem czy adresy poprawnie ustawione :roll:
    Skoro oba układy mają ten sam adres to jak niby chcesz je adresować poprawnie?...

    Pozdrawiam,
    GSM
  • #7 9581685
    asembler
    Poziom 32  
    Posty: 2099
    Pomógł: 123
    Ocena: 11
    Trzeba koledze uswiadomić że przyjęto aby wszystkie pamieci na szynie I2C maiły adresy $Ax a ustawienia adresów wykonuje sie przez odpowiednie podłaczenie pinów adresowych. PCF8583 jest traktowana jako pamiec i może miec adres $A0 lu A2, natomiast 24c moze miec adresy $A0,$A2....$AE I tutj może byc źródło konfliktu.
  • Pomocny post
    #8 9581703
    GSM
    Poziom 25  
    Posty: 543
    Pomógł: 72
    Ocena: 16
    asembler napisał:
    Trzeba koledze uswiadomić (...)


    Nie jestem przekonany do takiego podejścia, rzeczowy kolega powinien to wiedzieć skoro używa I2C.
    Obsługa I2C jest bardzo dokładnie opisana w dokumentacji Philipsa.

    Pozdrawiam,
    GSM
  • REKLAMA
  • #9 9581708
    asembler
    Poziom 32  
    Posty: 2099
    Pomógł: 123
    Ocena: 11
    GSM napisał:
    asembler napisał:
    Trzeba koledze uswiadomić (...)


    Nie jestem przekonany do takiego podejścia, rzeczowy kolega powinien to wiedzieć skoro używa I2C.
    Obsługa I2C jest bardzo dokładnie opisana w dokumentacji Philipsa.

    Pozdrawiam,
    GSM

    Skoro założył ten temat znaczy nie kuma, a słowo "uświadomić " powinno zadziałać.
  • #10 9581717
    wasyl32
    Poziom 19  
    Posty: 559
    Pomógł: 30
    Ocena: 44
    GSM napisał:
    wasyl32 napisał:
    A0 w PCF także do masy.


    ... A pytałem czy adresy poprawnie ustawione :roll:
    Skoro oba układy mają ten sam adres to jak niby chcesz je adresować poprawnie?...

    Pozdrawiam,
    GSM

    O .... :) No raaacja :) Zmyliła mnie obsługa PCF - myślałem, że on ma hardwarowy inny adres bo w programie do obsługi PCF maiłem zapisany 0x50 (ale bez bitu zapisu!) co oczywiście po przesunięciu daje 0xA0 :)
    Thx za pomoc - najciemniej pod latarnią oczywiście ;)
  • #11 9581751
    asembler
    Poziom 32  
    Posty: 2099
    Pomógł: 123
    Ocena: 11
    Słyszałem że jakis facet siedział z liściem na głowie ale o latarni raczej nie. :-)

Podsumowanie tematu

LABEL_AI_GENERATED
Użytkownik zgłasza problem z zapisem danych do pamięci EEPROM 24C64, która jest podłączona do szyny I2C razem z układem PCF8583. Po zapisaniu wartości do pamięci, odczytywane są błędne dane. Problem znika po odłączeniu PCF8583. Użytkownik potwierdza, że oba układy mają odpowiednio podłączone rezystory podciągające (4,7k) oraz że prędkość magistrali I2C jest ustawiona na 50, 100 i 200 kHz. W odpowiedziach zasugerowano, że konflikt adresów może być przyczyną problemu, ponieważ oba układy mogą mieć ten sam adres I2C. Użytkownik odkrył, że adres PCF8583 powinien być ustawiony na 0xA0, co wyjaśniało wcześniejsze problemy.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA