Répondre à la discussion
Page 1 sur 2 1 DernièreDernière
Affichage des résultats 1 à 30 sur 48

lire et ecrire dans une eeprom externe par un pic en C



  1. #1
    spilz

    Red face lire et ecrire dans une eeprom externe par un pic en C


    ------

    bonjour à tous

    je me lance dans la programmation de pics 12Fxxx pour réaliser un projet personnel et j'ai besoin d'utiliser une memoir externe pour sauvegarder certaines données mais je n'arrive pas à comprendre la syntaxe en C pour lire et ecrire dessus ( 24lc16 )

    pour l'instant je ne cherche pas à tout connaitre mais juste realiser ces deux opperations de base.

    est-ce que quelqu'un pourrait m'aider? s'il vous plait

    -----

  2. Publicité
  3. #2
    HULK28

    Re : lire et ecrire dans une eeprom externe par un pic en C

    Salut,

    que cherches-tu précisemment, comment on écrit et lit dans une E²PROM externe, ou un code fonctionnel en C?
    Avec quel compilateur travailles-tu?
    Le génie est fait d'1 pour cent d'inspiration et de 99% pour cent de transpiration. Edison

  4. #3
    spilz

    Re : lire et ecrire dans une eeprom externe par un pic en C

    je cherche un code pratique pour ecrire dans l'eeprom, mais je ne connais pas comment fonctionne le systeme d'adress du moment que je peux récuperer la valeur ça me va

    compilateur : PCWH

  5. #4
    Invité

    Re : lire et ecrire dans une eeprom externe par un pic en C

    hello,

    si tu ne veux pas être cuit dans 30 jours avec la version démo de CCS, télécharge le compilateur mikroC pour pic :

    http://www.mikroe.com/en/compilers/mikroc/pic/

    gratuit jusqu'à 2kmots sans limitation de durée, IDE + librairies complètes dont I2C soft + hard avec des exemples de code pour les EPPROM séries.
    et en plus je pourrai t'aider !

    A+,

    Bruno

  6. #5
    spilz

    Re : lire et ecrire dans une eeprom externe par un pic en C

    sur le compilateur il y a aussi des exemples mais je ne comprends pas comment ça fonctionne:

    Examples:
    for(i=0x1000;i<=0x1fff;i++) {

    value=read_adc();

    write_external_memory(i, value, 2);

    delay_ms(1000);

    }


    avec:
    Syntax:
    write_external_memory( address, dataptr, count )

    mais je ne comprends ce qu'est l'address(plus exactement ce que je dois mettre concretement)
    de meme pour count

    je ne vois pas non plus comment les connecter entre eux, où récuperer clk sur le pic?

  7. A voir en vidéo sur Futura
  8. #6
    Jack

    Re : lire et ecrire dans une eeprom externe par un pic en C

    mais je ne comprends ce qu'est l'address(plus exactement ce que je dois mettre concretement)
    Si tu regarde la doc de ton eeprom, tu verras qu'elle est connectée par un bus I2C, et que l'adresse est tout simplement celle du composant. Elle peut être fixée par les pattes A0, A1 et A2 qui représentent les bits de poids faibles de l'adresse.
    Les autres sont fixés à 1010.
    L'adresse finale est donc égale à 1010(A2)(A1)(A0)
    Ca permet d'utiliser jusqu'à 8 composants.

    de meme pour count
    Je suppose que c'est la longueur du paquet de données à transférer.

    je ne vois pas non plus comment les connecter entre eux, où récuperer clk sur le pic?
    c'est qui eux???
    le pic et l'eeprom?
    Si c'est çà, et bien par un bus I2C. Il faut le déclarer lorsque tu crées ton nouveau projet avec le compilateur CCS.

    A+

  9. Publicité
  10. #7
    HULK28

    Re : lire et ecrire dans une eeprom externe par un pic en C

    Salut,

    quelques éléments pour t'aider à démarrer.


    Citation Envoyé par spilz Voir le message
    sur le compilateur il y a aussi des exemples mais je ne comprends pas comment ça fonctionne:

    [I]Examples:
    for(i=0x1000;i<=0x1fff;i++)
    Ceci est un compteur qui va incrémenter de 0x1000 (départ de la boucle) à 0x1FFF (fin de la boucle) par pas de 1 (condition d'incrémentation de la boucle) dans la mémoire de l'E²PROM par exemple.


    Citation Envoyé par spilz Voir le message
    {

    value=read_adc();
    }
    on met dans value le contenu retourné par la fonction "read_adc" qui visiblement lit le contenu du convertisseur CAN.


    Citation Envoyé par spilz Voir le message
    write_external_memory(i, value, 2);
    fonction d'écriture de la mémoire E²PROM.


    Citation Envoyé par spilz Voir le message

    delay_ms(1000);
    Délai nécessaire à l'écriture dans la mémoire.

    Voilà pour t'aider un peu.
    Je te conseille de regarder quand même dans un bouquin sur le C, et le mécanisme d'écriture d'une E²PROM.

    @+
    Le génie est fait d'1 pour cent d'inspiration et de 99% pour cent de transpiration. Edison

  11. #8
    spilz

    Re : lire et ecrire dans une eeprom externe par un pic en C

    desolé je débute donc j'ai quelques manque sur les bases

    donc si je comprends bien, si je n'ai qu'une valeur à enregistrer, je peux mettre par exemple (a0) (a1) (a2) à la masse, et dans address je mets 0101 ou 010100 ?

    pour le branchement, c'est l'i2c tu as tout a fait raison, je n'avais pas bien compris

  12. #9
    spilz

    Re : lire et ecrire dans une eeprom externe par un pic en C

    il faut obligatoirement 1seconde pour ecrire dans la memoir?
    Dernière modification par spilz ; 26/08/2006 à 11h01.

  13. #10
    spilz

    Re : lire et ecrire dans une eeprom externe par un pic en C

    pour l'address 0101 ou 0101000 ? j'avais oublié un 0

  14. #11
    Jack

    Re : lire et ecrire dans une eeprom externe par un pic en C

    donc si je comprends bien, si je n'ai qu'une valeur à enregistrer, je peux mettre par exemple (a0) (a1) (a2) à la masse, et dans address je mets 0101 ou 010100 ?
    0101000

    A+

  15. #12
    Jack

    Re : lire et ecrire dans une eeprom externe par un pic en C

    il faut obligatoirement 1seconde pour ecrire dans la memoir?
    non, c'est compris dans le code de la fonction "write_external_memory".

    C'est tout simplement pour faire une mesure toutes les secondes.

    C'est un bout de code que tu as récupéré car tu n'as pas l'air de savoir ce que tu fais?

    A+

  16. Publicité
  17. #13
    Jack

    Re : lire et ecrire dans une eeprom externe par un pic en C

    ahhhhh! j'ai compris, c'est l'exemple de la doc.

    Je crois que tu es mal parti.

    Pour ton eeprom, il faut utiliser les fonctions I2C. Je te conseille de t'informer sur les principes de fonctionnement de ce bus.

    A+

  18. #14
    spilz

    Re : lire et ecrire dans une eeprom externe par un pic en C

    et si je veux utiliser une autre address, je dois changer aussi l'etat logique de (a0) (a1) (a2) ?

    exemple: 0101001 je laisse (a1) et (a2) à la masse et (a0) à V+

    ?

  19. #15
    Jack

    Re : lire et ecrire dans une eeprom externe par un pic en C

    c'est çà

    Je viens de regarder la doc et j'avoue ne pas trop saisir le rôle exact de la fonction write_external_memory()

    A+

  20. #16
    spilz

    Re : lire et ecrire dans une eeprom externe par un pic en C

    mais cette ecriture fonctionne avec une eeprom externe ou il faut que j'etudie le fonctionnement exacte de l'i2c?
    ou il me suffit de dire au debut les broches de l'i2c , les relier à l'eeprom et juste ecrire "write_external_memory(i, value, 2); " ?

  21. #17
    Jack

    Re : lire et ecrire dans une eeprom externe par un pic en C

    Je cite la doc:

    Writes count bytes to program memory from dataptr to address. Unlike WRITE_PROGRAM_EEPROM and WRITE_PROGRAM_EEPROM this function does not use any special EEPROM/FLASH write algorithm. The data is simply copied from register address space to program memory address space. This is useful for external RAM or to implement an algorithm for external flash.

    Je n'ai vraiment pas l'impression qu'il s'agit de la fonction qui va te permettre d'envoyer des données dans ton eeprom.

    D'ailleurs, si à première vue le rôle de cette fonction paraissait simple, j'avoue que son utilisation me parait un peu obscure.
    Si un spécialiste passe par là ....

    A+

  22. #18
    spilz

    Re : lire et ecrire dans une eeprom externe par un pic en C

    je fais comment pour ecrire dans une eeprom alors?
    je passe par l'i2c?
    si oui quelle est la syntaxe stp?

    je dois sortir, je reviens à 15h
    merci pour tes infos, à tout à l'heure

  23. Publicité
  24. #19
    Jack

    Re : lire et ecrire dans une eeprom externe par un pic en C

    Comme je te l'ai dit, tu dois comprendre la base du fonctionnemenr de l'I2C sinon tu ne vas pas avancer.

    A+

  25. #20
    spilz

    Re : lire et ecrire dans une eeprom externe par un pic en C

    je viens d'etudier en vitesse le fonctionnement de l'i2c, et j'ai trouvé comment ecrire, mais la question que je me pose, et je n'ai pas encore eu le temps de chercher, c'est est-ce que tout les pics ont l'i2c?
    si oui, comment determiner les broches correspondantes,
    si non, liste des pic 12fxx qui l'ont

    merci pour votre aide

  26. #21
    Jack

    Re : lire et ecrire dans une eeprom externe par un pic en C

    Non, tous les pics ne l'ont pas, mais CCS permet de l'émuler sur n'importe quelle patte dans ce cas.

    A+

  27. #22
    spilz

    Re : lire et ecrire dans une eeprom externe par un pic en C

    je viens de chercher comment l'emuler mais je ne trouve pas, je vais continuer à chercher dans l'aide mais si tu avais directement comment faire ce serait sympa

  28. #23
    Jack

    Re : lire et ecrire dans une eeprom externe par un pic en C

    Il faut créer un nouveau projet à l'aide du "wizard", tu sélectionnes l'onglet "communication" et tu coches la case I2C.

    A+

  29. #24
    dannydan

    Re : lire et ecrire dans une eeprom externe par un pic en C

    sinon pour les pic qui ont l'I2C en hard il suffit de regarder
    dans le datasheet le shema avec le nom des pattes
    du pic et il y en a deux qui s'appelle 'sda' et 'scl' :

    ici regarde les pattes 19 et 11 !
    Donc pour un pic qui fait de l'i2c hard du doit te servir
    de ces patte si tu utilise le module ,
    sinon en cas de pic qui n'as pas l'i2c en hard c'est toi qui
    choisi sur quel pate tu va "emuler" l'i2c !
    apres faut voir quel sont les pic 12Fxxx qui ont l'i2c
    ici :
    http://www.microchip.com/ParamChartS...g=en&pageId=74
    voir la colone interface !

  30. Publicité
  31. #25
    spilz

    Re : lire et ecrire dans une eeprom externe par un pic en C

    la case n'est pas accessible pour le 12f509 par exemple

  32. #26
    spilz

    Re : lire et ecrire dans une eeprom externe par un pic en C

    apparement il n'y a aucun 12fxxx avec l'i2c à l'origine
    mais je n'arrive pas à activer la case i2c dans le nouveau projet de ccs

  33. #27
    Jack

    Re : lire et ecrire dans une eeprom externe par un pic en C

    effectivement, l'émulation de l'I2C n'est pas prévue pour toutes les versions. Bizarre.

    Essaie de trouver un programme d'émulation quelque part, car je ne te conseille pas de l'écrire toi-même. Je l'ai fait pour un autre µC et il faut un peu de temps et de maîtrise.

    A+

  34. #28
    spilz

    Re : lire et ecrire dans une eeprom externe par un pic en C

    je vais chercher, si quelqu'un a, je suis preneur,

    merci pour votre aide

  35. #29
    spilz

    Re : lire et ecrire dans une eeprom externe par un pic en C

    j'ai l'impression que la case i2c dans le compilateur ccs n'est accessible que pour les pics ayant deja l'i2c

    donc si quelqu'un trouve une methode pour maitre l'i2c sur un pic qui ne l'a pas, je suis tout à fait preneur

  36. #30
    HULK28

    Re : lire et ecrire dans une eeprom externe par un pic en C

    Salut,

    désolé pour l'absence prolongée, mais je vois que Jack s'y est collé.

    Pour revenir à notre sujet, les PIC 12FXX ne comportent pas d'I2C pour la bonne raison que ces µC n'ont que 8 pattes et qu'ils n'ont pas été prévus pour supporter un coeur I2C.

    Il serait plus judicieux de partir sur un PIC16F628 qui est plus adapté pour recevoir plus de code ou un des PIC16F87X qui eux contiennent un I2C hard.

    Sinon si quelqu'un a un descriptif de la fonction write_external_memory(), je pourrai peut-être en dire plus sur son rôle.
    Pour ma part je travaille avec HT-PICC qui ne contient pas de librairies similaires.
    Le génie est fait d'1 pour cent d'inspiration et de 99% pour cent de transpiration. Edison

Page 1 sur 2 1 DernièreDernière

Discussions similaires

  1. Lire & écrire dans un EEPROM 24CL64
    Par mti9er dans le forum Électronique
    Réponses: 2
    Dernier message: 12/05/2007, 20h46
  2. Adapter une mémoire EEPROM externe à un PICBASIC 3B
    Par thomasalbert1993 dans le forum Électronique
    Réponses: 1
    Dernier message: 28/12/2006, 10h20
  3. remplacer une disquette par une eeprom?
    Par cavapas dans le forum Électronique
    Réponses: 0
    Dernier message: 05/08/2006, 17h04
  4. transfert fichier dans une eeprom
    Par cavapas dans le forum Électronique
    Réponses: 22
    Dernier message: 17/06/2006, 01h08
  5. Ecrire dans une EEPROM 24C16
    Par JCS dans le forum Électronique
    Réponses: 2
    Dernier message: 18/04/2006, 16h18
Découvrez nos comparatifs produits sur l'informatique et les technologies.