Pamięci, ale jakie?

Dyskusje ogólne na temat "cyfrówki" czyli wszystko o TTL/CMOS, językach VHDL i VERILOG, bramkach, rejestrach, przerzutnikach... Dobre miejsce na pytania odnośnie uniwersalnych programatorów (np. Willem) a także podłączania własnych peryferiów do komputera PC.
Awatar użytkownika
M@ciej
Użytkownik
Posty: 736
Rejestracja: 13 sie 2005, 21:38
Lokalizacja: Szczecin

Pamięci, ale jakie?

Post autor: M@ciej » 21 mar 2008, 21:28

Witam serdecznie :)

Chcę zbudować cyfrowy rejestrator kilku wielkości. Chciałbym wyposażyć go w dość dużą ilość pamięci. Układ będzie sterowany prockiem Atmega16. Niestety nie mam rozeznania w pamięciach, znane mi są tylko EEPROMy 24Cxx. W związku z tym mam 2 pytania:

1. Jakie są największe dostępne pojemności pamięci 24Cxx?

2. Czy istnieją jakieś układy pamięci o pojemności 256k-1M, dość łatwo sterowalne (np. I2C)? Co poradzicie?

Pozdrawiam :)

Awatar użytkownika
gwozdex
Użytkownik
Posty: 879
Rejestracja: 24 lut 2006, 10:04
Lokalizacja: Czechowice-Dziedzice
Kontakt:

Post autor: gwozdex » 21 mar 2008, 22:47

Witam!

Ostatnio stosowałem pamięci I2C o pojemności 256kb (czyli 32kB) . Jeśli preferujesz taki rodzaj pamięci to największą możliwą jaką możesz dostać jest pamięć 24C1024 (128kB), a osobiście spotkałem się z 24C512. Jeśli to jest mało to możesz połączyć kilka takich układów. Liczba dołączonych pamięci do magistali:
- dla AT24C256 można połączyć 4 układy;
- dla AT24C512 można połączyć 4 układy;
- dla AT24C1024 można połączyć 2 układy;

Jeśli Kolega pisze w BASCOM to mogę podrzucić gotowe- sprawdzone procedury do zapisu i odczytu AT24C256 (które po drobnych modyfikacjach nadają się do dowolnej pamięci tego typu).

Jeśli potrzeba większych pamięci to dobrym rozwiązaniem może okazać się zastosowanie układów typu AT45DB011B (szeregowa pamięć DataFlash) których pełno jest w kartach PC, w płytach głównych. Ta pamięć ma 135165kB!!! Jeśli będzie potrzeba podam sposób obsługi tej pamięci.

Jeszcze innym rozwiązaniem może być zastosowanie pamięci równoległych lub kart typu MMC... Pozdrawiam.

Awatar użytkownika
M@ciej
Użytkownik
Posty: 736
Rejestracja: 13 sie 2005, 21:38
Lokalizacja: Szczecin

Post autor: M@ciej » 22 mar 2008, 1:01

I tutaj Kolega podał sporo cennych informacji. Widziałem w ofercie TME 24C512, ale 1-megabajtowa to już coś! Jeśli Kolega byłby uprzejmy podać sposób podłączenia dwóch 1024-magabajtowych pamięci do Atmegi oraz procedurki zapisu/odczytu w Bascomie?

Mam jeszcze pytanie: co oznacza, że pamięć ma 256kB, czyli 32kB? nie rozumiem tego?

kubak1987
-
Posty: 23
Rejestracja: 29 lip 2006, 21:01
Lokalizacja: Bukowno

Post autor: kubak1987 » 22 mar 2008, 1:48

256 kilobitów po podzieleniu przez 8 da 32 kilobajty.
Czyli gdybyś zapisywał dane w postaci pojedynczych bitów to zapiszesz 256k bitów danych, a jak będziesz zapisywał dane 8 bitowe (jedno bajtowe) to zapiszesz 32k bajtów danych.

Awatar użytkownika
M@ciej
Użytkownik
Posty: 736
Rejestracja: 13 sie 2005, 21:38
Lokalizacja: Szczecin

Post autor: M@ciej » 22 mar 2008, 10:08

OK,rozumiem. W katalogach i na stronach sklepów podawane jest także 256kB (8x32kb), czyli zgadzałoby się.

Dzięki Kubak! :)

Awatar użytkownika
Tranzystor
Użytkownik
Posty: 889
Rejestracja: 28 sie 2005, 19:19
Lokalizacja: Świętochłowice
Kontakt:

