Pytanie:
Współpraca z pamięcią RAM z komputera PC, np. SDRAM / DDR, do mikrokontrolera
Polynomial
2013-02-11 20:39:50 UTC
view on stackexchange narkive permalink

Rozglądam się za połączeniem standardowego PC SDRAM lub DDR z mikrokontrolerem, ale nie mogę znaleźć żadnych ostatecznych szczegółów na temat ich działania w zakresie działania magistrali. Wydaje mi się, że jest to podobne do tego, jak działa każdy standardowy interfejs SPI lub I²C - wyślij instrukcje do urządzenia, a następnie przeczytaj wyniki, aż osiągnięty zostanie określony stan pinów. Z wyjątkiem tego przypadku szyny danych i adresów są równoległe zamiast szeregowych.

Mam trzy powiązane pytania na ten temat:

  • Jaki interfejs ma standardowa pamięć komputera, np. SDRAM czy DDR, działać? Pamiętam, że czytałem coś o tym, że JEDEC jest odpowiedzialny za specyfikację, ale nie mogę znaleźć żadnych szczegółów. Chciałbym użyć DDR (lub DDR2), ponieważ jest teraz tańszy, ale zdecyduję się na SDRAM.
  • Czy można kupić standardową pamięć PC do bardziej „wygodnych” częstotliwości zegara? Standardowe prędkości magistrali dla tych rzeczy wynoszą zwykle około 133 MHz, ale mam nadzieję, że uruchomię je z częstotliwością mniejszą niż 1 MHz. Rozumiem, że SDRAM czeka na zbocza zegara przed odpowiedzią na polecenia, więc niska częstotliwość zegara powinna skutkować zarządzaniem nim przez mikrokontroler.
  • Jaka jest nazwa fizycznego interfejsu? Próbowałem poszukać w Farnell gniazd dla takich urządzeń pamięci, ale znalazłem tylko naprawdę małe rzeczy do montażu powierzchniowego. Prawdopodobnie mógłbym zbudować własną wersję przelotową, jeśli spędziłbym wystarczająco dużo czasu, ale wolałbym po prostu kupić jedną gotową.
Biorąc pod uwagę dużą liczbę złączy, nie znajdziesz go w otworze przelotowym. Możesz napotkać problemy z odświeżaniem pamięci DRAM: każdy bit musi zostać przepisany z określoną minimalną częstotliwością, aby nie został utracony. Najlepiej byłoby znaleźć ARM z interfejsem DRAM.
Wejdź na http://www.Micron.com i poszukaj ich doskonałych arkuszy danych i uwag technicznych. Arkusze danych DIMM zawierają pewne informacje, ale prawdziwe informacje znajdują się w arkuszach danych chipów zamontowanych w tych modułach DIMM.
Jakiego rodzaju MCU używasz, który da ci ponad 100 gpio dla danych, adresu, parzystości i pinów sterujących potrzebnych do SDram?
@Passerby Miałem nadzieję zmniejszyć liczbę niezbędnych pinów, zasilając szyny adresowe i danych rejestrami przesuwnymi. Wygląda jednak na to, że mikro nie będzie wystarczająco szybkie.
@Polynomial dobrze, czego potrzebuje twoja pamięć? Zamiast tego możesz uratować pojedynczy taran z chipa dimm. Szczególnie starsza pamięć (przed sdram pc100). Nadal uzyskaj megabaj lub dwa z jednego układu pamięci.
@Passerby Niestety potrzebuję około pół koncertu. W przeciwnym razie wybrałbym po prostu duży układ DRAM na szynie SPI lub I2C.
Jednostka pamięci poszczególnych chipów jest w bitach, więc musisz podzielić ją przez 8, aby uzyskać pamięć bajtów.Byłoby to możliwe pod warunkiem, że masz do tego gpio i jeśli mogą pracować na nieoptymalnym, ale poprawnie zsynchronizowanym taktowaniu.
Trzy odpowiedzi:
Martin Thompson
2013-02-11 21:23:57 UTC
view on stackexchange narkive permalink

Niektóre SDRAM z pojedynczą szybkością transmisji danych (SDR) mogą działać z mniejszą szybkością - sprawdź specyfikację Okresu zegara (maks.). Musisz jednak regularnie wydawać polecenia odświeżania, a jeśli taktujesz z częstotliwością 1 MHz, może się okazać, że nie masz czasu na cokolwiek innego!

DDR SDRAM ma zwykle minimalną (tak, minimalną) częstotliwość taktowania w wysokich dziesiątkach MHz ... a fizyczny interfejs byłby bardzo trudny do zaimplementowania na mikro, ponieważ zwraca sygnał podobny do zegara / stroboskopu wraz z danymi i musisz znaleźć środek tego okresu zegara, aby wiedzieć, kiedy do próbkowania danych.

Micron jest doskonałym źródłem arkuszy danych, które bardzo dobrze dokumentują interfejsy.

