Skocz do zawartości

Pamięć fram


roz

Pomocna odpowiedź

Hej.

Cytat

4-Kbit ferroelectric random access memory (F-RAM) logically organized as 512 × 8

To z noty katalogowej do FM24C04B.

Jak rozumieć zapis 512 x 8?

Osiem stron po 512 bajtów na każdej stronie?

 

Dziękuję.

Link do komentarza
Share on other sites

@ethanak ok, ale nie rozumiem nadal..

Cytat

When accessing the FM24C04B, the user addresses 512 locations of eight data bits each. These eight data bits are shifted in or out serially. The addresses are accessed using the I2C protocol, which includes a slave address (to distinguish other non-memory devices), a page address bit, and a word address. The word address consists of 8-bits that specify one of the 256 addresses. The page address is 1-bit and so there are 2 pages of 256 locations. The complete address of 9-bits specifies each byte address uniquely.

Czyli w sytuacji gdy robię zapis:

framSet.writeByte(0, X, data);	//0 - strona, X - adres, data - dane do zapisu

wiedząc, że jeden bajt to 8 bitów i jedna strona to 256 adresów, to na jednej stronie mogę zapisać 32 bajty?

Nie potrafię w wyobrażenie tego.

Link do komentarza
Share on other sites

(edytowany)
5 minut temu, roz napisał:

Czyli w sytuacji gdy robię zapis:

framSet.writeByte(0, X, data);	//0 - strona, X - adres, data - dane do zapisu

wiedząc, że jeden bajt to 8 bitów i jedna strona to 256 adresów, to na jednej stronie mogę zapisać 32 bajty?

Nie potrafię w wyobrażenie tego.

Jedna strona to 256 adresów, a każdy adres zawiera 1B.

Masz wiec 2 strony, każda po 256B, co daje 512B - 4Kib

Wielkość B ma znaczenie 😉 

Poza tym dostęp do konkretnego bitu w pamięci nie ma sensu, bo układy i tak maja przynajmniej 8-bitowy osprzęt obliczeniowy.

Edytowano przez H1M4W4R1
  • Lubię! 1
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

@H1M4W4R1 No powiedzmy, że rozświetlasz.

Czyli zapisując bool do powyższej pamięci i tak przepada jeden bajt, tak?

framSet.writeByte(0, 0, BOOL); //jeden bajt zajęty
framSet.writeByte(0, 1, BYTE); //też jeden bajt zajęty
framSet.writeByte(0, 2, INTEGER); //zajmie tyle, ile maksymalnie może pomieścić integer czy tyle, ile cyfr zapisuję?

I w przypadku integera, skąd wiem, która komórka następna może zostać zajęta nie uszkadzając danych od integera?

Wiem, przedszkole jakby 😉

Link do komentarza
Share on other sites

Zacznijmy od tego, że FRAM to nie EEPROM. Przy EEPROM-ie po zapisie strony musisz odczekać 5 msec (to robi biblioteka i nie musisz się o to martwić). Tu tego nie ma. Tak samo jak nie musisz trzymać się adresowania w obrębie strony.

Link do komentarza
Share on other sites

1 godzinę temu, roz napisał:
framSet.writeByte(0, 2, INTEGER); //zajmie tyle, ile maksymalnie może pomieścić integer czy tyle, ile cyfr zapisuję?

Nazwa metody jest dokumentacją - ta metoda zapisuje tylko jeden bajt. W przypadku chęci zapisania integer'a najpewniej jest metoda typu writeData albo coś podobnego (nie wiem z jakiej biblioteki korzystasz).

  • Lubię! 1
Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.