Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

AVR,Atmega16 - PCF8582C-2 Brak komunikacji z mikrokontrolerem

kulamario 06 Mar 2014 14:54 1260 8
  • #1 06 Mar 2014 14:54
    kulamario
    Poziom 22  

    Witam
    Próbuje uruchomić pamięć EEprom PCF8582C-2 w Bascom ale bez skutku nie mam w ogóle komunikacji z atmega.PCF8582 mam podłączony do płytki testowej.
    Piny A0,A1,A2 i PTC dałem do masy
    SDA i SCL z rezystorami podciągającymi do +5V (próbowałem 1K i 10K bez skutku)
    Zasilanie 5V
    Mam taki skaner I2c ale nie chce mi znaleźć adresu tego PCF-a gdzie np PCF8583 znajduje bez problemu
    Prosił bym o pomoc w uruchomieniu tej pamięci bardziej doświadczonych. forumowiczów
    Skaner I2C

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod

    0 8
  • #2 06 Mar 2014 15:04
    mickpr
    Poziom 39  

    kulamario napisał:
    ale nie chce mi znaleźć adresu tego PCF-a gdzie np PCF8583 znajduje bez problemu
    Adres PCF-a znajdziesz najprędzej w Datasheet: http://www.nxp.com/documents/data_sheet/PCF8582C_2.pdf -> strona: 7 pkt 8.1.3 Device Adressing

    Sprawdź (najlepiej oscyloskopem, ewentualnie próbnikiem stanów logicznych "dioda+rezystor") jak zmienia się stan ( i czy w ogóle się zmienia) na liniach SCL i SDA podczas próby transmisji.

    Poza tym w datasheet jest napisane:
    Cytat:
    Programming Time Control (PTC), Pin 7, must be connected to either VDD or left open-circuit.

    Natomiast ty napisałeś:
    kulamario napisał:
    PTC dałem do masy

    0
  • #3 06 Mar 2014 15:36
    kulamario
    Poziom 22  

    Witam
    Dziękuje za zainteresowanie się tematem
    A jak mam sobie adres odczytać z tabelki z datasheed?
    Oscyloskopu nie mam ale diodę z rezystorem znajdę
    PTC dałem do +5V i nadal jest bez zmian na odłączonym tez nic się nie zmienia
    Dioda z rezystorem świeci cały czas na SDA i SCL plus diody dałem na plus zasilania a masę diody kolejno na SDA i SCL

    0
  • Pomocny post
    #4 06 Mar 2014 16:23
    mickpr
    Poziom 39  

    kulamario napisał:
    A jak mam sobie adres odczytać z tabelki z datasheed?
    Adres z tabelki binarnie = 1 0 1 0 A2 A1 A0 R/W# -> czyli adres hexadecymalnie (przy zwartych A2, A1, A0 do masy) = A0 - do zapisu, A1 do odczytu. Dziesiętnie jest odpowiednio 160 i 161.
    kulamario napisał:
    PTC dałem do +5V i nadal jest bez zmian
    kulamario napisał:
    Dioda z rezystorem świeci cały czas na SDA i SCL
    Skoro na SDA/SCL nie ma żadnych oznak transmisji (ściągania pinów SDA i SCL do masy) więc nie będzie działać. Chyba, że nie jesteś w stanie tego zauważyć.
    Rozumiem, że tak jak napisałeś na tych pinach I2C inny PCF działa bez problemu?
    Być może po prostu uszkodziłeś PCF-a.

    0
  • #5 06 Mar 2014 19:28
    kulamario
    Poziom 22  

    A jak to obliczyłeś?chodzi mi o adres ze bedzie 160 i 161
    Tak inny PCF znajduje ale to nie jest ten sam model PCF-a
    PCF8583 zegar RTC ten znajduje bez problemu
    Mam jeszcze jeden albo dwa te epromy to sprawdze zaraz

    Dodano po 2 [godziny] 41 [minuty]:

    Dziękuje bardzo za pomoc okazało się ze PCF8582 był walnięty
    Wsadziłem nowego PCF i adresy odczytuje bez problemu

    Prosił bym kolegów z forum o jakies przykłady obsługi tego PCF8582 w bascom

    0
  • #6 07 Mar 2014 08:35
    mickpr
    Poziom 39  

    kulamario napisał:
    A jak to obliczyłeś?chodzi mi o adres ze bedzie 160 i 161
    Adres który podałem (z tabelki) zapisany jest bitowo. Wystarczy zmienić go na system dziesiętny. Zobacz tez w podanym datasheet strona 4 - sekcja 7 Device adressing.

    Co ciekawe - mówi się, że adres jest 7-bitowy (pod uwagę brane jest 7 najstarszych bitów(7..1), bo de facto one stanowią informację o adresie). Najmłodszy bit (0) niesie informację o tym czy operacja dotyczy zapisu, czy odczytu. Jednak przesyłać należy całe 8 bitów - stąd napisałem, że adres jest 160/161. Tymczasem często w datasheet spotyka się adres podany jako liczba 7 bitowa - i w tym przypadku taki adres byłby podany jako 80 (heksadecymalnie $50).

    0
  • #7 07 Mar 2014 12:29
    kulamario
    Poziom 22  

    Napisałem coś takiego

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod


    Dodam ze A0,A1,A2 dałem do +5V i mam adresy 172 i 173 bo w przyszłości chce ze by układ współpracował z PCF8583 RTC a ten ma właśnie adresy 160 i 161
    jakaś transmisja danych jest bo mam podłączoną diodę LED do SDA no i mruga czyli coś się dzieje
    Ale jak zapisać dane i odczytać?

    0
  • #8 07 Mar 2014 14:42
    mickpr
    Poziom 39  

    kulamario napisał:
    Ale jak zapisać dane i odczytać?
    Wszystko masz opisane w datasheet - rozdział 8.
    kulamario napisał:
    172 i 173
    Czy adres nie powinien być czasem 174, 175? Czy A0 nie jest przypadkiem połączona z masą?

    0
  • #9 07 Mar 2014 17:25
    kulamario
    Poziom 22  

    Adres na skanerze wychodzi 172 i 173
    Nie wiem jak mam zapisać i odczytać wartość do i z epromu.
    Napisałem coś takiego ale nie wiem czy to ma prawo działać.

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod

    0