Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

Communication entre un dspic est un capteur à l'aide de l'interface spi



  1. #1
    manuj

    Post Communication entre un dspic est un capteur à l'aide de l'interface spi


    ------

    Boujour,

    Je réalise actuellement la connection entre un dspic30f4013 et un capteur angulaire ADIS16201 qui utilise l'interface spi.
    On utilise un quartz de 12 MHz.

    Doc du capteur:
    http://www.analog.com/UploadedFiles/.../ADIS16201.pdf

    Mon problème c'est que je n'arrive pas à recevoir les bonnes données.

    Quand j'envoie l'adresse 0x0C00 (XINCL_OUT) la donnée renvoyée reste en permanence à 0x0000.

    J'ai configurer mon pic de la façon suivante:

    Code:
    #include <p30f4013.h>
    
    #include<spi.h>
    unsigned int datard ;
    
    _FOSC(CSW_FSCM_OFF & HS);
    _FWDT(WDT_OFF);
    _FBORPOR(MCLR_EN & PWRT_OFF);
    _FGS(CODE_PROT_OFF);
    
    
    #define Fcy		12000000/4
    
    
    int main (void){
    
    
    /* Holds the information about SPI configuartion */
    unsigned int SPICONValue;
    /* Holds the information about SPI Enable/Disable */
    unsigned int SPISTATValue;
    
    /* Turn off SPI modules */
    CloseSPI1();
    
    //SPICONValue = 0x4439;
    //SPI1STAT = 0x8002;
    
    /* Configure SPI1 interrupt */
    //ConfigIntSPI1(SPI_INT_DIS);
    /* Configure SPI1 module to transmit 16 bit timer1 value
    in master mode */
    SPICONValue = FRAME_ENABLE_ON & FRAME_SYNC_OUTPUT &
    ENABLE_SDO_PIN & SPI_MODE16_ON &
    SPI_SMP_ON & SPI_CKE_ON & 
    SLAVE_ENABLE_OFF &
    CLK_POL_ACTIVE_HIGH &
    MASTER_ENABLE_ON &
    SEC_PRESCAL_2_1 &
    PRI_PRESCAL_16_1;
    SPISTATValue = SPI_ENABLE & SPI_IDLE_CON & SPI_RX_OVFLOW_CLR;
    
    OpenSPI1(SPICONValue,SPISTATValue );
    
    while (1){
    
    WriteSPI1(0x0C00);
    
    //while(SPI1STATbits.SPITBF);
    //while(!DataRdySPI1());
    
    datard = ReadSPI1();
    
    }
    
    }
    doc capteur:



    Ce que j'envoi:



    D0: sclk
    D1: CS
    D2: Din (du capteur ou Dout du pic)
    D3: Dout ( du capteur ou Din du pic)

    J'ai aussi testé l'adresse 0x1C00 (XINCL_SCALE) j'obtient la valeur 0X0003 alors que d'après la doc du capteur la valeur defaut est 0X0800.

    Je n'arrive pas à savoir d'où viens mon problème.
    Merci de votre aide.

    -----

  2. #2
    manuj

    Re : Communication entre un dspic est un capteur à l'aide de l'interface spi

    Je n'arrive pas a arrêter la clock lorsque cs=1

  3. #3
    RISC

    Re : Communication entre un dspic est un capteur à l'aide de l'interface spi

    Bonjour Manu,

    Quelle version du compilateur C30 utilises-tu (il est important d'utiliser un version récente pour avoir des librairies correctes) ?
    As-tu vérifié que l'horloge SCK est bien controlée par la broche SSx à l'état inactif ?

    N'oublie pas de lire les différentes sections appropriées du Reference Manual de la famille dsPIC30 pour avoir les détails et notamment celle du fonctionnement de l'unité SPI (section 35).
    Tu les trouveras ici : http://www.microchip.com/stellent/id...cName=en010345

    Tu trouveras également des exemples ici :
    www.microchip.com/codeexamples
    www.microchip.com/appnotes

    N'oublie pas non plus de vérifier les silicon errata connues sur ton dsPIC30F4013 pour vérifier que ton PB n'est pas lié à cela (même lien que le lien ci-dessus)

    a+

  4. #4
    manuj

    Re : Communication entre un dspic est un capteur à l'aide de l'interface spi

    Merci de ton aide j'ai resolue mon probleme en desactivant le frame.
    Et j'utilise une autre entrée pour générer le SSx.

Discussions similaires

  1. dsPIC et Bus SPI...
    Par Crepuscule3 dans le forum Électronique
    Réponses: 13
    Dernier message: 28/06/2013, 20h25
  2. SPI multi esclaves entre 16f88 avec PICC de ccs
    Par uranie-mc dans le forum Électronique
    Réponses: 3
    Dernier message: 17/04/2012, 12h14
  3. cherche code pour communication SPI entre deux PICs...
    Par Crepuscule3 dans le forum Électronique
    Réponses: 1
    Dernier message: 24/04/2008, 19h12
  4. communication entre pic et pc
    Par alainav1 dans le forum Électronique
    Réponses: 9
    Dernier message: 16/02/2008, 12h38
  5. capteur temperature avec dsPIC en CCS
    Par sdow dans le forum Électronique
    Réponses: 1
    Dernier message: 11/02/2008, 23h36