Post autor: Tranzystor » 22 mar 2008, 13:45

Muszę jednego kolegę poprawić, ostatnio weszła poprawka AT24C1024 i można teraz podłączyć 4 takie układy. Poprawka nosi nazwę AT24C1024B. No czyli można aż 512kB mieć pamięci. Jednak jeżeli potrzebuje się szybką i pojemną pamięć polecam układy na interfejsie SPI.

Pozdrawiam ;)

Awatar użytkownika
M@ciej
Użytkownik
Posty: 736
Rejestracja: 13 sie 2005, 21:38
Lokalizacja: Szczecin

Post autor: M@ciej » 22 mar 2008, 15:39

Potrzeba pojemnej,ale nie koniecznie szybkiej, więc te na I2C powinny wystarczyć. Urządzenie ma rejestrować kilka wielkości analogowych, a ich postaci cyfrowe (10-bitowe) będą przechowywane w pamięci. Dane mierzone i zapisywane będą bardzo wolno, od 1raz/sek, do kilku razy na dzień. Program będzie sygnalizował, gdy pamięć będzie się zapełniać, wtedy dane zgrane zostaną do komputera (ręcznie) a pamięć zwolniona.

Patrzę tak na specyfikację AT24C1024B i te kostki by mi odpowiadały. Mimo, że diagramy w notce wskazują na współpracę z magistralą I2C, jednak nie jest to w notce wyraźnie napisane. Czy ta kostka pracuje z I2C, czy z innym rodzajem magistrali?

Awatar użytkownika
Tranzystor
Użytkownik
Posty: 889
Rejestracja: 28 sie 2005, 19:19
Lokalizacja: Świętochłowice
Kontakt:

Post autor: Tranzystor » 22 mar 2008, 18:51

Jestem pewien, że pracuje z magistralą I2C, jednak nie wiem czy w Polsce dostaniesz tego typu pamięć, ja osobiście również ich poszukuję. Jak narazie nie znalazłem, jeżeli gdzieś uda Ci się je kupić to napisz mi, bo kupiłbym dwie sztuki do projektu, w którym przewidziałem na nie miejsce :D Wiesz co, można te 4 pamięci EEPROM zamienić na jedną pamięć Flash na SPI, będzie taniej i więcej miejsca, jednak wybór należy do Ciebie. Wiesz, jeżeli potrzebne Ci pamięci do przechowywania danych, a później do posyłania na kompa, to ja bym radził jakieś RAMy. Podtrzymywane by były bateryjką... Taka pamięć starczy na dłużej, no i chyba jest łatwiej znaleźć.

Pozdrawiam ;)

Awatar użytkownika
radzio
Użytkownik
Posty: 573
Rejestracja: 07 gru 2004, 23:06
Lokalizacja: Sosnowiec
Kontakt:

Post autor: radzio » 22 mar 2008, 21:29

Tranzystor pisze:Jestem pewien, że pracuje z magistralą I2C, jednak nie wiem czy w Polsce dostaniesz tego typu pamięć, ja osobiście również ich poszukuję.
W TME mają po 10zł netto w SMD.

Awatar użytkownika
M@ciej
Użytkownik
Posty: 736
Rejestracja: 13 sie 2005, 21:38
Lokalizacja: Szczecin

Post autor: M@ciej » 23 mar 2008, 0:07

Dokładnie, w TME też widziałem 24C1024 w wersji SMD, ja jednak zdecydowałem się na AT24C512, są dosyć tanie i w wersji PDIP na płytkę stykową. 4 sztuki powinny mi wystarczyć.

A co do RAMów podtrzymywanych bateryjnie, to czy moglibyście podać jakieś przykłady?

Awatar użytkownika
Tranzystor
Użytkownik
Posty: 889
Rejestracja: 28 sie 2005, 19:19
Lokalizacja: Świętochłowice
Kontakt:

Post autor: Tranzystor » 23 mar 2008, 7:30

W ofercie TME jest pamięć SAMSUNGA: K6R4008V1D-KI10 , która posiada 512kB jest zasilana z 3,3V czyli akurat na baterię, w dodatku można ją szybko obsługiwać, bo jej opóźnienie to 10ns, czyli dla mikroprocesorów AVR jest to, aż za dużo, tak samo dla '51. Podejrzewam, że na ARMach nie robisz. Kość kosztuje 14,90zł, w porównaniu do jednej AT24C1024 jest to cena podobna (a w przeliczeniu nawet mniejsza). Patrząc na AT24C1024, który ma tylko 128kB pamięci i kosztuje podobnie, raczej byłbym skłonny wybrać pamięć RAM podtrzymywaną na baterię/akumulatorek. W czasie pracy układ mógłby podładowywać akumulatorek i praktycznie pamięć RAM zamieniłaby się w "nieulotną" pamięć...

