SDRAM do ARM Cortex M4

Mar 28, 2016 4 Replies

Witam, potrzebuję pomocy kogoś, kto ma doświadczenie przy podłączaniu swojego processora do 32-bitowej kostki pamięci SDRAM. Używam procka ARM/CortexM4 firmy NXP, oznaczenie procka LPC4088 i pojedynczej kostki pamięci SDRAM firmy ISSI model IS42S32800D-7. Datasheet pamięci:

formatting link
Tam wyczytałem że pamięć moja jest 256 megabit, zorganizowana w 4 banki po



64 megabitowe tablice po 4096 wiersze i 512 kolumn słów 32-bitowych. Kostka ma 2 piny do wyboru banku (BA0 i BA1),
32 piny danych (D0-D32) i 4 bity maski bajtów danych (DQM0-DQM3). Kostka ma tylko 12 pinów wyboru adresu wiersza z których 9 służy do wyboru kolumny. Datasheet procesora:
formatting link
Na stronie 190 jest tam tabelka 135, którą próbuję zaimplementować w swoim kodzie… Z tego co rozumiem, są tam 4 części tabelki, dwie pierwsze dla konfiguracji z 16-bitową szyną danych i dwie dla mojej konfiguracji z 32-bitową szyną danych. Ponieważ mam jedną kostkę 32-bitową (a nie np. 2 kostki 16-bit ani nie 4 kostki 8 –bit) to skupiam się na wierszu tabelki opisanym „256Mbits (8M x
32)” ale wtedy otrzymuję konfigurację 4 banki po 13 bitów dla wyboru wiersza i 8 bitów dla wyboru kolumny. Ale w opisie kostki pamięci mam 12 pinów dla wyboru wiersza i 9 dla wyboru kolumny więc nie obsłużę 13 bitów adresu wiersza bo brak mi A12. Czego ja tu nie rozumiem?

Patrzę sobie właśnie na notę aplikacyjną dla innego proca (LPC32xx)

formatting link
widzę tam na stronie 23, rozdział 2.11, że zalecają niestandardowe ustawienia dla liczby bitów wierszy i kolumn, niedozwolone w standardowym User Manual procesora...

Dla kostek 32-bitowych o gęstości 256Mbit (8M x 32) proponują ustawienie takie jak dla kostek 16-bitowych 128Mbit!

Ustawiłem 1 0 010 01 jak dla 128Mbit (8M x 16), 4 bank, 12 row, 9 colums i działa...

No co za skórkowańcy... Jak z tym żyć panie premierze?? Jak żyć? :-)

W dniu 2016-03-28 o 21:45, Pszemol pisze:

get over it :) NXP daje w miarę realne datasheety, TI to w przypadku bardziej skomplikowanych układów lista pobożnych życzeń :)

a.

Ta tabelka wyglada dziwnie, ale chyba da sie ja rozsadnie przeczytac:

32 bitowe slowo i kosc 128Mbit (8M x 16) oznacza faktycznie dwie kosci -- dwie zeby dostac 32 bitowe slowo z dwu 16 bitowych kawalkow. Liczac linie adresowe widac ze to jedyna sensowna interpretacja, w przeciwnym razie linii adresowych byloby za duzo.

No a dla procesora dwie kosci 128Mbit z 16 bitowym slowem to prawie to samo co jedna 256Mbit z 32 bitowym slowem.

No fajowo, ale zauwa¿, ¿e User Manual procesora wyra¼nie tezê stawia, ¿e kombinacje nie wymienione w tabelce nie s± obs³ugiwane... I ja nie mam dwu ko¶ci pamiêci ¿eby wybieraæ konfig dla 128Mbit :-)

A tabelka nie pisze nic o pamiêci 256Mbit co ma 4 banki po 2Mx32bit i chce tylko 12 bitów na wiersze i 9 na kolumny. Wiêc jak chcê pod³±czyæ do tego procesora JEDN¡ kostkê 32-bitow± pamiêci 256Mbit, która ma tylko 12 pinów adresowych to wed³ug User Manual dla LPC4088 nie mam takiej opcji, czy ¼le kombinujê?

Dopiero posi³kuj±c siê jak±¶ przypadkow± Application Note i do tego dla innego procesora, która wyra¼nie zachêca do zignorowania tego ostrze¿enia i ustawienia innych, niewspieranych kombinacji, zadzia³a³o.

Niezbyt ³adnie ze strony NXP. I na dodatek ten procesor nie jest jako¶ specjalnie nowy, wiêc argument ¿e mo¿e to poprawi± chyba tu niezbyt ich obroni...

No nic - na 60MHz ju¿ mi to ju¿ dzi¶ dzia³a. Jutro pokombinujê z 96 i mo¿e nawet 120MHz, bo w manualu NXP znowu co¶ glêdzi ¿e 80MHz to maksymalny zegar dla tej szyny pamiêci (sam cpu jest 120MHz max) ale widzê w sieci pe³no relacji ¿e siê ludziom uda³o ten procesor pod³±czyæ du¿o szybciej...

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required