PIC 18F4550 : initialisation carte SD impossible
Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

PIC 18F4550 : initialisation carte SD impossible



  1. #1
    fdamien12

    PIC 18F4550 : initialisation carte SD impossible


    ------

    Bonjour,
    Pour ceux qui auraient lu le sujet que j'ai créé il y a une semaine, j'ai réussi à jouer du son stocker sur ma carte SD grâce à un Arduino. Le premier problème se pose maintenant pour porter le programme sur un pic 18F4550.

    Il est monté sur une carte "PicDem 2 Plus" de Microchip avec un quartz à 4MHz.
    Je compile avec MikroC car il possède une librairie pour lire une carte SD formattée en FAT16.

    La documentation de cette librairie se trouve ici : http://www.mikroe.com/pdf/mikroc/mikroc_manual.pdf page 288.
    La fonction 'Mmc_Fat_Init()' me renvoie 255, ce qui signifie "carte non détectée".

    Voici le schéma que j'ai utilisé :
    Nom : Photo.jpg
Affichages : 126
Taille : 39,6 Ko.
    Le buffer est un circuit CMOS 4050 alimenté en 5V, pour remonter à 5V le niveau 3,3V sortant de la carte. J'ai remarqué que je devais mettre une résistance de pull-down sur la broche MISO de la carte SD avant d'attaquer le buffer sinon il était en état indéterminé. (Je me suis trompé, le schéma représente une pull-up mais j'ai bien mis une pull-down).

    Des leds sont connectées sur RB0, RB1, RB2 et RB3, je peux les désactiver grâce à un jumper.

    Voilà mon code :
    Code:
    #define     LECTURE                 PORTA.F4
    #define     SLAVE_SELECT            PORTA.F5
    #define     MISO                    PORTB.F0
    #define     SCK                     PORTB.F1
    #define     LED2                    PORTB.F2
    #define     LED3                    PORTB.F3
    #define     MOSI                    PORTC.F7
    
    
    /*
        Connexion SD Card :
          SDO = MOSI ---> RC7 pin 26  (violet)
          SDI = MISO ---> RB0 pin 33  (violet)
          SCK = Clock --> RB1 pin 34  (gris)
          SS -----------> RA5 pin 7   (blanc)
    
    
        Connexion commande externe :
          Lecture ------> RA0 pin 2
    */
    
    
    // Configuration de la librairie pour la carte SD
    sfr sbit Mmc_Chip_Select at RA5_bit;
    sfr sbit Mmc_Chip_Select_Direction at TRISA5_bit;
    
    
    void main()
    {
        int retour;
        
        // Pas de comparateurs
        CMCON = 0x07;
        
        // Pas d'entrées analogiques
        ADCON1 = 0x0;
        
        // Configuration des ports
        TRISA.F4 = 1; // Lecture
        TRISB.F2 = 0; // Led 2
        TRISB.F3 = 0; // Led 3
        TRISB.F0 = 1; // MISO
        TRISB.F1 = 0; // SCK
        TRISA.F5 = 0; // SS
        TRISC.F7 = 0; // MOSI
    
        LED2 = 0;
        LED3 = 0;
    
        while(1)
        {
            if(!LECTURE)
            {
                delay_ms(50); // Anti-rebond
                if(!LECTURE)
                {
                    SPI1_Init_Advanced(_SPI_MASTER_OSC_DIV16, _SPI_DATA_SAMPLE_MIDDLE, _SPI_CLK_IDLE_LOW, _SPI_LOW_2_HIGH);
                    retour = Mmc_Fat_Init();
                    if(retour == 255)
                        LED2 = 1;
                    else if(retour == 1)
                        LED3 = 1;
                    else
                    {
                        LED2 = 1;
                        LED3 = 1;
                    }
                }
            }
        }
    }
    Seule led2 s'allume.
    J'ai vérifié les connexions plusieurs fois, tout semble bon.
    La led connectée à la sortie CLK du µC clignote bien quelques instants après avoir appuyé sur le BP 'lecture', de même que la led connectée sur l'entrée MISO.

    Je précise que cela donne le même résultat lorsque les leds témoin ne sont pas activées lorsque le µC communique avec la carte. (je le remet seulement plus tard pour vérifier l'état de led2 et led3).

    Une idée ?
    Merci d'avance

    -----
    Dernière modification par fdamien12 ; 01/11/2011 à 21h29.

  2. #2
    fdamien12

    Re : PIC 18F4550 : initialisation carte SD impossible

    Je me suis rendu compte que je me suis trompé dans l'url du manuel. C'est une ancienne version.
    La dernière se trouve ici : http://www.mikroe.com/pdf/mikroc_pic...anual_v100.pdf
    Je ne peux plus éditer mon sujet pour la corriger, un modo pourrait-il le faire à ma place ? C'est page 372.
    Merci

  3. #3
    Forhorse

    Re : PIC 18F4550 : initialisation carte SD impossible

    Le CD4050 n'est pas utile.
    Tu branche directement la broche de sortie de la carte SD (MISO ? sur ton schéma) sur la broche du PIC correspondante, avec une résistance de tirage au 5V genre 10K et ça suffit amplement !
    C'est comme ça que je procède et ça fonctionne sans soucis.

  4. #4
    fdamien12

    Re : PIC 18F4550 : initialisation carte SD impossible

    Citation Envoyé par Forhorse Voir le message
    Le CD4050 n'est pas utile.
    Tu branche directement la broche de sortie de la carte SD (MISO ? sur ton schéma) sur la broche du PIC correspondante, avec une résistance de tirage au 5V genre 10K et ça suffit amplement !
    C'est comme ça que je procède et ça fonctionne sans soucis.
    En effet, ça marche sans...

    C'était mes entrées analogiques qui étaient mal désactivées...
    problème résolu

  5. A voir en vidéo sur Futura

Discussions similaires

  1. probleme 2 interruption pic 18f4550 pic ->plante
    Par invite4ec38ea0 dans le forum Électronique
    Réponses: 5
    Dernier message: 28/08/2010, 07h51
  2. initialisation carte sd par pic18f4550
    Par skydarc dans le forum Électronique
    Réponses: 5
    Dernier message: 16/07/2010, 20h37
  3. [Blanc] LV Ariston LV 620 : initialisation carte bit 100 !
    Par pepetto dans le forum Dépannage
    Réponses: 15
    Dernier message: 23/02/2010, 15h50
  4. Réduire le temps d’Initialisation d’un PIC
    Par Raphael2 dans le forum Électronique
    Réponses: 7
    Dernier message: 12/11/2009, 08h35
  5. initialisation mémoire mmc et pic
    Par inviteef26fb36 dans le forum Électronique
    Réponses: 0
    Dernier message: 19/06/2007, 10h27
Découvrez nos comparatifs produits sur l'informatique et les technologies.