Probleme plage adresse mémoire FLASH PIC18
Répondre à la discussion
Affichage des résultats 1 à 20 sur 20

Probleme plage adresse mémoire FLASH PIC18



  1. #1
    invite3d4f2ff3

    Probleme plage adresse mémoire FLASH PIC18


    ------

    Bonjour,

    Faute de mémoire RAM et EEPROM disponible sur mon PIC18F4525, je souhaiterais utiliser la FLASH pour stocker des variables. Je devrais pouvoir me débrouiller avec mon compilateur pour écrire/lire/effacer par bloques de 64 mais pour cela j'aurais besoin de la plage d'adresse de la FLASH pour ce type de PIC. J'ai consulter la datasheet du PIC18F4525 mais je n'arrive pas a trouver le détail dans l'organisation de la mémoire, pourriez-vous me donner un coup de main?

    Merci

    -----

  2. #2
    invite5637435c

    Re : Probleme plage adresse mémoire FLASH PIC18

    Bonjour,

    pour stocker des variables ?
    Quel genre de variables ?

  3. #3
    invite3d4f2ff3

    Re : Probleme plage adresse mémoire FLASH PIC18

    En gros je veux faire une "pseudo RAM" dans la flash. Je vais donc m'organiser pour stocker des variables de type float par block de 64 (puisque que la flash fonctionne par bloque de 64 pour l'écriture/lecture/erase). Pour ensuite faire des petits calculs en utilisant le contenu de cette flash. Visiblement mon compilateur (MikroC gère la Flash donc c'est que cela doit être faisable), il faut juste que j'indique l'adresse de départ de lecture/écriture/erase mais pour cela il me faut la plage mémoire Flash

  4. #4
    invitea2d82c8f

    Re : Probleme plage adresse mémoire FLASH PIC18

    Salut,
    Oublie pour la pseudo-ram le nombre de cycles lecture-ecriture de la flash est de l'ordre de 100'000.... C'est très vite atteint !!!
    A+

  5. A voir en vidéo sur Futura
  6. #5
    invitea2d82c8f

    Re : Probleme plage adresse mémoire FLASH PIC18

    re,
    N'as tu pas moyen d'optimiser ton code ?
    Quelle est ton application pour utiliser autant de mémoire ?
    A+

  7. #6
    invite29971eb1

    Re : Probleme plage adresse mémoire FLASH PIC18

    Deux solutions:
    - optimiser ton code et réduire le nombre ou la taille de tes variables
    - changer de microcontrôleur et en prendre un avec plus de mémoire

    à la rigueur, voir si on peut greffer une RAM externe sur ton micro actuel.

    Si tes variables sont en fait des constantes, il est effcetivement possible de les loger en Flash, mais pour des variables, ça sera une galère sans nom.

  8. #7
    invite3d4f2ff3

    Re : Probleme plage adresse mémoire FLASH PIC18

    En gros mon application c'est de l'acquisition de température. A la base je n'avais pas prévu d'EEPROM externe pour venir y stocker ces températures, je devais uniquement faire du temps réel. Et là malheureusement on me demande de faire du post traitement. Je dois faire des calculs de pente et de coefficient de corrélation ce qui nécéssite au préalable d'avoir mémoriser les températures. Actullement mon compilateur me dit qu'il me reste 66% de ROM et 71% de RAM. Mais je dois mémoriser 2 voies de température sur 1h de mesure avec un echantillonnage de 1 mesure/s. Donc les mémoires vont être vites saturées....

  9. #8
    Seb.26

    Re : Probleme plage adresse mémoire FLASH PIC18

    Si le cahier des charges changent, c'est normal que la solution change aussi ...

    Si les variations de t° ne sont pas trop rapides, tu peux compresser tes données en RAM :
    - tu enregistre les changements plutôt que d'enregistrer toutes les valeurs
    - tu fait des moyennes sur 30s par exemple

    C'est quoi ces T° ? ... c'est un capteur dehors ou dans un four à refusion ? ...
    << L'histoire nous apprend que l'on apprend rien de l'histoire. >>

  10. #9
    invite3d4f2ff3

    Re : Probleme plage adresse mémoire FLASH PIC18

    Oui tout a fait, c'est une option mais bon il est vrai qu'il y a eu changement du cahier des charges donc je pense que le PCB va suivre aussi. Je cherchait juste à voir si c'était possible. J'étais péssimiste mais bon ça coutait rien d'essayer. Merci quand même pour vos pistes

  11. #10
    invite29971eb1

    Re : Probleme plage adresse mémoire FLASH PIC18

    Tu peux aussi partir d'une température (celle au démarrage), et ensuite ne stocker que la variation.

    Si tu mesures 312, 314, 302, et que tu stockes ces valeurs, tu as besoin de 6 octets (supposons des variables 16 bits);

    Si par contre, tu stockes 312, +2, -10, tu divises le besoin de mémoire par 2, ainsi que les temps de calcul puisque tu ne travailles plus que sur 8 bits au lieu de 16.

  12. #11
    invite23cc3402

    Re : Probleme plage adresse mémoire FLASH PIC18

    Bonjour,

    Une autre approche serait de stocker les données sur une carte mémoire de type MMC/SD. Le compilateur MikroC fournit une librairie pour ces cartes, et tu as ainsi à ta disposition des gigaoctets de données facilement accessibles, que tu peux ensuite transférer sur un ordi si tu veux.

    Marc

  13. #12
    RISC

    Re : Probleme plage adresse mémoire FLASH PIC18

    Salut Pilou,

    La documentation concernant la FLASH interne ne se trouve pas dans la datasheet mais dans le document appelé "Programming specification" que tu trouveras sur la page de ton PIC18F4525.

    Il existe une note d'application dédiée pour l'émulation d'E2PROM dans la FLASH (AN1095).
    L'avantage de cette note d'application c'est qu'elle va maximiser le nombre de cycles de lecture/écriture par un algorithme tournant.

    Une possibilité, est d'utiliser une RAM SPI externe (boitier 8 broches) de 8Koctets ou 32Koctets que tu peux par exemple utiliser comme "buffer intermédiaire". Tu peux ensuite copier de temps en temps la RAM série dans la FLASH interne de ton PIC.
    Si tu utilises un PIC18 avec une plus grande mémoire FLASH (jusqu'à 128K) tu pourras donc avoir plus de cycles d'émulation.

    Une autre possiblité est d'utiliser une E2PROM SPI ou une FLASH SPI externe.

    a+

  14. #13
    invite3d4f2ff3

    Re : Probleme plage adresse mémoire FLASH PIC18

    Merci RISC pour cette soluce, j'y ais pensé, on va dire que c'est mon dernier recours car cela impliquerait que je refasse ma carte mais je garde cette soluce de coté. En revanche je vais me pencher sur l'idée de la carte SD/MMC, il faut juste que j'ai les bonnes broche dispo sur mon PIC qui est déjà quasi saturé, a voir...Merci en tout cas

  15. #14
    invite29971eb1

    Re : Probleme plage adresse mémoire FLASH PIC18

    Citation Envoyé par Pilou81 Voir le message
    Merci RISC pour cette soluce, j'y ais pensé, on va dire que c'est mon dernier recours car cela impliquerait que je refasse ma carte mais je garde cette soluce de coté. En revanche je vais me pencher sur l'idée de la carte SD/MMC, il faut juste que j'ai les bonnes broche dispo sur mon PIC qui est déjà quasi saturé, a voir...Merci en tout cas
    Pas assez de mémoire, pas assez de broches. L'avenir de ton PIC est de plus en plus compromis.

    En tout cas +1 avec la carte SD, la flash interne n'est pas faite pour stocker des données. Là, tu écris sur ta carte, tu la mets dans ton PC pour extraire les mesure et basta.

  16. #15
    invite3d4f2ff3

    Re : Probleme plage adresse mémoire FLASH PIC18

    Bon après consultation de la doc de MikroC, il est vrai que cela semble facilement faisable de brancher une SD/MMC si ce n'est qu'il faut un PORT et demi de dispo. Je pense que je vais plutot me tourner vers une SRAM en série sauf que mes broches SPI de mon PIC sont déjà utilisé pour dialoguer avec un CNA mais bon rien ne m'empèche de la brancher sur mes voies dispo et de faire une routine qui gérera la liaison série...

  17. #16
    invite3d4f2ff3

    Re : Probleme plage adresse mémoire FLASH PIC18

    J'ai peu être trouvé une solution en branchant une FRAM en I2C, j'ai la broche SDA de libre. Mais question, est-il possible d'utiliser 2 fils branchés sur une même broche SCK/SCL car cette broche est déjà utilisée dans mon cas pour une SPI d'un CNA qui est utilisé par intermitence?

  18. #17
    invite29971eb1

    Re : Probleme plage adresse mémoire FLASH PIC18

    Tant que les Chip Select du SPI ne sont pas activés quand tu utilises l'I²C, ça peut passer, mais ça reste de la bidouille

  19. #18
    invite23cc3402

    Re : Probleme plage adresse mémoire FLASH PIC18

    Je ne comprends pas trop Pilou... Les routines de MikroC pour la carte SD sont basées sur SPI. Donc 4 pins sont utilisées: SDO, SDI, SCK et une autre à ton choix pour le ChipSelect. Si tu utilises déjà le SPI pour autre chose, c'est pas grave, ça ne va te coûter qu'une autre pin pour le ChipSelect. T'as juste à appeler de nouveau la fonction SPIx_Init() avec l'autre définition de Chip_Select pour sélectionner l'autre chip.

    Marc

  20. #19
    invite3d4f2ff3

    Re : Probleme plage adresse mémoire FLASH PIC18

    Autant pour moi Melillo, je me suis trompé dans l'aide de MikroC, néanmoins quand je regarde ce qu'il propose comme schéma pour les cartes SD, j'ai ça (cf image), effectivement ça ressemble à de l'SPI mais c'est quoi ces MISO, MOSI etc??? C'est l'équivalent de SDI, SDO??
    Images attachées Images attachées  

  21. #20
    invite23cc3402

    Re : Probleme plage adresse mémoire FLASH PIC18

    Effectivement Pilou, il faut décortiquer un peu l'aide de MikroC, mais voici comment ça marche:

    le MISO va dans le SDI du PIC (c'est le Dout de la carte SD)
    le MOSI va dans le SDO du PIC (c'est le Din de la carte SD)
    le SCK va dans le SCK du PIC
    le CS va dans une pin quelconque du PIC que tu définis dans ton code, comme dans l'exemple suivant (pin RA5):
    sbit Mmc_Chip_Select at LATA5_bit;
    sbit Mmc_Chip_Select_Direction at TRISA5_bit;

    Petit conseil qui peut éviter des mots de tête: commande chez Mikroelektronika leur MMC/SD board: http://www.mikroe.com/eng/products/v.../mmc-sd-board/
    Il y a toute l'électronique là-dessus pour convertir le 5V au 3.3V (requis pour ces cartes mémoires) et tous les condensateurs pour un signal propre.

    Bonne chance!
    Marc

Discussions similaires

  1. Communication SPI : PIC18(5V) <-> Flash ext. (3V)
    Par invite3c35244f dans le forum Électronique
    Réponses: 7
    Dernier message: 10/03/2010, 08h50
  2. Problème mémoire FLASH Atmel AT29LV040A 20TC
    Par inviteb34b0277 dans le forum Électronique
    Réponses: 2
    Dernier message: 21/02/2010, 20h22
  3. Adresse memoire
    Par invitef41f23a0 dans le forum Électronique
    Réponses: 7
    Dernier message: 26/10/2009, 22h15
  4. mémoire Flash
    Par invited7fb64ed dans le forum Matériel - Hardware
    Réponses: 2
    Dernier message: 12/07/2006, 18h47
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...