Jeśli chodzi o fizyczne złącza, nazywane są SIMM i DIMM (pamięć pojedyncza i podwójna moduł)

To pierwsza rozsądna odpowiedź na pytanie o DDR i MCU, które przeczytałem tutaj. DDR ma minimalną częstotliwość taktowania, cholera! Jest to ograniczenie, które wyklucza użycie z mikrokontrolerami o niskiej częstotliwości, a nie błahostki, takie jak liczba pinów lub Vcc (ATtiny może zrobić 1,8 V). Jeśli chodzi o odświeżanie, chciałbym, aby niektórzy profesjonaliści opisali, dlaczego „automatyczne odświeżanie”, które zwykle znajduje się w arkuszach danych DDR, nie działa tutaj (lub dlaczego „automatyczne odświeżanie” nie jest tak naprawdę automatyczne odświeżanie).
Czy minimalny okres zegara nie byłby maksymalną częstotliwością zegara?Natknąłem się również na ten http://www.micron.com/~/media/Documents/Products/Technical%20Note/DRAM/TN4815.pdf, który mówi: „W przeciwieństwie do DDR, nie ma minimalnej częstotliwości zegara dla SDRAM-u niezależnie od szybkościstopień."Ten dokument sprawił, że brzmiało to tak, jakbyś musiał tylko spojrzeć na parametry związane z odświeżaniem.
Tak, podstawowy obwód nadal składa się z kondensatora.Jeśli ma ładunek, wynosi „1”, w przeciwnym razie jest to „0”.Naładowanie kondensatora z czasem spada, a kondensatory są małe.Obwody i czas „odświeżania” ładunku to narzut.
Michael Karas
2013-02-11 21:52:47 UTC
view on stackexchange narkive permalink

Jeśli twój mikrokontroler nie ma bezpośredniej obsługi magistrali do łączenia się z pamięcią RAM typu DDR / DDR2 / DDR3 lub twój mikrokontroler jest połączony przez FPGA, który został zaprogramowany w celu zapewnienia interfejsu pamięci RAM, jest prawdopodobne, że szaleństwo z modułami DIMM nie jest przydatne ćwiczenie. Jest kilka ważnych powodów, dla których tak jest ....

1) Układy pamięci DDR mogą pracować przy niższym napięciu niż mikrokontroler.

2) Interfejs do DDR pamięć jest multipleksowana i wymaga precyzyjnego taktowania, podczas gdy multipleksowane linie zmieniają stany w synchronizacji z tym zegarem.

3) Nowoczesne moduły DIMM są zaprojektowane do pracy z bardzo wysokimi częstotliwościami taktowania 800 MHz, 1066 MHz, 1333 MHz lub 1600 MHz. Integralność sygnału jest niezwykle ważna podczas projektowania połączeń obwodów do modułu DIMM. Nie jest to proste zadanie, w wyniku czego układy pamięci mogą być niezwykle wrażliwe na szum.

4) Pamięci DDR wymagają ciągłego odświeżania, aby dane komórek pamięci były ważne. Bez odświeżania zawartość pamięci zanika z upływem czasu od milisekund do sekund.

5) Struktura poleceń do obsługi nowoczesnych pamięci RAM DDR jest złożona. Najbardziej skomplikowaną częścią jest poprawienie sekwencji inicjalizacji, która składa się z około 13 do 20 pojedynczych kroków.

6) Nowoczesne moduły DIMM są przeznaczone do bardzo szybkiego dostarczania danych do nowoczesnych komputerów typu PC. Typowy moduł DIMM ma ścieżkę danych o szerokości 64 bitów. Wielopoziomowe moduły DIMM wymagają również wielu zegarów i sygnałów wyboru układu, aby uzyskać dostęp do wszystkich układów pamięci na karcie pamięci. Jest mało prawdopodobne, aby typowy mały mikrokontroler mógł efektywnie wykorzystać ten szeroki format danych bez nadmiernej ilości zewnętrznych obwodów.

Miej to na uwadze. Firmy, które produkują procesory w stylu PC, które wykorzystują moduły DIMM, mają wbudowane kontrolery do łączenia się z gniazdami pamięci. Istnieje specjalizacja inżynierska dla programistów pracujących w dziedzinie BIOS, zwana MRC (kod referencyjny pamięci). To jest moduł kodu programu, który inicjalizuje kontroler DDR i wszystkie dołączone moduły DIMM. Ta specjalność zatrudnia najlepszych i jednych z najstarszych programistów BIOS-u, którzy zajmują się wyłącznie kodowaniem MRC na pełny etat.

Dave Tweed
2013-02-11 21:54:16 UTC
view on stackexchange narkive permalink

Aby korzystać z SDRAM, musisz mieć chip zawierający kontroler SDRAM, kropka. Albo kup mikrokontroler, który ma taki mikrokontroler, albo podłącz FPGA, który ma taki do swojego mikrokontrolera.

Tak czy inaczej, nie jest to projekt dla początkującego.



To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 3.0, w ramach której jest rozpowszechniana.
Loading...