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

[AVR]Zewnętrzny RAM - jaki wybrać, jak podłączyć?

niebieski326 23 Sie 2009 20:30 5200 17
  • #1 6926511
    niebieski326
    Poziom 18  
    Chciałbym dołączyć zewnętrzny RAM do mikrokontrolera ATmega64L (pracuje na 3.3V z kwarcem 8MHz) i tu mam dwa pytania:
    1. Jaki wybrać?
    -CS18LV02565AC-55 (256kb) pamięć statyczna 5V 32K x 8bit firmy Chiplus Datasheet
    -BS62LV1027PIP55 (1mb) firmy BSI
    Datasheet
    Cytat:
    Wide Vcc operation voltage : 2.4V ~ 5.5V
    - czyli powinno działać na 3.3 bez żadnych konwenterów? Dodatkowo za jej wybraniem przemawia niski pobór prądu (dodam, że układ będzie zasilany z akumulatora):
    Cytat:

    Vcc = 3.0V C-grade : 17mA (@55ns) operating current
    I- grade : 18mA (@55ns) operating current
    C-grade : 14mA (@70ns) operating current
    I- grade : 15mA (@70ns) operating current
    0.1uA (Typ.) CMOS standby current

    -inny?
    2. Jak podłączyć?
    W karcie katalogowej jest taki schemat jak podłączyć zewnętrzną pamięć operacyjną:
    [AVR]Zewnętrzny RAM - jaki wybrać, jak podłączyć?
    jak przeczytałem w innym temacie, układ zaznaczony na czerwono to 8 przerzutników, tylko jakie to mają być przerzutniki? (chodzi mi o konkretne przykłady układów przypominam, że całość pracuje na 3.3V)

    -----
    Pozdrawiam niebieski326
  • #3 6926625
    wdogli
    Poziom 18  
    A może jakaś pamięć na I2C albo na 1Wire ?? Bo są takie pamięci pracujące na 3.3V
    Pozdrawiam
  • #4 6926647
    damiano713
    Poziom 15  
    Możesz RD i CS połączyć na stałe do GND. Sterujesz tylko WR (write/read).
    Da Ci to dwie nogi wolne :D

    W linku poniżej: schemat SRAM i ATmega32.
  • #5 6926923
    niebieski326
    Poziom 18  
    Co myślicie o wyborze BS62LV1027PIP55 ? może polecacie jakiś inny o lepszych parametrach i podobnej cenie? (5zł)
  • #6 6927620
    wdogli
    Poziom 18  
    Hej.
    Bardzo fajna pamięć ale raczej nie nadaje się do mikrokontrolera Atmega161. Powód to ilość wyjść adresowych. Optymalnie pamięć powinna mieć adresowanie 16 bitowe i słowo 8 bitowe. Ty ze względu na pojemność tej pamięci masz adresowanie 17bitowe i słowo 8 bitowe. Jeśli chodzi o parametry myślę że pamięć z 70ns dostęp do danych całkowice ci wystarczy ze względu na fakt że u ciebie pojedyńczy takt będzie trwał 1/8000000=125ns
    pozdrawiam
  • #7 6927640
    tmf
    VIP Zasłużony dla elektroda
    Mozna wieksze pamieci zastosowac, tyle, ze pozostale wejscia adresowe trzeba sterowac "recznie" z portow IO. I tu rodzi sie problem jesli programujesz w C. Trzeba bardzo uwazac kiedy mu przelaczasz banki pamieci, tak, zeby nie zmienic banku podczas dostepu do jakiejs zmiennej, ktora jest trzymana w innym. Zreszta zmienne C i tak nie wykorzystaja wiecej niz 64k.
    Przy 8MHz pamiec moze byc praktycznie dowolna, zatrzask tez, zastosuj jakis z serii LVC to pojdzie na 3V3.
    BTW, jesli potrzebujesz tyle pamieci to moze lepiej jesli nie wejsc w ARM/AVR32 to chociaz w XMega - ona ma kontroler do DRAM.
  • #8 6928223
    niebieski326
    Poziom 18  
    Aż tyle pamięci to ja nie potrzebuje, starczy 256K. Możesz podać dokładniej o jaką pamięć z serii LVC chodzi bo nic nie mogłem znaleźć? W ostateczności będę próbował z 62256 i jakimś konwenterem poziomów napięć.
  • #9 6928255
    gothye
    Poziom 33  
    Z powodzeniem używam pamięci CY62256LP-70 z tme.pl bez konwertera napięc
  • #10 6928329
    niebieski326
    Poziom 18  
    gothye napisał:
    Z powodzeniem używam pamięci CY62256LP-70 z tme.pl bez konwertera napięc

    Niestety nie znalazłem tego w TME za to znalazłem CY62128EV30LL45 Układ scalony SRAM 3V3 128kx8 45ns Datasheet
    Z tego co widzę to ma on adresowanie 16 bitowe i słowo 8 bitowe, zakres napięć zasilania też ma idealny bo 2.20V – 3.60V
    Cytat:
    Ultra low active power
    — Typical active current: 1.3 mA @ f = 1 MHz

    Czyli z poborem prądu nie będzie problemu a dodatkowo ma szeroki zakres temperatur pracy:
    Cytat:
    Temperature ranges–
    — Industrial: –40°C to +85°C
    — Automotive-A: –40°C to +85°C
    — Automotive-E: –40°C to +125°C

    Czyli wszystko wygląda idealnie, tylko czy się nie mylę?
  • #11 6928403
    gothye
    Poziom 33  
    Jest ;) napisz jeszcze jakim napięciem zasilacz uC , ponieważ z Twoich postów wynika że 3.3V ?!
  • #12 6928465
    damiano713
    Poziom 15  
    Cytat:
    Z tego co widzę to ma on adresowanie 16 bitowe i słowo 8 bitowe

    Adresowanie 17-bitowe. To bardzo utrudnia prace na pamięci. Musisz wtedy pracować na dwóch bankach po 64kB każdy.

    W jakiej aplikacji ów ram ma pracować? Jeśli to ma być losowy dostęp to jedyne rozwiązanie w zatrzasku, natomiast jeśli to ma być coś w rodzaju FIFO to dostęp za pomocą liczników binarnych.
    Rozwiązanie jest szybkie jeśli zapis, odczyt jest sekwencyjny, za to potrzeba tylko 3 linii adresowych.
  • #13 6928467
    tmf
    VIP Zasłużony dla elektroda
    Piszac LVC mialem na mysli zatrzask, ktory musisz dac pomiedzy pamiec a AVR. Sama pamiec bedzie ok, z tym, ze adresowanie ma 17 bitowe, nie 16. Dodatkowa linie adresowa musisz podlaczyc do jakiegos wolnego portu. Przy czym jak pisalem - co planujesz w tej pamieci umiescic. Jesli tam maja byc jakies zmienne z c, a nie daj Boze stos to musisz sprytnie rozwiazac dekodowanie adresow, tak, zeby np. dolne 32kB zawsze wskazywaly na ta sama strone pamieci, dzieki temu moglyby tam byc zmienne i stos. A gorne 32kB bylyby przelaczanymi stronami ktorymi zarzadza twoj program (nie muozes ztu liczyc na wsparcie ze strony c). Do czego w ogole potrzebujesz takie ilosci SRAM?
  • #14 6928650
    niebieski326
    Poziom 18  
    Będzie to projekt robota sterowanego przez Bluetooth z różnymi czujnikami itd. i z kamerą... Myślę nad zastosowaniem kamery z gameboy'a, znalazłem nawet dość ciekawy projekt (załącznik). Dane z kamery będą zapisywane do RAMu a potem przez BT do komputera lub telefonu.
    gothye napisał:
    Jest ;) napisz jeszcze jakim napięciem zasilacz uC , ponieważ z Twoich postów wynika że 3.3V ?!

    Tak jak napisałem w 1 poście jest to 3.3V.

    @gothye właśnie przeglądam datasheeta, pamięci którą proponujesz i widzę że napięcie zasilania to 4,5-5V ale:
    [AVR]Zewnętrzny RAM - jaki wybrać, jak podłączyć?
    Czyli zasilanie mu podać 5V a resztę sygnałów może dostawać prosto z uC?
  • #15 6928711
    Chris_W

    Poziom 39  
    Kup dowolna pamięć SRAM która ma odpowiednią wielkość (w kB). Nie martw się ani czasami dostępu ani poborem prądu (w robotach to silniki trzeba optymalizować) a tym bardziej adresowaniem 16/17 bitowym. Jak chcesz mieć te 128kB (17bit adres) w pełni wykorzystane to musisz niestety jeden pin przeznaczyć na A16. Ale jeśli masz 128kB a chcesz użyć tylko 32kB to do A15/A16 podaj GND i po kłopocie.
    PS. uściślij proszę czy ty chcesz używać ramu 256kB czy ramu 62256 (32kB) - bo to zmienia dużo.
  • #16 6928727
    damiano713
    Poziom 15  
    Cytat:
    Dane z kamery będą zapisywane do RAMu

    Czyli zwykły bufor. Najoszczędniej zastosować rozwiązanie z licznikami binarnymi.
  • #17 6929018
    niebieski326
    Poziom 18  
    Chris_W napisał:
    Kup dowolna pamięć SRAM która ma odpowiednią wielkość (w kB). Nie martw się ani czasami dostępu ani poborem prądu (w robotach to silniki trzeba optymalizować) a tym bardziej adresowaniem 16/17 bitowym. Jak chcesz mieć te 128kB (17bit adres) w pełni wykorzystane to musisz niestety jeden pin przeznaczyć na A16. Ale jeśli masz 128kB a chcesz użyć tylko 32kB to do A15/A16 podaj GND i po kłopocie.
    PS. uściślij proszę czy ty chcesz używać ramu 256kB czy ramu 62256 (32kB) - bo to zmienia dużo.

    Starczy 32kB ale jak będzie więcej to lepiej :D Tylko zależy mi aby to prosto podłączyć i równie prosto obsługiwać w C.
REKLAMA