Właśnie ukończyłem projekt przy użyciu układu LPC2132, ale miałem problemy z wykorzystaniem całego 64kb pamięci RAM.
W moim następnym projekcie chciałbym użyć czegoś, co może odnosić się do zewnętrznego, znacznie większego układu pamięci. Jaki rodzaj ARM może to zrobić i co muszę zrobić, aby oba urządzenia mogły mówić?
Odpowiedzi:
Nie potrzebujesz MMU dla zewnętrznej pamięci RAM, decydujący czynnik, jeśli potrzebujesz, jest zupełnie odrębnym zagadnieniem niż po prostu potrzeba więcej miejsca. Jeśli kodowałeś bezpośrednio do metalu, może ci to ułatwić życie bez posiadania MMU. Chciałbym również zauważyć, że MMU praktycznie nigdy nie jest zewnętrznym komponentem, a raczej kością SoC.
Możesz znaleźć ARM SoCs w wielu rodzinach, które pozwalają na pamięć zewnętrzną od ARM7 w górę, na przykład NXP LPC2212 Series nie mówi, że jest najlepszy, tylko pierwszy ARM7 SoC, który pojawił się w Google z interfejsem pamięci zewnętrznej, istnieje wiele opcji .
Zwróciłbym większą uwagę na funkcje różnych rdzeni w rodzinach ARM, ponieważ prawie wszystkie z nich można znaleźć w SoC z zewnętrznymi kontrolerami pamięci.
Teraz, jaki typ pamięci potrzebujesz i jak ją uruchomić, zależy to od wybranego SoC i jakiej pamięci obsługuje zewnętrzny kontroler pamięci. Na przykład podłączony ARM7 SoC i obsługuje zewnętrzną pamięć SRAM oraz pamięć flash i ROM i obsługuje do 4 banków 16 MB, dzięki czemu można podłączyć do niej zewnętrzną pamięć flash i pamięć SRAM.
Możesz użyć oddzielnej pamięci RAM i pamięci flash. Istnieją również pakiety o nazwie MCP (Multi Chip Package), które mogą zawierać zarówno pamięć flash, jak i ram w 1 pakiecie. To, jak wybierzesz te urządzenia, zależy od wielu czynników, musisz dokładniej określić swoją aplikację.
To, jak łatwo jest to podłączyć, zależy od potrzebnej prędkości. Większość zewnętrznych kontrolerów pamięci ma programowalne częstotliwości zegara. Częstotliwości zegara interfejsu pamięci mogą być bardzo wysokie, co najmniej 10 MHz i prawdopodobnie znacznie wyższe. Krótko mówiąc, najprawdopodobniej coś takiego nie ma, musisz zaprojektować płytkę drukowaną i zwrócić szczególną uwagę na problemy z integralnością sygnału dla tych linii.
Najlepszym wyborem jest wybranie rdzenia, z którym chcesz grać, i znalezienie jednej z wielu dostępnych tam kart rozwoju z pamięcią zewnętrzną.
źródło
Większa seria procesorów STM32 (32-bitowy rdzeń Cortex-M3) ma FSMC, który jest elastycznym kontrolerem pamięci statycznej. Dzięki temu możesz podłączyć Flash, RAM i inne urządzenia peryferyjne pamięci, takie jak LCD i tym podobne.
Mogę polecić STM32F103ZET6, jak również powiedział tcrosley, i możesz dostać płytę programistyczną, w tym Flash i Sram w serwisie eBay za 68 USD - http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&item=220619908411
źródło
Ostatnio miałem podobny wymóg dotyczący nowego projektu i wybrałem STMicro STM32F103ZET6 (32-bitowy ARM Cortex-M3), z 512 KB wewnętrznej pamięci Flash i 64 KB wewnętrznej pamięci RAM za około 10 USD w ilości. Ma kontroler pamięci, który może adresować do 64 MB pamięci zewnętrznej (26 bitów adresu). Dostępne w 144-pinowym pakiecie LQFP. (Nie lubię używać BGA do prototypów.) Będę łączył go z 2 MB Sypką Cypress, bez żadnego innego kleju (bez multipleksowania).
źródło
Może Atmel AT91SAM9G20 ?
To trochę bestia (217-pinowy pakiet BGA), ale to świetny układ w tej cenie. Jeśli szukasz czegoś bardziej przyjaznego człowiekowi, może wypróbuj Atmel AT91M42800A . Myślę, że to najmniejszy MCU, który ma sprzęt pamięci zewnętrznej, przynajmniej od Atmel. To 144-pinowy pakiet LQFP.
Atmel ma selektor parametryczny: http://www.atmel.com/dyn/products/param_table_v2.asp?family_id=605&OrderBy=part_no&Direction=ASC
(Chyba powinienem dodać, że nie pracuję dla Atmel; akurat znam ich rzeczy.)
źródło