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 zamienić EEPROM 28C64 na 28C512 i czy wymaga to zmiany oprogramowania?

dnatime 07 Sie 2005 01:53 1653 3
REKLAMA
  • #1 1712932
    dnatime
    Poziom 10  
    Posty: 71
    Ocena: 6
    Witam

    -pewne urządzonko ma za małą pamięć eeprom 28C64(8k*8), chcę zastąpić pamięcią 28c512(64k*8) ewentualnie 2* 28c256(32k*8).

    -czy po zmianie nowa pamięć będzie w pełni zapisywana, czy tez potrzebna będzie ingerencja w program zapisujący dane?

    kiedyś musiałem zaprogramować szeregowe 24c256 w bascomie i potrzebowałem do tego 2 BAJTÓW, 28c512 jest większa.

    Proszę o wyjaśnienie jak to wszystko się je, np: dlaczego 24c256 to(32k*8) i wystarczy 2BAJTY, czyli 65535, przecież jest to 256k (ok256000).

    pogubiłem się w tym
    Pozdrawiam
  • REKLAMA
  • #2 1727861
    marek_Łódź
    Poziom 36  
    Posty: 3103
    Pomógł: 208
    Ocena: 66
    dnatime napisał:

    -pewne urządzonko ma za małą pamięć eeprom 28C64(8k*8), chcę zastąpić pamięcią 28c512(64k*8) ewentualnie 2* 28c256(32k*8).

    -czy po zmianie nowa pamięć będzie w pełni zapisywana, czy tez potrzebna będzie ingerencja w program zapisujący dane?


    Większe kości mają dodatkowe linie adresowe. Jeśli program nie obsługuje tych linii (wyższych adresów) trzeba go zmodyfikować. Odrębny problem to sprzętowe doprowadzenie tych linii. Jeśli nie ma tego połączenia trzeba je dorobić (jeśli urzadzenie daje taką możliwość).

    Oznaczenie liczbowe 28Cxxx określa wielkość tej pamięci w kilobitach (po 1024 bity), więc dla otrzymania pojemności w kilobajtach trzeba tę liczbę podzielić przez 8. (np. 256 kilobajtów = 256/8=32 kilobajty).

    dnatime napisał:
    pogubiłem się w tym


    Sorry, ale w drugiej części Twojego postu też się pogubiłem.

    Nie bardzo zrozumiałem problem DWÓCH BAJTÓW Czy piszesz tu może o dwubajtowych słowach? Wielkość pamięci w 16-bitowych słowach jest połową wielkości w bajtach.
  • REKLAMA
  • #3 1728906
    dnatime
    Poziom 10  
    Posty: 71
    Ocena: 6
    Sądzę, że teraz jestem bardziej oświecony.

    16 bitami mogę zaadresować 65535 więc granicą jest pamięć 28C512(wykorzystuję wtedy wszystkie wej adresowe tej pamięci A0-A15)

    Do pamięci którą chcę zmienić dochodzi odpowiednia liczba linii adresowych (16 linii).
    W urządzeniu obok tej pamięci jest inna (stała 27c512) z mostkowana pin1-1,2-2...28-28.
    Jedynie piny 20 biegną osobno do dekodera.
    Wiec powinno wszystko działać, kupiłem pamięć AT28c256 jednak okazało się, że urządzonko odczytuje z tej nowej jedynie 8k tyle, co ma 28c64.

    Ingerencja w program nie wchodzi w grę.

    Wpadłem na pomysł, aby AT28C256 podzielić na cztery 8k banki sterowane poprzez przełącznik, który podaje na ostanie piny adresu zależnie, z którego banku korzystamy, odpowiednio stany wysokie.
    Takie rozwiązanie jednak wymusza reset urządzenia za każdą zmiana wykorzystywanego banku.

    noty katalogowe:
    AT28C256
    http://www.atmel.com/dyn/resources/prod_documents/doc0006.pdf
    http://redraven.garcia-cuervo.com/zips/68HC11_Acc_MEM_28256.pdf
    28c64
    http://www.hanssummers.com/electronics/datasheets/28c64.pdf
    27c512
    http://pdf.alldatasheet.com/datasheet-pdf/view/23534/STMICROELECTRONICS/27C512-120.html


    Może ktoś ma lepszy pomysł?
  • #4 1728959
    marek_Łódź
    Poziom 36  
    Posty: 3103
    Pomógł: 208
    Ocena: 66
    Rozumiem, że musisz zrobić przelotkę w której starsze bity adresowe kości C256 będą oddzielone od linii adresowych systemu tak, żeby Twój przełącznik nie wywołał tam konfliktu. Jeśli nie możesz ingerować w program, opisany przez Ciebie sposób jest chyba jedynym możliwym.
REKLAMA