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 dostać się do całego obszaru pamięci AT24C64?

KJ 09 Sie 2002 00:22 4145 8
REKLAMA
  • #1 31746
    KJ
    Poziom 31  
    Posty: 2370
    Pomógł: 68
    Ocena: 945
    Mam problem: jak się dostać do całego obszaru tej pamięci i czy ktoś może ma tabelę z możliwymi adresami tej pamięci po podłączeniu wyświetlacza graficznego zostały mi w procku 2 wolne piny idzie go tak podpiąć że będą 4 ale to itak nie zmienia faktu że trzeba gdzieś umieścić obrazki jeden na cały ekran zajmuje 1kB a więc do 24C64 powinno wejść 8 tylko jak się do całych 8 kilo dostać puki co nie umiem się dobrać nawet do pierwszych 256 bo nie znam adresów :(
  • REKLAMA
  • #2 32102
    Jaca
    Poziom 32  
    Posty: 1332
    Pomógł: 239
    Ocena: 217
    Hi !
    To typowa pamięć EEPROM z komunikacją po szynie I2C z tym, że adres w tej kostce jest 2 bajtowy. Jeśli chcesz podłączyć ją do procka użyj tylko linii SDA (dane) i SCL (zegar) a resztę pinów (A0 A1 A2 i WP) podłącz do masy. Jeśli chcesz stosować kilka kości AT24C64 na wspólnej szynie I2C to wykorzystaj wyjścia adresowe A0 A1 A2 do ustawienia adresu kości w szynie. Np pierwsza kość 000, druga 100, trzecia 010 itd (0-masa, 1-VCC). Podczas transmisji pamiętaj o adresie kości (A0 A1 A2) i nie myl go z adresem komórki w pamięci !
  • REKLAMA
  • #3 32155
    KJ
    Poziom 31  
    Posty: 2370
    Pomógł: 68
    Ocena: 945
    To joz wiem ale nie wiem jak się do niej dostać od strony programowej a scalaków bedzie 8 na jednej szynie oprucz tego jeszcze "zegarek" i transponder i2c na 8 bit
  • REKLAMA
  • #4 32169
    KJ
    Poziom 31  
    Posty: 2370
    Pomógł: 68
    Ocena: 945
    Chwila... jeśli adres jest dwu bajtowy to znaczy że pierwszy wysłany bajt musi być zgodny z pierwszą połową adresu układu zależną od ustawienia A0,A1,A2 drugi to druga połowa adresu trzeci to adres komórki do zapisu i dopiero czwarty jest zapisywany w pamięci? Miałem już wcześniej do czynienia z pamięciami 24C02 i 04 i te zapisuję i odczytuję bez problemu a tą przyniosłem z elektronika wsadziłem w płytkę testową w miejsce 24C04 i potraktowałem tym samym programem co wszystkie inne pamięci i nic się nie zapisało. Nasunęła mi się myśl że pamięć może być uszkodzona. Ale nowy scalak? O co chodzi właściwie z tym dwubajtowym adresem?
  • REKLAMA
  • #5 32181
    Jaca
    Poziom 32  
    Posty: 1332
    Pomógł: 239
    Ocena: 217
    24C64 ma 64 kb (kilobity) pamięci o organizacji 8 bitowej czyli 64 kb/8=8kB (kilobajty). Jeśli pamięć ma 8kB to jak zaadresować ją za pomocą jednego bajtu, który może przyjmować wartości od 0 do 255. Dlatego potrzebne są dwa bajty dzięki którym możemy zapisać wartości od 0 do 65535. I nie myl adresu kości z adresem komórki pamięci. Adres kości (A0 A1 A2) jest po to by szyna wiedziała której kości tyczy się rozkaz (zapis/odczyt) i parametry a adres komórki (2 bajty) informuje która komórka tej kości będzie zapisana/odczytana. Podaj maila to wyślę Ci protokół transmisji I2C i przykładowe procedury.
  • #6 32202
    KJ
    Poziom 31  
    Posty: 2370
    Pomógł: 68
    Ocena: 945
    My email: Technics(_at_)inetia.pl Masz to w bascomie czy asm?
  • #7 32281
    Jaca
    Poziom 32  
    Posty: 1332
    Pomógł: 239
    Ocena: 217
    I w Bascomie i w Asm !
  • #8 32401
    KJ
    Poziom 31  
    Posty: 2370
    Pomógł: 68
    Ocena: 945
    Jesli mozna prosic o przesłanie na email to wersię w Bascomie.
  • #9 32652
    Jaca
    Poziom 32  
    Posty: 1332
    Pomógł: 239
    Ocena: 217
    Hi !
    Właśnie poszło na maila !

Podsumowanie tematu

✨ Dyskusja dotyczy dostępu do całego obszaru pamięci EEPROM AT24C64 o pojemności 8 kB, komunikującej się przez interfejs I2C. Pamięć ta wymaga dwubajtowego adresowania komórek, ponieważ pojedynczy bajt (0-255) nie wystarcza do zaadresowania 8 kB. Adres kości ustawia się za pomocą pinów A0, A1, A2, które pozwalają na podłączenie do jednej magistrali I2C nawet 8 układów, każdy z unikalnym adresem. Do komunikacji używa się linii SDA (dane) i SCL (zegar), a pozostałe piny (A0, A1, A2, WP) należy podłączyć do masy lub VCC w celu ustawienia adresu i zabezpieczenia zapisu. W protokole transmisji I2C najpierw wysyła się adres kości (z uwzględnieniem A0-A2), następnie dwubajtowy adres komórki pamięci, a dopiero potem dane do zapisu lub odczytu. Problemem było nieumiejętne adresowanie pamięci, co skutkowało brakiem dostępu nawet do pierwszych 256 bajtów. W odpowiedzi udostępniono przykładowe procedury i protokół transmisji w językach Bascom i Assembler, co umożliwia prawidłową obsługę całej pamięci AT24C64 oraz podłączenie wielu układów na jednej magistrali I2C wraz z innymi urządzeniami, takimi jak zegarek czy transponder.
Podsumowanie wygenerowane przez AI na podstawie treści dyskusji.
REKLAMA