Nie przestrasz się obsługą takiej pamięci, jest to bardzo proste, a jak jej nie rozumiesz to oczywiście postaram się pomóc.

Pozdrawiam ;)

Awatar użytkownika
radzio
Użytkownik
Posty: 573
Rejestracja: 07 gru 2004, 23:06
Lokalizacja: Sosnowiec
Kontakt:

Post autor: radzio » 23 mar 2008, 9:47

Tranzystor pisze:W ofercie TME jest pamięć SAMSUNGA: K6R4008V1D-KI10 , która posiada 512kB jest zasilana z 3,3V czyli akurat na baterię, w dodatku można ją szybko obsługiwać, bo jej opóźnienie to 10ns, czyli dla mikroprocesorów AVR jest to, aż za dużo, tak samo dla '51. Podejrzewam, że na ARMach nie robisz. Kość kosztuje 14,90zł, w porównaniu do jednej AT24C1024 jest to cena podobna (a w przeliczeniu nawet mniejsza). Patrząc na AT24C1024, który ma tylko 128kB pamięci i kosztuje podobnie, raczej byłbym skłonny wybrać pamięć RAM podtrzymywaną na baterię/akumulatorek. W czasie pracy układ mógłby podładowywać akumulatorek i praktycznie pamięć RAM zamieniłaby się w "nieulotną" pamięć...
Tylko że ta pamięć ma ogromny pobór prądu w stanie spoczynku. No i strasznie dużo wyprowadzeń. Tego typu pamięci (zwłaszcza tak szybkie) stosuje się jako pamięci operacyjne a nie do składowania danych. Jeśli już tak bardzo polujecie na dużą pojemność za niską cenę to polecam karty SD. Taniej nie może być ;)

Awatar użytkownika
Tranzystor
Użytkownik
Posty: 889
Rejestracja: 28 sie 2005, 19:19
Lokalizacja: Świętochłowice
Kontakt:

Post autor: Tranzystor » 23 mar 2008, 9:58

Wiesz, ja podałem tylko przykład, zresztą podtrzymanie prądu wystarczy na godzinę na dwie, więcej raczej nie jest potrzebne... W końcu po włączeniu UPSa, można szybko ściągnąć dane z pamięci RAM... Poza tym, jest jeszcze wiele innych pamięci, a jeżeli chodzi o wyprowadzenia, to nie jest problem.

Pozdrawiam ;)

[ Dodano: 2008-03-23, 10:10 ]
Są jeszcze pamięci R1LP0408CSP-7LI, która pobiera (10mW - aktywny, stand-by 4µW) oraz pamięć SR624008VLLP55M, niestety jednak nie odnalazłem noty do tego układu :neutral:

Pozdrawiam ;)

Awatar użytkownika
M@ciej
Użytkownik
Posty: 736
Rejestracja: 13 sie 2005, 21:38
Lokalizacja: Szczecin

Post autor: M@ciej » 23 mar 2008, 10:35

Myślę, że nie będę za bardzo wydziwiać. Fakt, że pamięci 24Cxxx są typu Eprom i po jakimś czasie się zużyją, jednak małe rozmiary czipów i mała ilość wyprowadzeń 24Cxxx zadecydowały o użyciu ich w moim projekcie.

Któryś Kolega zasugerował, że pamięci 24C256 i 24C512 są jakoś specjalnie sterowane i obiecał zapodać procedury w Bascomie? Czyżby te większe pamięci sterowane byłyby inaczej niż ich mniejsze odpowiedniki, np. 24C04?

Awatar użytkownika
radzio
Użytkownik
Posty: 573
Rejestracja: 07 gru 2004, 23:06
Lokalizacja: Sosnowiec
Kontakt:

Post autor: radzio » 23 mar 2008, 10:53

M@ciej pisze:Któryś Kolega zasugerował, że pamięci 24C256 i 24C512 są jakoś specjalnie sterowane i obiecał zapodać procedury w Bascomie? Czyżby te większe pamięci sterowane byłyby inaczej niż ich mniejsze odpowiedniki, np. 24C04?
Załączniki
eeprom.PNG

ODPOWIEDZ