Partage
  • Partager sur Facebook
  • Partager sur Twitter

Augmenter la RAM des Atmega

    17 mars 2013 à 18:44:55

    Salut à tous,

    Je me demandais si il était possible d'augmenter la RAM d'un microcontrôleur Atmel à l'aide d'une RAM externe sans que l'utilisateur ne s'en aperçoive.

    Par exemple, imaginons que je veuille déclarer une variable dans mon programme mais que la RAM soit pleine, je voudrais que cette variable soit stockée dans la RAM externe mais que je puisse y accéder comme celles qui sont stockées en interne, est-ce que c'est possible ?

    Si ce n'est pas possible est-ce une bonne idée de créer une classe pour chaque type de variable, qui se charge d'allouer la mémoire nécessaire dans la RAM externe si l'interne est pleine?

    Merci d'avance pour les réponses ;)

    • Partager sur Facebook
    • Partager sur Twitter
      17 mars 2013 à 20:30:28

      Il n'y a pas de raison d'avoir à augmenter la RAM. L'ATTiny (ATTiny4)  le moins équipé, a 30 bytes de RAM. Une variable INT prends 2 bytes, donc jusqu'à 15 variables INT (ça doit être un peu moins, avec les chargements de programmes etc). Le minimum utilisable je dirais c'est l'ATTiny45, qui a 256 Bytes de RAM.

      On pourrait à la limite augmenter l'EEPROM avec un externe, mais je ne sais pas comment faire ^^'

      -
      Edité par Adricolo 17 mars 2013 à 20:34:01

      • Partager sur Facebook
      • Partager sur Twitter
        17 mars 2013 à 23:13:59

        Non il quasiment impossible d'ajouter de la RAM externe type DDR à un microcontroleur qui ne possède pas de controleur pour gérer cette mémoire.

        De plus avoir de la RAM externe impliquerait d'avoir de la RAM à deux niveaux : une super rapide (celle qui est intégrée dans le MCU) et une autre plus lente (l'externe) ce qui provoquerait des problèmes dans l'exécution des programmes.

        Après avec une mémoire externe comme une EEPROM tu peux faire un "swap" manuel (à prévoir dans ton programme) où tu va enregistrer des données dans cette mémoire externe pour "vider" la RAM.
        • Partager sur Facebook
        • Partager sur Twitter
          18 mars 2013 à 1:29:48

          Pas mieux que zeqL, si ce n'est que, plutôt que de l'E2PROM, j'utiliserais plutôt une SRAM, comme celle ci, ce qui affranchis des contraintes de nombre limité d'écritures (j'ai choisi une RAM avec liaison SPI, ce qui est plus simple à interfacer sur un ATmega, en cela que ça évite de prendre 8 pins pour faire un bus. J'ai aussi pris la version 1MB, c'est surement trop pour l'usage qu'on fait habituellement d'un ATmega).

          • Partager sur Facebook
          • Partager sur Twitter
          64kB de mémoire, c'est tout ce dont j'ai besoin
            18 mars 2013 à 2:00:40

            Ça dépend de ce que tu veux stocker, de si ça doit être lent ou rapide.

            Si ça peut être lent, une mémoire en SPI c'est bien. Il y a la flash, la sram, et d'autres trucs un peu plus exotiques genre FeRam, tous ont des compromis différents entre vitesses de lecture, d'écriture, et nombre de cycles d'écriture permis.

            Enfin bon, si tu es à court de mémoire, prends un uC plus gros... le choix est vaste, par exemple il y a le Cortex-M0, le M3, le M4... hein, il y a encore des 8 bits ?

            Par exemple, je viens de finir une stack ethernet/UDP sur un Cortex-M0, 5372 octets de code. Plus un buffer gargantuesque de 16k. C'est ridicule !

            > il quasiment impossible d'ajouter de la RAM externe type DDR 

            Il est impossible pour un bidouilleur d'utiliser de la DDR...

            • Partager sur Facebook
            • Partager sur Twitter
              18 mars 2013 à 18:10:06

              Merci de vos réponses, je demandais juste ça à titre d'information ;)
              • Partager sur Facebook
              • Partager sur Twitter

              Augmenter la RAM des Atmega

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown