Acabei de concluir um projeto usando o chip LPC2132, mas tive problemas com o uso de 64kb de RAM.
Para o meu próximo projeto, eu gostaria de usar algo que possa fazer referência a um chip de memória externo muito maior. Que tipo de ARM pode fazer isso e o que preciso fazer para que os dois dispositivos falem?
Respostas:
Você não precisa de um MMU para memória RAM externa, o fator determinante para isso é um problema completamente separado da necessidade de mais espaço. Se você codificou diretamente para o metal, isso pode facilitar sua vida por não ter uma MMU. Eu também gostaria de observar que uma MMU praticamente nunca é um componente externo, mas sim no dado do SoC.
Você pode encontrar SoCs ARM em muitas famílias que permitem a memória externa do ARM7, por exemplo, a série NXP LPC2212 não dizendo o melhor, apenas o primeiro SoC ARM7 que surgiu no Google com uma interface de memória externa, existem muitas opções .
Eu prestaria mais atenção aos recursos dos vários núcleos nas famílias ARM, pois você pode encontrar quase todos eles nos SoCs com controladores de memória externos.
Agora, quanto ao tipo de memória que você precisa e como fazê-la funcionar, isso depende do SoC que você escolher e de qual memória o controlador de memória externo suporta. Por exemplo, o ARM7 SoC i linked suporta SRAM externa, bem como flash e roms e suporta até 4 bancos de 16 MB, para que você possa conectar flash externo e SRAM a ele ao mesmo tempo.
Você pode usar RAM separado e ICs flash. Existem também pacotes chamados MCP (Multi Chip Package) que podem incluir flash e ram em um pacote. Como você escolhe esses dispositivos depende de muitos fatores, você precisa ser mais específico sobre seu aplicativo.
A facilidade de conexão depende da velocidade que você precisa. A maioria dos controladores de memória externa possui taxas de clock programáveis. As taxas de clock da interface de memória podem ser muito altas, pelo menos, 10 MHz e provavelmente muito mais altas. Em suma, é muito provável que você não faça algo assim, você precisa projetar uma placa de circuito impresso e prestar atenção especial aos problemas de integridade de sinal dessas linhas.
Sua melhor aposta é escolher um núcleo com o qual você queira jogar e encontrar uma das muitas placas de desenvolvimento disponíveis com memória externa.
fonte
A série maior de processadores STM32 (núcleo Cortex-M3 de 32 bits) possui um FSMC, que é um controlador de memória estática flexível. Com isso, você pode conectar Flash, RAM e outros periféricos de memória, como LCD e outros.
Posso recomendar o STM32F103ZET6 como tcrosley também disse, e você pode obter uma placa de desenvolvimento incluindo flash e sram no ebay por US $ 68 - http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&item=220619908411
fonte
Recentemente, eu tinha um requisito semelhante para um novo projeto e escolhi o STMicro STM32F103ZET6 (ARM Cortex-M3 de 32 bits), com 512K de Flash interno e 64K de RAM interna por cerca de US $ 10 em quantidade. Possui um controlador de memória que pode endereçar até 64 MB de memória externa (26 bits de endereço). Disponível em um pacote LQFP de 144 pinos. (Eu não gosto de usar BGA para protótipos.) Estarei fazendo interface com uma Cypress SRAM de 2 MB, sem nenhuma outra cola necessária (sem multiplexação).
fonte
Talvez um Atmel AT91SAM9G20 ?
É um pouco besta (pacote BGA de 217 pinos), mas é um ótimo chip pelo preço. Se você está procurando algo um pouco mais amigável ao ser humano, talvez experimente o Atmel AT91M42800A . Eu acho que esse é o menor MCU que possui hardware de memória externa, pelo menos da Atmel. É um pacote LQFP de 144 pinos.
A Atmel possui um seletor paramétrico: http://www.atmel.com/dyn/products/param_table_v2.asp?family_id=605&OrderBy=part_no&Direction=ASC
(Acho que devo acrescentar que não trabalho para a Atmel; estou familiarizado com as coisas deles.)
fonte