Bonjour, je viens vers vous car je n'arrive pas à comprendre pourquoi ma liaison SPI ne fonctionne pas

Je vous explique, j'ai une carte électronique avec un connecteur SD et un PIC32MX795F512L. J'utilise les broches du module SPI 2.

Voila le schéma :

CON_SD.png SD_PIC.png

Oui je sais j'ai fait une belle boulette... La broche SDI du PIC sur la broche SDI de la carte SD et pareil pour SDO

Pour la programmation, j'utilise la bibliothèque de Microchip Solution qui gère la carte SD.

Mon problème est que sur la broche CLK, j'ai mon signal mais rien sur la broche SDI et SDO. J'utilise la broche du PIC SDI2 pour envoyer mes données du coup.

Vous pouvez trouver le code sur le site de Microchip je vous passe les modifs que j'ai faite :

Fichier hardwareProfile.h
Code:
#elif defined MDD_USE_SPI_2
            // Description: SD-SPI Chip Select Output bit
            #define SD_CS               LATGbits.LATG9
            // Description: SD-SPI Chip Select TRIS bit
            #define SD_CS_TRIS          TRISGbits.TRISG9
            
            // Description: SD-SPI Card Detect Input bit
            #define SD_CD               PORTBbits.RB0
            // Description: SD-SPI Card Detect TRIS bit
            #define SD_CD_TRIS          TRISBbits.TRISB0

            // Description: SD-SPI Write Protect Check Input bit
            #define SD_WE               PORTBbits.RB1
            // Description: SD-SPI Write Protect Check TRIS bit
            #define SD_WE_TRIS          TRISBbits.TRISB1
            
            // Description: The main SPI control register
            #define SPICON1             SPI2CON
            // Description: The SPI status register
            #define SPISTAT             SPI2STAT
            // Description: The SPI Buffer
            #define SPIBUF              SPI2BUF
            // Description: The receive buffer full bit in the SPI status register
            #define SPISTAT_RBF         SPI2STATbits.SPIRBF
            // Description: The bitwise define for the SPI control register (i.e. _____bits)
            #define SPICON1bits         SPI2CONbits
            // Description: The bitwise define for the SPI status register (i.e. _____bits)
            #define SPISTATbits         SPI2STATbits
            // Description: The enable bit for the SPI module
            #define SPIENABLE           SPI2CONbits.ON
            // Description: The definition for the SPI baud rate generator register (PIC32)
            #define SPIBRG			    SPI2BRG

            // Tris pins for SCK/SDI/SDO lines

            // Description: The TRIS bit for the SCK pin
            #define SPICLOCK            TRISGbits.TRISG6
            // Description: The TRIS bit for the SDI pin
            #define SPIIN               TRISGbits.TRISG8
            // Description: The TRIS bit for the SDO pin
            #define SPIOUT              TRISGbits.TRISG7
            //SPI library functions
            #define putcSPI             putcSPI2
            #define getcSPI             getcSPI2
            #define OpenSPI(config1, config2)   OpenSPI2(config1, config2)
        #endif
Main.c

Code:
int main(int argc, char** argv) {


    SYSTEMConfig (SYS_FREQ, SYS_CFG_WAIT_STATES | SYS_CFG_PCACHE);


    AD1PCFG = 0xFFFFFFFF;

    CNCONbits.ON = 0;
    U3MODEbits.ON = 0;
    U6MODEbits.ON = 0;
    PMCONbits.ON = 0;
    I2C2CONbits.ON = 0;
    I2C4CONbits.ON = 0;
    ETHCON1bits.ON = 0;
    ETHCON2 = 0;

FSFILE * fp; //pointeur sur la structure d?identification du fichier
char fileName[] = "file.txt";
char text[20] = "Bonjour!";


if (TRUE) //Si carte détectée ?
{
    if (FSInit())//SD card init
     {
         //ouverture en écriture ou création si fichier inexistant
         fp = FSfopen(fileName,"w");
         aff_txt("Initialisation OK");

         if (fp != NULL) //Pas de PB à l?ouverture ?
            {
                 xy_lcd(0,2);
                 aff_txt("Ecriture...");
                 if (FSfwrite (text, 1,8, fp) == 8) //tout a été écrit ?
                 FSfclose(fp);
            }
            else aff_txt("Open Failed");

     }
     else aff_txt("Init Failed");

}
else aff_txt("Carte non détectée");
La carte SD ne s'initialise pas. J'ai fait le test de changer l'état de ma broche manuellement et elle fonctionne.
Merci pour votre soutient