Il me reste deux modules RAM de 2 Go que j'ai retirés de mon MacBook Pro lors d'une mise à niveau. Je me demandais simplement si ceux-ci étaient utilisables avec, par exemple, un Arduino. Je serais trop débutant pour essayer de le faire maintenant, mais je suis curieux de savoir si c'est possible, ou si c'est juste trop de mémoire pour un microcontrôleur.
arduino
microcontroller
memory
johndeo
la source
la source
Réponses:
Je vais dire non: l'incompatibilité la plus fondamentale est qu'il y a beaucoup trop de broches sur ces modules, même pour pouvoir l'interfacer physiquement avec un Arduino. Idem pour les petits microcontrôleurs similaires. Un ARM Cortex M3 se rapproche, mais peu d'entre eux ont en fait le bus externe nécessaire pour interfacer la RAM de cette façon (je pense).
Mais je vais aller plus loin. En supposant que vous puissiez interfacer la puce à l'Arduino, les tensions requises sont un autre problème de compatibilité électrique de base. Je pense que ces modules RAM utilisent quelque chose d'étrange comme 2,2 V - pas présent sur une carte Arduino vanille ou vraiment, tout autre microcontrôleur amateur de base.
En supposant que cela ait été pris en charge, la puce fonctionnerait à peu près comme n'importe quelle autre mémoire externe de l'Arduino. C'est vraiment fait tout le temps - les gens ajoutent de l'EEPROM externe pour stocker des constantes importantes ou des cartes SD / MMC pour le stockage des journaux du serveur Web et autres. Bien sûr, dans ce contexte, les modules RAM ne présentent aucun avantage réel pour l'Arduino. Sa principale caractéristique est la vitesse et l'Arduino (et oui, les autres microcontrôleurs amateurs) ne cassent généralement pas la fréquence d'horloge de 25 MHz. Ils sont trop lents pour se soucier de la vitesse. Et la taille du stockage n'est pas un gros problème, car l'interfaçage avec une carte SD / MMC est nettement plus facile et offre autant d'espace pour jouer.
Donc, même si c'était possible, ce ne serait pas vraiment conseillé.
la source
Je dirais non, non sans coller un fpga de bonne taille (nombre de broches) entre les deux, le fpga parle à la mémoire et le microcontrôleur parle au fpga en utilisant un schéma de pagination.
la source
Vous pourriez peut-être utiliser un système de verrous pour permettre à quelque chose comme un arduino de générer 32 bits d'adresse, et vous pourriez probablement concevoir un schéma pour générer les cycles de rafraîchissement, mais cela n'aurait presque aucun intérêt, sauf en tant que technique exercice.
Le circuit d'interface serait probablement la partie la plus complexe du système résultant, et il y aurait peu de valeur pratique dans le résultat; l'arduino ne serait pas en mesure d'exécuter du code à partir de la RAM, le stockage serait volatile et consomme probablement plus d'énergie que l'arduino également. Si vous souhaitez stocker des données, une EEPROM SPI est probablement une bien meilleure solution.
la source
Si vous regardez les fiches techniques des puces DRAM, il y a une vitesse d'horloge minimale de quelque 50 MHz + pour la DDR2. Donc non, vous ne pourrez pas vous connecter avec eux avec un microcontrôleur (à moins qu'il n'ait un support matériel intégré).
la source
La réponse courte est non.
L'Arduino ne peut pas piloter l'interface mémoire DDR ou DDR2. Vous pourriez faire un contrôleur DDR / DDR2 avec une interface SPI avec un FPGA, mais c'est une entreprise importante.
la source
Vous auriez besoin d'un pilote basse tension (SSTL) et d'un moyen de contrôler environ 100 canaux (chaque différentiel, donc environ 200 broches. Pensez BGA.)
La plupart des DRAM doivent être actualisées à au moins 1 kHz et probablement davantage pour avoir un faible taux d'erreur sur les bits. Cela formera alors une tâche d'arrière-plan majeure et utilisera la majeure partie de la puissance de traitement préalable de l'Arduino, s'il est même possible de rafraîchir la mémoire à un tel rythme.
Cependant, avec certains microcontrôleurs, par exemple PIC24F / H / dsPIC33F, ils prennent en charge une interface de bus maître parallèle, qui permet d'accéder à certains types de SRAM parallèle. Il y a même un support avec C, car cette mémoire externe peut être mappée sur plusieurs variables de code et même des blocs qui combinent des mémoires internes et externes. La mémoire externe vous oblige à écrire du code PMB. Cependant, vous ne pourrez traiter que jusqu'à environ 1 Mo.
la source
Non, pas sans interface de pagination entre la mémoire et le MCU. Certains des microcontrôleurs AVR ont en fait une interface de mémoire externe intégrée - Atmega2560, par exemple (voir la section 8 de la fiche technique ATmega640 / 1280/1281/2560/2561). Mais l'espace d'adressage est mesuré en kilo-octets, pas en gigaoctets.
la source