Mam dwa pozostałe moduły RAM 2 GB, które usunąłem z MacBooka Pro podczas aktualizacji. Zastanawiałem się tylko, czy nadają się one na przykład do Arduino. I tak byłbym zbyt początkujący, by spróbować to teraz zrobić, ale jestem ciekawy, czy to w ogóle możliwe, czy to po prostu za dużo pamięci, aby mikrokontroler mógł się z tym uporać.
arduino
microcontroller
memory
johndeo
źródło
źródło
Odpowiedzi:
Powiem nie: najbardziej podstawowa niezgodność polega na tym, że zbyt wiele pinów na tych modułach jest w stanie fizycznie połączyć je z Arduino. To samo dotyczy podobnych małych mikrokontrolerów. ARM Cortex M3 jest coraz bliżej, ale niewiele z nich faktycznie ma zewnętrzną magistralę niezbędną do interfejsu RAM w taki sposób (tak myślę).
Ale zagram dalej. Zakładając, że możesz połączyć układ z Arduino, kolejnym podstawowym problemem związanym z kompatybilnością elektryczną jest wymagane napięcie. Myślę, że te moduły pamięci RAM używają czegoś dziwnego, jak np. 2,2 V - nieobecnego na waniliowej płycie Arduino lub naprawdę innym podstawowym hobbistycznym mikrokontrolerze.
Zakładając, że o to zadbano, układ działałby prawie jak każda zewnętrzna pamięć Arduino. Robi się to naprawdę cały czas - ludzie dodają zewnętrzną pamięć EEPROM do przechowywania ważnych stałych lub kart SD / MMC do przechowywania dzienników serwera WWW i tym podobnych. Oczywiście w tym kontekście moduły RAM nie przynoszą Arduino żadnych rzeczywistych korzyści. Jego główną cechą jest szybkość, a Arduino (i tak, inni hobbystyczni mikrokontrolery) zazwyczaj nie łamią częstotliwości taktowania 25 MHz. Są zbyt powolni, aby dbać o szybkość. Rozmiar pamięci nie jest dużym problemem, ponieważ interfejs do karty SD / MMC jest wyraźnie łatwiejszy i zapewnia tyle miejsca do zabawy.
Więc nawet gdyby było to możliwe, tak naprawdę nie byłoby wskazane.
źródło
Powiedziałbym „nie”, nie bez włożenia między nie dobrej wielkości fpga (fpga), fpga mówi do pamięci, a mikrokontroler do fpga za pomocą schematu stronicowania.
źródło
Można sobie wyobrazić, że można użyć systemu zatrzasków, aby coś w rodzaju arduino wygenerowało 32 bity adresu, i prawdopodobnie można opracować jakiś schemat generowania cykli odświeżania, ale byłoby to praktycznie bez sensu, chyba że miałoby to charakter techniczny ćwiczenie.
Zespół obwodów interfejsu byłby prawdopodobnie najbardziej złożoną częścią wynikowego systemu, a wynik byłby mało praktyczny; arduino nie byłoby w stanie wykonać kodu poza pamięcią RAM, pamięć byłaby niestabilna i prawdopodobnie zużyłaby również więcej energii niż arduino. Jeśli chcesz przechowywać dane, pamięć EEPROM SPI jest prawdopodobnie znacznie lepszym rozwiązaniem.
źródło
Jeśli kiedykolwiek spojrzysz na karty danych układów DRAM, minimalna częstotliwość zegara wynosi około 50 MHz + dla DDR2. Więc nie, nie będziesz w stanie połączyć się z nimi za pomocą mikrokontrolera (chyba że ma on wbudowaną obsługę sprzętu).
źródło
Krótka odpowiedź brzmi: nie.
Arduino nie może obsługiwać interfejsu pamięci DDR ani DDR2. Możesz zrobić kontroler DDR / DDR2 z interfejsem SPI z FPGA, ale to znaczące przedsięwzięcie.
źródło
Potrzebny byłby sterownik niskiego napięcia (SSTL) i jakiś sposób sterowania około 100 kanałami (każdy różnicowy, więc około 200 pinów. Pomyśl o BGA.)
Większość pamięci DRAM należy odświeżyć co najmniej 1 kHz, a prawdopodobnie więcej, aby uzyskać niski bitowy poziom błędu. Spowoduje to utworzenie dużego zadania w tle i wykorzystanie większości mocy przetwarzania Arduino, jeśli w ogóle możliwe będzie odświeżenie pamięci z taką szybkością.
Jednak niektóre mikrokontrolery, np. PIC24F / H / dsPIC33F, obsługują interfejs równoległej magistrali master, który umożliwia dostęp do niektórych typów równoległych pamięci SRAM. Istnieje nawet wsparcie dla C, ponieważ ta pamięć zewnętrzna może być mapowana na kilka zmiennych kodu, a nawet bloki, które łączą pamięć wewnętrzną i zewnętrzną. Pamięć zewnętrzna wymaga napisania kodu PMB. Dzięki temu będziesz w stanie rozwiązać tylko około 1 MB.
źródło
Nie, nie bez interfejsu stronicowania między pamięcią a MCU. Niektóre jednostki MCU AVR faktycznie mają wbudowany interfejs pamięci zewnętrznej - na przykład Atmega2560 (patrz sekcja 8 karty danych ATmega640 / 1280/1281/2560/2561). Ale przestrzeń adresowa jest mierzona w kilobajtach, a nie w gigabajtach.
źródło