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

Jak uzyskać dostęp do pełnej pamięci EEPROM 24C08 w Bascom?

bolek 04 Cze 2002 23:26 3505 6
REKLAMA
  • #1 18279
    bolek
    Poziom 35  
    Posty: 4099
    Pomógł: 86
    Ocena: 299
    Witam!

    Panowie mam problemik!
    No cóż umiem z korzystać z 24C02 ale Jak dobrać się do pozostałych adresów w eepromie oprócz pierwszych 256 miejsc???. Z not katalogowych atmela nie wyczytałem za wiele (głównie z powodu kiepskiego angielskiego). Chciał bym z korzystać np. z 8kilowej pamięci 24C08, która (jak wyczytałem) jest zorganizowana w cztery bloki po 256 „warstw” każdy, dodatkowo w każdą z tych warstw można wpisać 4 bajty- no i bądź tu mądrym... :P)
    Jak sprawa wygląda z C04. Pracuję w Bascom’ie, więc jeśli , można to także prosił bym o porady pod tym kątem
    Ktoś kiedyś mówił mi o tym ze należy wtedy bawić się wejściami adresowymi A0, A1, A2- ja osobiście uważam że to bzdura na kółkach...

    Pozdrawiam!

    Bolek
    :x
  • REKLAMA
  • #2 19324
    SlaweK
    Poziom 43  
    Posty: 11964
    Pomógł: 917
    Ocena: 913
    Oj, pokopałeś temat. 24C02 to 256 bajtów czyli 1 kilobit Jedna strona.
    24C01 to pół strony, 128 bajtów. 24C04 to 512 bajtów i można to zastąpić
    2x24C02 ustawiając adresy odpowiednio A0,A1,A2 i mostkując I2C, zasianie i masę. Zdarzało mi się lutować taką kanapkę, jedna na drugiej
    podwijając tylko jedną nogę adresową i z dwóch 24C02 miałem jako jedną 24C04. Można też więcej tak zlutować ale to 24C16 bo 24C32 ma jeden bajt w transmisji więcej i dwoma C16 nie zastąpisz C32. I jeszcze jedno, dwoma 24C01 nie zastąpisz 24C02. I jeszcze raz, zmieniając adres w drugiej nalutowanej pamięci będziesz ją widział o 256 bajtów wyżej w przestrzeni adresowej. Czyli dla procesora będzie to jak jedna pamięć.
    Tyle.

    SławeK
  • REKLAMA
  • #3 19448
    bolek
    Poziom 35  
    Posty: 4099
    Pomógł: 86
    Ocena: 299
    A właśnie! ja nie chcę skąłdać takich kanapek, tylko wykorzystać jedna dużą pamięć! i tu jest problem, bo nie wiem jak dobierać sie do poszczegilnych bajtów

    pozdrawaim !

    Bolek
  • REKLAMA
  • #4 19490
    SlaweK
    Poziom 43  
    Posty: 11964
    Pomógł: 917
    Ocena: 913
    Popatrz na to od tyłu. Adres układu ustalasz nogami adresowymi
    a pamięć widzisz od tego adresu jako przestrzeń np. 256 bajtową, po kolei. Jeśli ustawisz nogi wszystkie do masy to masz od 00-FF jeśli pierwszą
    podwiesisz to masz od #100 do 1FF, jeśli drugą i następnymi to możesz ustawić np.od #200-2FF.
    I te 256 bajtów to właśnie ta strona którą możesz ustawić połączyć z inną pamięcią w jedną przestrzeń adresową i żadne inne po 4 bajty co pisałeś na początku.
    Była taka książka-zeszyt , wydana przez Serwis Elektroniki i były tam opisane prawie wszystkie typowe pamięci I2C ale nie pamiętam tytułu.

    SławeK
    PS. Najlepiej jest uczyć innych tego na czym się samemu nie zna ;-) Sam nie piszę aktualnie ale bawiłem sie tym wiele lat temu.
  • REKLAMA
  • #5 196640
    robt
    Poziom 13  
    Posty: 107
    Pomógł: 1
    Ocena: 14
    Jeżeli chcesz użyć 24c04 to tylko dwie nóżki możesz użyć do zmiany adresu kości na I2C, z tego wynika że do adresowania pamięci używa się 6 bitów a bit 7 w połączeniu z osmioma bitami adresu komórki służą do adresowania 4k pamięci.
  • #6 197351
    Eagle
    Poziom 24  
    Posty: 536
    Pomógł: 57
    Ocena: 31
    Ludzie jak wy kompliujecie sprawe, o jakiś kanapkach ( aż się głodny zrobiłem )
    Układy o większej pojemności to poprostu dwa lub więcej ( w zależności od typu) EEPROMY połączine rónolegle do IIC z tym że każdy układ ma przypisany inny adres.

    i tak np: 24c16 pomimo że ma nogi adresowe wyprowadzone na obudowie, to podłączenie ich nic nie zmienia
    i tak jeden układ 24c16 zgłosi się na magistrali pod adresami :

    A0/A1 (STRONA 1 (256 BAYTÓW)

    A2/A3 STRONA 2 (256 BAYTÓW)

    A4/A5 STRONA 3 (256 BAYTÓW)

    A6/A7 STRONA 4 (256 BAYTÓW)

    razem 2048 czyli 2K baytów = 16 K bitów



    w 24c08 do wyboru jest tylko jedna noga A2

    jesli noga A2 = L

    to ukłąd zgłosi się pod

    A0/A1 (STRONA 1 (256 BAYTÓW)

    A2/A3 STRONA 2 (256 BAYTÓW)

    jeśli naga A2= H

    to ukłąd zgłosi się pod


    A4/A5 STRONA 3 (256 BAYTÓW)

    A6/A7 STRONA 4 (256 BAYTÓW)

    podłączając dwa równolegle ukałdy 24c08 przy czym jeden z nich A2=L a drugi A2= H otrzymamy dokładnie układ 24c16
  • #7 197373
    robt
    Poziom 13  
    Posty: 107
    Pomógł: 1
    Ocena: 14
    Podłączając dwa układy 24c08 otrzymammy nie 24c16 ale tyle samo pamięci co 24c16 a gościowi właśnie o to nie chodziło. W nocie katalogowej 24Cxx jest dość dobrze opisany sposób adresowania pamięci.

Podsumowanie tematu

✨ Dyskusja dotyczy sposobu adresowania i dostępu do pełnej pamięci EEPROM 24C08 w środowisku Bascom. Pamięć 24C02 ma 256 bajtów (1 kilobit), natomiast 24C08 jest zorganizowana w cztery bloki po 256 bajtów każdy, co daje łącznie 8 kilobajtów. Adresowanie w układach 24Cxx odbywa się poprzez kombinację bitów adresowych A0, A1, A2 oraz bitów adresu komórki pamięci. W przypadku 24C04 i 24C08 adresowanie wykorzystuje dodatkowe bity adresowe, co pozwala na dostęp do kolejnych stron pamięci po 256 bajtów. W praktyce, zmieniając stan wejść adresowych A0, A1, A2, można uzyskać dostęp do różnych bloków pamięci w jednym układzie. Alternatywnie, większą pojemność można uzyskać łącząc równolegle kilka układów o mniejszej pojemności, przy czym każdy ma inny adres I2C. W 24C08 dostępna jest jedna nóżka adresowa A2, która pozwala na podział pamięci na dwie grupy po 512 bajtów. W Bascomie adresowanie odbywa się poprzez odpowiednie ustawienie adresu I2C i przesunięcie adresu bajtu w pamięci. Noty katalogowe Atmela zawierają opis sposobu adresowania, jednak ich zrozumienie wymaga uwzględnienia specyfiki bitów adresowych i organizacji pamięci w blokach po 256 bajtów.
Podsumowanie wygenerowane przez AI na podstawie treści dyskusji.
REKLAMA