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 obsłużyć pamięć 24C16 w BASCOM dla mikrokontrolera 2051?

ArtKar 16 Cze 2003 15:49 2094 5
REKLAMA
  • #1 251825
    ArtKar
    Poziom 14  
    Posty: 153
    Witam,
    Nudzi mi sie i robie ukladzik ;-))
    Jak to zwykle bywa mam problem.
    Nie umiem obsluzyc z Bascom'a pamieci wiekszej niz 24C02 :-((
    Wiem, ze niektorzy mieli juz tutaj z tym problemy bo przeszukiwalem archiwum, ale nie pomoglo mi to :-(
    Znalazlem cos takiego: https://www.elektroda.pl/rtvforum/topic4254.html

    ale nie zabardzo to rozumiem.

    O ile dobrze zrozumialem to pisze cos o adresowaniu kolejnych stron zwierajac nozki ukladu. Mam programator tego typu pamiatek i tam pierwsze 4 piny sa zwarte na stale do masy, a pomimo tego programator obsluguje uklady nawet do 24C512.

    Moze mi ktos napisac krok po kroku jak obsluzyc 24C16 (w jak najprostszy sposob) ?


    Dzieki
  • REKLAMA
  • #2 252253
    nojmi
    Poziom 20  
    Posty: 473
    Pomógł: 9
    Ocena: 18
    Tez mi sie nudzi. Do dzisiaj tez nie umialem obslugiwac pamieci wiekszej od 24c02. Szukalem na ten temat na forum, ale nie znalazlem nic ciekawego (tylko jakies adresowanie stron poprzez zwieranie nozek ukladu). Zadnych informacji dotyczacej obslugi poszczegolnych stron z poziomu BASCOM-a.

    Tajemnica sterowania nie jest skomplikowana. Polega tylko na odpowiednim adresowaniu zapisu i odczytu. Tak jak w 24c02 adres zapisu i odczytu jest tulko jeden (w moim przypadku 160-161 czy 162-163) tak w 24c16 adresow jest az 8. Eureka!! Zawolalem. Przeciez 2kb to 8 stron po 256 bajtow. To znaczy ze do obslugi poszczegolnych stron musisz ty, musze ja i inni ktozy cos kombinuja z pamiecia 24c16 uzywac kolejnych adresow zapisu i odczytu.

    Powodzenia w robieniu ukladziku.
  • REKLAMA
  • #3 252291
    Tomek11r
    Poziom 22  
    Posty: 677
    Ocena: 17
    Na wyprowadzeniach 24Cxx ustawiany jest adres I2C układu a nie pamięci siedzącej w środku.
  • REKLAMA
  • #4 252301
    ArtKar
    Poziom 14  
    Posty: 153
    No wlasnie dokladnie tak mi sie tez wydawalo ;-))) tylko troche zbyt chaotycznie bylo to tam wszystko opisane :-]

    Wiec adres ukladu mam ustawiony na 160(dec) i wszystko OK, ale w jaki sposob wyjsc poza adres FF (tej pamieci w srodku).
    Gdy wpisuje wiekszy to zaczyna odczyt eeproma od poczatku....

    Dzieki
  • REKLAMA
  • #5 252793
    nojmi
    Poziom 20  
    Posty: 473
    Pomógł: 9
    Ocena: 18
    Przeanalizuj ten programik:
    $sim
    Config Sda = P3.5
    Config Scl = P3.7
    Declare Sub Odczyteeprom(adres As Byte , Test As Byte)
    Declare Sub Zapiseeprom(adres As Byte , Wartosc As Byte)
    Dim Chec As Bit
    Dim Adres As Byte
    Dim Wartosc As Byte
    Dim Wartoscodczytywana As Byte
    Dim Strona As Byte
    Dim Adresdozapisu As Byte
    Dim Adresdoodczytu As Byte
    
    Do
       Input "Podaj numer 256k strony [1-8] " , Strona  'Dla 24c16 - 2k to 8 stron po 256 bajtow.
       Input "Podaj adres na danej stronie [0-255] " , Adres
       Input "Chcesz odczytac - 0, zapisac - 1  " , Chec
    
    
       Adresdozapisu = Strona * 2                                
       Adresdozapisu = Adresdozapisu + 158
       Adresdoodczytu = Adresdozapisu + 1
    
       If Chec = 1 Then
          Input "Podaj wartosc danej [0-255]" , Wartosc
          Call Zapiseeprom Adres , Wartosc
       End If
    
       Call Odczyteeprom Adres , Test
    
       Print " adres: " ; Adres ; " odczyt : " ; Wartoscodczytywana ; "
       If Chec = 1 Then
          If Wartosc = Wartoscodczytywana Then
             Print "Zapis jest poprawny"
          Else
             Print "zapis nie jest poprawny"
          End If
       End If
    
    Loop
    
    Sub Zapiseeprom(adres As Byte , Wartosc As Byte)
       I2cstart
       I2cwbyte Adresdozapisu
       I2cwbyte Adres
       I2cwbyte Wartosc
       I2cstop
       Waitms 10
    End Sub
    
    Sub Odczyteeprom(adres As Byte , Test As Byte)
       I2cstart
       I2cwbyte Adresdozapisu
       I2cwbyte Adres
       I2cstart
       I2cwbyte Adresdoodczytu
       I2crbyte Wartoscodczytywana , Nack
       I2cstop
    End Sub

    Wpisz sobie jakies wartosci do poszczegolnych stron pod kilka adresow (np na stronie 1 pod adresem 1 wartosci =1, na stronie 2, pod adresem 2 wartosc 2, itd - tak aby latwo zapamietac). Nastepnie odczytuj poszczegolne dane wpisane w poszczegolne strony i adresy. Porownaj je z wczesniej wpisanymi . Oczywiscie powinny byc takie same.
  • #6 252953
    ArtKar
    Poziom 14  
    Posty: 153
    Ohhh, MEGA WIELKIE OGROMNE DZIEKI !!!!!!!

    Nareszcie rozumiem jak zmienia sie strony w eepromie :-D:-D
    Bardzo pomogles, kiepsko by mi szla praca gdyby nie Ty ;-)

    Nalezy Ci sie ogromne PIWO :-))

    Jeszcze raz dziekuje i pozdrawiam, szczesliwy ArtKar :-D
REKLAMA