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 odwołać się do dwóch pamięci EEPROM 24C16 w Bascomie?

iNTELL 15 Sty 2004 12:26 2797 6
REKLAMA
  • #1 476270
    iNTELL
    Poziom 30  
    Posty: 1876
    Pomógł: 69
    Ocena: 45
    Witam, chce sobie zrobić układzik który jednocześnie korzysta z dwóch pamięci eeprom i2c i zaadresowałem je sobie ładnie, tylko teraz pytanie, jak się odwołaś do poszczególnej pamięci w bascomie, bo do jednej to problemu nie było, a przy dwóch to nie wiem jak to zrobić :)
  • REKLAMA
  • #2 476287
    arkadius
    Poziom 12  
    Posty: 66
    Ocena: 2
    O ile sie nie myle....
    Kazdy element wpiety w szyne i2c ma swoj adres, wiec trzeba dla kazdej kosci ustawic inny a w programie dopisac kod wybierajacy ktora z kosci ma byc w danej chwili "aktywna".
  • REKLAMA
  • #3 476317
    olekewaagata
    Poziom 25  
    Posty: 638
    Pomógł: 64
    Ocena: 28
    Akurat wybrałeś bardzo niefortunnie eeprom 24c16.
    Ten akurat bity adresujące więcej niż jeden układ ma przeznaczone
    na adresowanie strony. Czyli linie A0,A1,A2 są przeznaczone na
    P0,P1,P2. 24c16 może być tylko jeden.
    Sugeruję jeśli Ci wystarczy 24c8 lub 24c32 (32k).
  • REKLAMA
  • #4 476320
    iNTELL
    Poziom 30  
    Posty: 1876
    Pomógł: 69
    Ocena: 45
    24C16 to tak tylko napisałem ot tak, bo myslałem że to nie będzie miało różnicy, ale w rzeczywistości to będę musiał mieć aż 3 eepromy:
    Dwie sztuki 24C512
    i jedną sztukę 24C64 lub 32 (ten będzie się zmieniał)
  • REKLAMA
  • #5 476499
    szymtro
    Poziom 30  
    Posty: 1421
    Pomógł: 101
    Ocena: 59
    Pewnie chcesz zrobic inteligentna kopiowarke do pamieci eeprom. Przedewszystkim musisz sobie odpowiedziec dokladnie jakie pamieci beda stale a jakie wymienne. Oczywiscie mozna zrobic dwie magistrale - jedna do pamieci wewnetrznej i druga do wymiennych(i za takim rozwiazaniem ja bym byl bo jest troche bezpieczniejsze). Rozne pamieci maja rozne adresy bazowe i tak:

    24c02/04 - 160/161(162/163, 164/165, .., 174/175) 1 bajt adresu
    24c32/64 - 160/161, ..., 174/175) 2 bajty adresu
    24c128 - 160/161, ..., 166/167 2 bajty adresu
    24c256 - 160/161, ..., 174/175) 2 bajty adresu
    24c512 - 160/161, ..., 166/167) 2 bajty adresu
  • #6 476702
    iNTELL
    Poziom 30  
    Posty: 1876
    Pomógł: 69
    Ocena: 45
    Heh, to nie będzie kopiarka do pamięci, to będzie coś w rodzaju programatorka, ale chodzi mi o to że jak pisze do pamieci:
    i2cwbyte 174 to jest wtedy gdy wszystkie nogi z jednej strony są zwarte do masy, a jeśli inaczej zaadresuje te 24c512 to co będę musiał wpisać zamiast 174, jeśli możecie to napiszcie mi te kombinacje bo nie wiem co do czego :)
  • #7 477823
    W.K
    Poziom 15  
    Posty: 139
    Pomógł: 1
    W nocie katalogowej np.24C512 na str.10 jest pokazany bajt adresowy.
    Bardziej znaczące 4 bity (MSB) +1 są
    stałe dla danego typu układu,pozostałe bity to dwa bity adresu i jeden
    bit zapisu/odczytu-"0"zapis "1"odczyt.
    Przykład:
    Mamy dwie kostki pamięci
    jedna kostka ma A0,A1 połaczone z GND to adres dla zapisu jest:
    10100000 czyli 160
    dla odczytu:
    10100001 czyli 161
    druga kostka ma A0 połączone z GND A1 z VCC to adres dla zapisu:
    10100100 czyli 164
    dla odczytu:
    10100101 czyli 165
    Myślę że to jasne
    Cześć

Podsumowanie tematu

✨ Dyskusja dotyczy wykorzystania dwóch pamięci EEPROM 24C16 w Bascomie i sposobu adresowania ich na magistrali I2C. Każde urządzenie I2C musi mieć unikalny adres, jednak 24C16 ma ograniczenia, ponieważ bity adresujące służą do wyboru strony pamięci, co uniemożliwia podłączenie więcej niż jednej kości tego typu na jednej magistrali. Zaleca się użycie innych modeli EEPROM, np. 24C8, 24C32, 24C64 lub 24C512, które pozwalają na adresowanie wielu układów. W przypadku 24C512 adres I2C składa się z 4 stałych bitów, 2 bitów adresowych (A0, A1) oraz bitu R/W. Przykładowo, dla kości z A0 i A1 podłączonymi do masy adres zapisu to 160 (0xA0), a odczytu 161 (0xA1). Zmieniając połączenia pinów A0, A1, A2 można uzyskać różne adresy, np. 164 (0xA4) dla zapisu i 165 (0xA5) dla odczytu. W programie Bascom należy użyć odpowiednich adresów, aby wybrać właściwą pamięć EEPROM. Alternatywnie można rozważyć zastosowanie dwóch oddzielnych magistrali I2C dla różnych typów pamięci, co zwiększa bezpieczeństwo i ułatwia zarządzanie adresacją.
Wygenerowane przez model językowy.
REKLAMA