Tenho dois módulos restantes de 2 GB de RAM que removi do meu MacBook Pro ao fazer uma atualização. Eu só estava me perguntando se estes eram utilizáveis com, por exemplo, um Arduino. Eu seria muito iniciante para realmente tentar fazer isso agora, mas estou curioso para saber se isso é possível ou se é memória demais para um microcontrolador resolver.
arduino
microcontroller
memory
johndeo
fonte
fonte
Respostas:
Vou dizer não: a incompatibilidade mais básica é que há muitos pinos nesses módulos até que podem fazer a interface física com um Arduino. O mesmo vale para microcontroladores pequenos semelhantes. Um ARM Cortex M3 está se aproximando, mas poucos deles têm o barramento externo necessário para fazer a interface da RAM dessa maneira (eu acho).
Mas eu vou tocar e ir além. Supondo que você possa conectar o chip ao Arduino de alguma forma, outro problema básico de compatibilidade elétrica são as voltagens necessárias. Eu acho que esses módulos de RAM usam algo estranho como 2.2V - não está presente em uma placa Arduino de baunilha ou na verdade, em qualquer outro microcontrolador hobby básico.
Supondo que isso fosse resolvido, o chip funcionaria como qualquer outra memória externa do Arduino. Isso é realmente feito o tempo todo - as pessoas adicionam EEPROM externa para armazenar constantes importantes ou cartões SD / MMC para armazenamento de logs de servidores da Web e outros. Obviamente, nesse contexto, os módulos de RAM não apresentam nenhum benefício real para o Arduino. Sua principal característica é a velocidade e o Arduino (e sim, outros microcontroladores amadores) normalmente não quebram 25MHz na velocidade do relógio. Eles são muito lentos para se preocupar com velocidade. E o tamanho do armazenamento não é um grande problema, pois a interface com um cartão SD / MMC é claramente mais fácil e oferece tanto espaço para brincar.
Portanto, mesmo que fosse possível, não seria realmente aconselhável.
fonte
Eu diria que não, não sem colocar um fpga de bom tamanho (contagem de pinos) no meio, o fpga fala com a memória e o microcontrolador fala com o fpga usando um esquema de paginação.
fonte
É possível usar um sistema de trincas para permitir que algo como um arduino gere 32 bits de endereço, e você provavelmente poderia criar algum esquema para gerar os ciclos de atualização, mas não haveria sentido em fazê-lo, exceto como técnica. exercício.
O circuito da interface provavelmente seria a parte mais complexa do sistema resultante e haveria pouco valor prático no resultado; o arduino não seria capaz de executar o código a partir da RAM, o armazenamento seria volátil e provavelmente consumiria mais energia que o arduino também. Se você deseja armazenar dados, uma SPI EEPROM provavelmente é uma solução muito melhor.
fonte
Se você observar as fichas de chips DRAM, há uma velocidade de clock mínima de algo como 50MHz + para DDR2. Portanto, não, você não poderá interagir com eles com um microcontrolador (a menos que ele tenha suporte de hardware embutido).
fonte
A resposta curta é não.
O Arduino não pode dirigir a interface de memória DDR ou DDR2. Você poderia criar um controlador DDR / DDR2 com uma interface SPI com um FPGA, mas isso é uma tarefa significativa.
fonte
Você precisaria de um driver de baixa tensão (SSTL) e alguma maneira de controlar cerca de 100 canais (cada diferencial, cerca de 200 pinos. Pense em BGA.)
A maioria das DRAM deve ser atualizada pelo menos 1kHz e provavelmente mais para ter uma baixa taxa de erros de bits. Isso formará uma grande tarefa em segundo plano e consumirá a maior parte do poder de processamento do Arduino, se for possível atualizar a memória a essa taxa.
O que você pode ver é que em alguns microcontroladores, por exemplo, PIC24F / H / dsPIC33F, eles suportam uma interface de barramento mestre paralelo, que permite o acesso a alguns tipos de SRAM paralela. Existe até suporte para C, pois essa memória externa pode ser mapeada para várias variáveis de código e até blocos que combinam memórias internas e externas. A memória externa requer que você escreva algum código PMB. Você só poderia endereçar até cerca de 1 MB com isso.
fonte
Não, não sem uma interface de paginação de algum tipo entre a memória e o MCU. De fato, algumas das MCUs do AVR possuem uma interface de memória externa integrada - Atmega2560, por exemplo (consulte a seção 8 da folha de dados ATmega640 / 1280/1281/2560/2561). Mas o espaço de endereço é medido em kilobytes, não em gigabytes.
fonte