[Programmation] PIC16 manque de memoire programme
Répondre à la discussion
Affichage des résultats 1 à 17 sur 17

PIC16 manque de memoire programme



  1. #1
    Asdrien10

    PIC16 manque de memoire programme


    ------

    Bonjour,

    Je suis bloqué par la capacité de la mémoire programme du 16F877 (8K).
    J'ai essayé d'optimiser mon code mais je n'ai pas encore terminé l'intégralité de mon application.
    Je pense donc migrer vers un uC avec plus de mémoire. J'estime que le double serait amplement suffisant.
    J'ai fais un tour sur le site de microchip et suis tombé sur pas mal de modèle... Beaucoup trop ! Je n'arrive pas à faire un choix optimisé.
    Je souhaite rester sur la famille PIC16.

    En vue de mon application, voici les caractéristiques recherchés :

    Fréquence OSCL 8MHz

    Clavier 8 touches :
    -4 I/O numérique avec interruption sur changement d'état.
    -2 I/O numérique

    Lectures de tensions/courants :
    -4 entrées analogique (conversion sur 10 bits)

    Lecture capteurs externe tout ou rien:
    -4 I/O numérique

    LCD : (cmd 4 bits + RS/RW/E)
    -7 I/O numérique

    control 2 moteurs full bridge :
    2 sorties PWM

    mesure d'unité de tps (s) :
    horloge externe

    Stockage de données :
    EEPROM 256 x 8 bytes minimum

    Si quelqu'un a une référence en tête qui rentre dans ma fourchette, je suis preneur.

    Bien cdt

    -----

  2. #2
    antek

    Re : PIC16 manque de memoire programme

    Au hazard 16F1947.
    Faut se taper le tableau de sélection avec papier crayon !

  3. #3
    spown

    Re : PIC16 manque de memoire programme

    Fais ton trie dépend de ton besoin ici : http://www.microchip.com/maps/microcontroller.aspx

  4. #4
    alainav1

    Re : PIC16 manque de memoire programme

    Bonjour,
    jute une piste
    sans changer de µP on peut peut etre
    multiplexer les I/O avec un 74hc165 (3 fils pour geré des entrées en serie par groupe de 8 ) et 74HC595 ( 3 fils pour des sorties par groupe de 8)
    une memoire I2C pour augmenter la memoire
    on peut aussi sous traiter des fonctions à un petit pic 12F683 le pwm par exemple
    cordialement
    Alain
    Décider de faire, c'est bien . Décider quand, c'est mieux !

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

    Re : PIC16 manque de memoire programme

    On peut aussi s'attaquer directement au problème, le code.
    Vu la description des besoins je subodore un code assez mal écrit, désolé pour la franchise.
    Il faut aussi savoir exploiter l'assembleur dans votre code, je pense que ce n'est pas le cas.
    8k de code est déjà très important à la vue des besoins décrits.
    Quitte à changer de PIC au pire partez sur un PIC18 souvent moins cher qu'un PIC16, mais bon....

  7. #6
    paulfjujo

    Re : PIC16 manque de memoire programme

    bonjour,


    Je suis bloqué par la capacité de la mémoire programme du 16F877 (8K).
    je viens juste d'etre confronté au meme probleme ..
    ma solution : 18F4685 compatible pin à pin
    96K flash au lieu de 8K et 3368 bytes Ram au lieu de 368 !
    avec un bootloader occupant 200 bytes en fond de memoire .

  8. #7
    Asdrien10

    Re : PIC16 manque de memoire programme

    Bonjour,

    J'ai retenue le 16F1519 qui semble correspondre à mes besoins.
    Merci pour le lien spown.
    alainav1 : Je ne souhaite pas utiliser de circuit annexe mais je garde tout de même ce procédé sous le coude pour de future applications.
    HULK28 : Je ne prétend pas avoir le code le plus optimal qui soit.
    Pour ma défense :
    -je code en C, donc avec un code mal optimisé à la compilation (HI-TECH).
    -j'utilise pas mal d'opération de div & mult.
    -mon application est plus complexe que les besoins ne le font paraître.

    Bien Cdt

  9. #8
    invite03481543

    Re : PIC16 manque de memoire programme

    Si tu utilises un µC récent comme celui que tu indiques, Hitech ne pourra pas le compiler à mon avis, vu que ce compilateur a disparu depuis des années.
    Tu vas devoir passer sur un autre compilo.
    Te trompes pas dans tes choix une nouvelle fois.
    Utiliser des divisions ne consomme pas beaucoup de place et de ressources à un µC, encore faut-il faire les bonnes divisions (2, 4, ....16, etc)

  10. #9
    invite03481543

    Re : PIC16 manque de memoire programme

    Citation Envoyé par Asdrien10 Voir le message
    -mon application est plus complexe que les besoins ne le font paraître.

    Bien Cdt
    Si tu n'en dis que la moitié, tu ne seras qu'à moitié aidé.

  11. #10
    Asdrien10

    Re : PIC16 manque de memoire programme

    Citation Envoyé par paulfjujo Voir le message
    bonjour,

    je viens juste d'etre confronté au meme probleme ..
    ma solution : 18F4685 compatible pin à pin
    96K flash au lieu de 8K et 3368 bytes Ram au lieu de 368 !
    avec un bootloader occupant 200 bytes en fond de memoire .
    Surdimentionné pour mes besoins. Merci cependant pour se retour.

  12. #11
    Asdrien10

    Re : PIC16 manque de memoire programme

    Citation Envoyé par HULK28 Voir le message
    Si tu utilises un µC récent comme celui que tu indiques, Hitech ne pourra pas le compiler à mon avis, vu que ce compilateur a disparu depuis des années.
    Tu vas devoir passer sur un autre compilo.
    Te trompes pas dans tes choix une nouvelle fois.
    Utiliser des divisions ne consomme pas beaucoup de place et de ressources à un µC, encore faut-il faire les bonnes divisions (2, 4, ....16, etc)
    Aiie ! Quel de n'autre compilo ?
    Bien entendu, mes opérations ne sont pas des multiples de 2
    Dernière modification par Asdrien10 ; 21/03/2016 à 10h52.

  13. #12
    freepicbasic

    Re : PIC16 manque de memoire programme

    Citation Envoyé par paulfjujo Voir le message
    bonjour,




    je viens juste d'etre confronté au meme probleme ..
    ma solution : 18F4685 compatible pin à pin
    96K flash au lieu de 8K et 3368 bytes Ram au lieu de 368 !
    avec un bootloader occupant 200 bytes en fond de memoire .
    Attention les pins sont full compatibles mais l'assembleur est différent et les périphériques aussi !
    C'est compatible mais pas full compatible.
    Si le code contient des procédures asm perso, ou écrit totalement en asm, il faudra toutes les refaire.
    Avec un compilateur ça devrait être plus facile car le compilateur devrait prendre en compte les différences ainsi que la vitesse, mais comme en général on attaque directement les périphériques , ça ne se passera pas forcément bien à 100%.
    A+, pat

  14. #13
    RISC

    Re : PIC16 manque de memoire programme

    Salut,
    Comme l'a dit Antek un PIC16F1947 ou PIC16F1937 sont des produits très proches de celui que tu utilises donc un minimum de changements.
    Je suis certain que le PIC16F1937 peut se mettre en lieu et place du PIC16F877 car je l'ai fait à différentes reprises. Il y aura bien sûr quelques changement à faire au niveau soft mais les périphériques sont sur les même broches.
    Je te conseille d'utiliser le compilateur XC8 Free (successeur gratuit du Hitech depuis 5 ans...). Il compilera ton programme sur les PIC16 récents.
    Grâce aux 14 nouvelles assembleur présentes dans le coeur PIC16F1xxx (49 au total) comparé au 35 instructions des PIC16Fxx ou PIC16Fxxx, le code diminue en général d'environ 20 à 30% (sans optimisation) car ces nouvelles instructions sont pour la plupart destinées à améliorer la compacité du code généré en C ;=)
    a+
    Dernière modification par RISC ; 22/03/2016 à 00h15.

  15. #14
    Asdrien10

    Re : PIC16 manque de memoire programme

    Merci pour ses explications ainsi que se conseil avisé RISC ! Qu'il en soit ainsi !

  16. #15
    Asdrien10

    Re : PIC16 manque de memoire programme

    Bonjour,

    Je rencontre une difficulté sur le 16F1937.
    Je souhaite rendre le watchdog actif (même pendant le mode sleep). Pour cela,je dois écrire sur les bits WDTE1 et WDTE2 du registre CONFIG1 (p 112 de la doc). Problème : aucune trace du registre dans la lib "pic16f1937" de xc8.
    Une solution ?
    Cdt

  17. #16
    terriblement

    Re : PIC16 manque de memoire programme

    Salut Asdrien10,

    le mieux est d'ouvrir un topic pour ta demande.

    Tu peux configurer ces registres à l'aide de la commande #pragma config
    Pour le PIC que j'utilise actuellement ca ressemble à ca:
    #pragma config WDTPS = 512 //Watchdog Timer Postscale Select bits 512*~4ms
    #pragma config WDTEN = OFF //Watch dog timer is always disabled. SWDTEN has no effect.

    ou encore dans un menu de mplabx tu peux les configurer en cochant les cases correspondantes

  18. #17
    Asdrien10

    Re : PIC16 manque de memoire programme

    Merci pour la réponse !
    J'ai lu un peu trop rapidement.. pensant que c'était un registre

Discussions similaires

  1. Blocage de la mémoire à 1Gb par programme W7
    Par Jaunin dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 27/07/2012, 01h34
  2. Mémoire programme insuffisante
    Par invite3746f66a dans le forum Électronique
    Réponses: 0
    Dernier message: 30/04/2012, 09h40
  3. Memoire programme du pic insuffisante help!!
    Par hissokaaaa dans le forum Électronique
    Réponses: 8
    Dernier message: 20/04/2010, 12h35
  4. [Brun] Manque partie d un enregistrement programme sur dvdr 3360
    Par marc.mcd dans le forum Dépannage
    Réponses: 0
    Dernier message: 03/01/2010, 15h10
  5. Manque de mémoire sous R
    Par invite4a2ce35c dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 21/04/2006, 15h46
Découvrez nos comparatifs produits sur l'informatique et les technologies.