aide a initialiser le module MSSP pour programmer l'eeprom 93cxxx
Répondre à la discussion
Affichage des résultats 1 à 6 sur 6

aide a initialiser le module MSSP pour programmer l'eeprom 93cxxx



  1. #1
    LABTOOL48

    aide a initialiser le module MSSP pour programmer l'eeprom 93cxxx


    ------

    bonjour

    j'ai besoin de l'aide pour lire et ecrire les eeprom 93cxxx j'ai avec ce petit code pour ecrire la donne 0x5a dans l'adresse 0x10 mais ça na pas marché si vous pouvez m'aider a initialiser les registes pour communiquer avec les eeprom spi et merci d'avance pour votre l'aide voici le code et le pdf de l'eeprom 93xxxx

    /****************************** ****************************** *****************/
    #include <htc.h>
    #define _XTAL_FREQ 4000000
    /****************************** ****************************** *****************/
    __CONFIG (XT & WDTDIS & PWRTEN & BORDIS & WRTEN & LVPDIS & DUNPROT & DEBUGEN);
    /****************************** ****************************** *****************/
    typedef unsigned char byte; // unsigned char = byte

    #define select RC7



    /******** déclaration des constantes et variables ****************************/
    static byte buffe;

    /******** déclaration fonctions ****************************** ****************/
    void init_spi(void);
    byte output_spi(byte);

    /****************************** ****************************** *****************/
    /************************** programme principal ******************************/
    /****************************** ****************************** *****************/

    void main()
    {
    void init_spi(void);
    buffe = output_spi(0x0a);
    buffe = output_spi(0x10);
    buffe = output_spi(0x5a);

    while(1)
    {
    NOP();
    }
    }
    /******** init spi ****************************** *****************************/
    void init_spi(void)
    {
    SSPSTAT = 0x40; // 0b01000000;
    SSPCON = 0x00; // 0b00000001; CKP bit4 = 0 vitesse egale 0001 = 250khz
    TRISC = 0x10; // 0b00010000;
    PORTC = 0;
    select = 0;
    }

    /******** output spi ****************************** ***************************/
    byte output_spi(byte octet)
    {
    SSPEN = 1;
    SSPIF = 0;
    select = 1;
    SSPBUF = octet;
    while(SSPIF) continue;
    select = 0;
    return SSPBUF;
    }

    -----
    Images attachées Images attachées

  2. #2
    LABTOOL48

    Re : aide a initialiser le module MSSP pour programmer l'eeprom 93cxxx

    bonjour

    voici a nouveau mon code j'ai vérifier tous mais il na pas marcher
    je pense que j'ai un problem avec la pin de select esclave car il reste toujour a 2.4v que normalment elle remet a zero apres l'ecriture

    /****************************** ****************************** *****************/
    /************************ j'utilise le pic16f876A ****************************/
    #include <htc.h>
    #define _XTAL_FREQ 4000000
    /****************************** ****************************** *****************/
    __CONFIG (XT & WDTDIS & PWRTEN & BORDIS & WRTEN & LVPDIS & DUNPROT & DEBUGEN);
    /****************************** ****************************** *****************/
    typedef unsigned char byte; // unsigned char = byte

    /******** définiton de constantes pour bus spi ****************************** */
    #define select RC7

    /******** déclaration des constantes et variables ****************************/
    static byte buffe;

    /******** déclaration fonctions ****************************** ****************/
    void init_spi(void);
    byte output_spi(byte);

    /****************************** ****************************** *****************/
    /************************** programme principal ******************************/
    /****************************** ****************************** *****************/

    void main()
    {
    void init_spi(void);
    buffe = output_spi(0x0a); // envoyer la command write
    buffe = output_spi(0x10); // envoyer l'adresse eeprom 0x10
    buffe = output_spi(0x5a); // envoyer la donnée a ecrire a l'adresse 0x10

    while(1)
    {
    NOP();
    }
    }
    /******** init spi ****************************** *****************************/
    void init_spi(void)
    {
    SSPSTAT = 0x40; // 0b01000000; SMP=0 CKE=1
    SSPCON = 0x00; // 0b00000000; b4 CKP=0 SSPMX=0000-250khz
    TRISC = 0x10; // 0b00010000; SDO=0 SCK=0 SDI=1
    PORTC = 0;
    select = 0;
    }

    /******** output spi ****************************** ***************************/
    byte output_spi(byte octet) // fonction de transmition spi bus
    {
    SSPEN = 1; // active le module SSP
    select = 1; // select chip pin portc bit RC7
    SSPBUF = octet; // l'octet de données a transférer
    while(BF) continue; // tester si le flag BF est positionné
    select = 0; // désselectionner l'esclave
    return SSPBUF; // return data a mon programme principal
    }
    Dernière modification par LABTOOL48 ; 11/04/2010 à 06h08.

  3. #3
    RISC

    Re : aide a initialiser le module MSSP pour programmer l'eeprom 93cxxx

    Salut,

    Sous quelle tension Vdd fonctionnes-tu ?
    Schéma électronique ?

    a+

  4. #4
    LABTOOL48

    Re : aide a initialiser le module MSSP pour programmer l'eeprom 93cxxx

    bonjour
    merci bcp pour la reponse

    Sous quelle tension Vdd fonctionnes-tu ?
    alimentation 5v

    Schéma électronique ?
    j'ai utilisé la meme schéma indiquer dans datasheet de microchip mais maintenant j'ai changer tous car j'ai telechargé hier le datasheet de l'eeprom 93CS46N que j'ai maintent sur la main j'ai découverer qu'il sont pas la meme et j'ai placé la pin PRE a la masse et PE au 5v
    et pour le coté soft il me faut deux octet en mode 16bits pour une seule adresse il faut envoyer dabord la command WEN=110000 puis la command WRITE=000001 suivé par l'adresse 00 et apres les donnée en 16bits l'octet fort puis l'octet faible, s'il vous revoir le pdf de l'eeprom 93cs46n et dis moi quoi faire exactement
    Images attachées Images attachées

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

    Re : aide a initialiser le module MSSP pour programmer l'eeprom 93cxxx

    bonjour

    voici ce que j'ai trouvé sur net et je pense que le bus spi utilisé dans le module MSSP n'est compatible avec l'eeprom 93cs46n
    ;***************************** **************

    wen: ;enable writing
    clr pre
    setb pe
    setb cs
    nop
    clr sk
    setb di ;the start bit
    setb sk
    clr sk
    clr di ;a '0'
    setb sk
    clr sk
    clr di ;a '0'
    setb sk
    clr sk
    setb di ;a '1'
    setb sk
    clr sk
    setb di ;a '1'
    setb sk
    clr sk
    clr di ;a '0'
    setb sk
    clr sk
    clr di ;a '0'
    setb sk
    clr sk
    clr di ;a '0'
    setb sk
    clr sk
    clr di ;a '0'
    setb sk
    clr cs
    clr pre
    ret
    cette routine perdre un cycle d'heurloge pour le bit de start avan d'envoyer la command enable write pas comme montré dans la doc de microchip
    Images attachées Images attachées  
    Dernière modification par LABTOOL48 ; 13/04/2010 à 08h46.

  7. #6
    LABTOOL48

    Unhappy Re : aide a initialiser le module MSSP pour programmer l'eeprom 93cxxx

    bonjour

    aide moi s'il vous plait seulement pour la pin de selectchip d'apres le changement de la pic j'ai trouvé que le probleme été dans la fonction main() c'est elle qui ne fait auqu'une appel a mes fonction quand j'ecrire ce deux lignes de code dans le programme principal le pic travail et tous le portb se trouve a zero volt
    TRISB = 0x00;
    PORTB = 0x00
    par contre quand je met ces deux lignes dans la fonction init_spi() le portb se trouve a 2,4v je trouve ça un peu bizar c'est quel qu'un de vous peut m'aide et merci d'avance

Discussions similaires

  1. Programmer l'EEPROM du pic sur VSM PROTEUS
    Par invite7f7c351e dans le forum Électronique
    Réponses: 5
    Dernier message: 14/02/2013, 05h30
  2. aide pour programmer le pic16f876
    Par spray_kim dans le forum Électronique
    Réponses: 0
    Dernier message: 27/05/2009, 15h16
  3. Programmer en C la gestion d'un module bluetooth LMX9838
    Par invitec415abef dans le forum Électronique
    Réponses: 1
    Dernier message: 13/06/2008, 15h11
  4. Comment programmer CAN pour pic 16F876? + peu donner aide pour typons...
    Par invite07466868 dans le forum Électronique
    Réponses: 0
    Dernier message: 26/05/2008, 21h23
  5. aide pour programmer pic16f84A
    Par inviteedeac9b0 dans le forum Électronique
    Réponses: 7
    Dernier message: 24/04/2006, 19h20
Découvrez nos comparatifs produits sur l'informatique et les technologies.