Je viens de terminer un projet en utilisant la puce LPC2132, mais j'ai rencontré des problèmes avec l'utilisation de la totalité des 64 Ko de RAM.
Pour mon prochain projet, j'aimerais utiliser quelque chose qui puisse référencer une puce mémoire externe beaucoup plus grande. Quel type d'ARM peut faire cela et que dois-je faire pour faire parler les deux appareils?
Réponses:
Vous n'avez pas besoin d'une MMU pour la mémoire RAM externe, le facteur déterminant si vous en avez besoin est un problème complètement distinct du simple besoin de plus d'espace. Si vous avez codé directement sur le métal, cela peut en fait vous faciliter la vie sans avoir de MMU. Je voudrais également noter qu'une MMU n'est pratiquement jamais un composant externe mais plutôt sur la puce SoC.
Vous pouvez trouver des SoC ARM dans de nombreuses familles qui autorisent la mémoire externe de l'ARM7, par exemple la série NXP LPC2212 ne dit pas que c'est le meilleur, juste le premier SoC ARM7 qui est apparu dans google avec une interface de mémoire externe, il y a beaucoup d'options .
J'accorderais plus d'attention aux caractéristiques des différents cœurs des familles ARM, car vous pouvez les trouver presque tous dans les SoC avec des contrôleurs de mémoire externes.
Maintenant, en ce qui concerne le type de mémoire dont vous avez besoin et comment le faire fonctionner, cela dépend du SoC que vous choisissez et de la mémoire prise en charge par le contrôleur de mémoire externe. Par exemple, l'ARM7 SoC i linked prend en charge la mémoire SRAM externe ainsi que les flashs et les roms et prend en charge jusqu'à 4 banques de 16 Mo. Vous pouvez donc y raccorder simultanément une mémoire flash externe et une mémoire SRAM.
Vous pouvez utiliser des RAM et des circuits intégrés flash séparés. Il existe également des packages appelés MCP (Multi Chip Package) qui peuvent inclure à la fois flash et ram dans un package. La façon dont vous choisissez ces appareils dépend de nombreux facteurs, vous devez être plus précis sur votre application.
La facilité de connexion dépend de la vitesse dont vous avez besoin. La plupart des contrôleurs de mémoire externe ont des fréquences d'horloge programmables. Les fréquences d'horloge de l'interface mémoire peuvent être très élevées d'au moins 10 MHz et probablement beaucoup plus élevées. En bref, il est très probable que vous ne montiez pas quelque chose comme ça, vous devez concevoir un PCB et porter une attention particulière aux problèmes d'intégrité du signal pour ces lignes.
Votre meilleur pari est de choisir un noyau avec lequel vous voulez jouer et de trouver l'une des nombreuses cartes de développement avec de la mémoire externe.
la source
La plus grande série de processeurs STM32 (cœur Cortex-M3 32 bits) possède un FSMC, qui est un contrôleur de mémoire statique flexible. Avec cela, vous pouvez connecter Flash, RAM et autres périphériques de mémoire comme LCD et autres.
Je peux recommander le STM32F103ZET6 comme l'a également dit tcrosley, et vous pouvez obtenir une carte de développement comprenant flash et sram sur ebay pour 68 $ - http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&item=220619908411
la source
J'ai récemment eu une exigence similaire pour un nouveau projet, et j'ai choisi le STMicro STM32F103ZET6 (ARM 32-bit Cortex-M3), avec 512K de Flash interne et 64K de RAM interne pour environ 10 $ en quantité. Il possède un contrôleur de mémoire qui peut adresser jusqu'à 64 Mo de mémoire externe (26 bits d'adresse). Disponible dans un boîtier LQFP à 144 broches. (Je n'aime pas utiliser le BGA pour les prototypes.) Je vais l'interfacer avec une SRAM Cypress de 2 Mo, sans autre colle requise (pas de multiplexage).
la source
Peut-être un Atmel AT91SAM9G20 ?
C'est un peu bête (boîtier BGA 217 broches), mais c'est une excellente puce pour le prix. Si vous cherchez quelque chose d'un peu plus convivial, essayez peut-être l' Atmel AT91M42800A . Je pense que c'est le plus petit MCU qui dispose d'un matériel de mémoire externe, au moins d'Atmel. Il s'agit d'un boîtier LQFP à 144 broches.
Atmel dispose d'un sélecteur paramétrique: http://www.atmel.com/dyn/products/param_table_v2.asp?family_id=605&OrderBy=part_no&Direction=ASC
(Je suppose que je devrais ajouter que je ne travaille pas pour Atmel; il se trouve que je connais juste leurs affaires.)
la source