Lecture carte sd sur un AVR 8bits par SPI
Répondre à la discussion
Affichage des résultats 1 à 10 sur 10

Lecture carte sd sur un AVR 8bits par SPI



  1. #1
    myster1ous

    Lecture carte sd sur un AVR 8bits par SPI


    ------

    Bonjour à tous,

    Pour un projet, j'ai besoin d'accéder à une carte SD (FAT16) par SPI pour y lire des fichiers audio .WAV et les envoyer à un DAC (MCP4921) toujours pas SPI.
    En pratique je programme en C sur un ATMEGA328P (pas un arduino) cadencé à 20Mhz. Le microcontrôleur et la carte SD sont alimentés en 3.3V.

    Pour l'instant je cherche "juste" à lire la carte sd (J'y ai placé un fichier .txt de test) mais c'est plus compliqué que prévu. Pour l'instant j'ai simplement paramétré le bus SPI à l'initialisation du micro.
    Le truc c'est qu'il faut que je manipule le système de fichier FAT donc je cherche une librairie capable de faire ça assez simplement. Je tiens à dire que j'ai déjà fait quelques recherches avant de venir demander de l'aide, je suis tombé sur "petit FatFs" mais c'est pour le moins abscond à mes yeux Cela dit si vous pouviez m'expliquer comment l'adapter à mon besoin ce serait génial et si vous aviez même un petit code d’exemple ce serait encore plus génial!

    Cordialement,

    Myster1ous.

    -----

  2. #2
    myster1ous

    Re : Lecture carte sd sur un AVR 8bits par SPI

    Up pour ne pas tomber dans l'oubli

  3. #3
    Jack
    Modérateur

    Re : Lecture carte sd sur un AVR 8bits par SPI

    je suis tombé sur "petit FatFs" mais c'est pour le moins abscond à mes yeux
    Je doute que tu puisses faire autrement. La gestion d'un système de fichier n'est pas simple: par exemple, il faudra consulter la table d'allocation pour déterminer les secteurs utilisés.
    La petite librairie qui t'est proposée va te simplifier le travail. Si cette librairie est générique et non pas faite exclusivement pour ton µContrôleur, il ne devrait y avoir que quelques petites fonctions de bas niveau à définir: celles gérant le hardware de la spi.

    Bon courage
    A+

  4. #4
    myster1ous

    Re : Lecture carte sd sur un AVR 8bits par SPI

    J'ai télécharger l'archive d'exemples de fatfs (pas petit fatfs), j'ai compilé l'exemple "avr_foolproof" qui devrait me créer un fichier dans la carte sd mais ça ne marche pas. Je ne sais pas si c'est une option dans le fichier ffconf.h qui n'est pas bonne (j'ai pas trouvé d'explications clair pour bien paramétrer ce fichier en fonction de mon µc) ou si c'est autre chose. Autre truc étrange, nulle part il n'est fait mention du SPI. Du coup j'imagine que le parametrage du SPI ne fait pas partie de FatFs et qu'il faut le faire soit-même... ce que j'ai fait mais ça ne marche pas mieux. Etant donné que c'est la première fois que j'utilise ce type de bus je ne suis pas sûr que mon paramétrage des registres associés soit correct.

    Au cas où voici ce que j'ai ajouté au programme d'exemple:
    Code:
    // INITITIALISATION SPI atmega328p
    	// MOSI, SCK en sortie
    	DDRB |= (1<<PB3)|(1<<PB5);
    	// Configuration du registre SPCR. Mode SPI-maitre. Mode SPI = 0 (CPOL et CPHA à 0). SCK = Fck/128
    	SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR1)|(1<<SPR0);
    Si quelqu'un à des pistes...

    Merci!
    Dernière modification par myster1ous ; 02/05/2015 à 21h07.

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

    Re : Lecture carte sd sur un AVR 8bits par SPI

    Salut!
    Désolé par avance je vais pas pouvoir te donner une réponse directement car je ne connais pas les AVRs (je suis plutôt PIC, et aussi parce que j'ai la flegme de rentrer dans le code ^^). Par contre je vais te donner une méthode. Lorsque tu ne trouves pas de librairie spécifique à ton µC, trouves en une la mieux écrite possible et la plus précise. Ensuite il te reste juste à l'adapter à ton cas en refaisant les fonctions bas-niveau.

    Voila je sais pas si sa peut t'aider dans ton projet. Si jamais ta un lien ou un truc pour ta librairie autant je m'y penche dessus.
    Dernière modification par jojo150393 ; 02/05/2015 à 21h30.

  7. #6
    lpt1com2

    Re : Lecture carte sd sur un AVR 8bits par SPI

    Pour info, j’ai utilisé ça : http://www.lextronic.fr/P2261-module...ve-usd-g1.html, dans une application avec un ATmega32.
    Ce module communique avec l'UART, et il est très facile à utiliser.
    Désolé si je suis hors sujet, je ne suis pas sûr d’avoir bien compris ton besoin.

  8. #7
    MiKL.66

    Re : Lecture carte sd sur un AVR 8bits par SPI

    Citation Envoyé par lpt1com2 Voir le message
    Pour info, j’ai utilisé ça : http://www.lextronic.fr/P2261-module...ve-usd-g1.html, dans une application avec un ATmega32.
    Ce que tu montres là fonctionne avec un UART et non avec du SPI !

  9. #8
    lpt1com2

    Re : Lecture carte sd sur un AVR 8bits par SPI

    Citation Envoyé par MiKL.66 Voir le message
    Ce que tu montres là fonctionne avec un UART et non avec du SPI !
    Exact !
    Alors celui-ci devrait convenir, sans être bien plus difficile à utiliser : http://www.lextronic.fr/P5716-platin...-sd-board.html

  10. #9
    myster1ous

    Re : Lecture carte sd sur un AVR 8bits par SPI

    La librairie Fatfs se trouve ici pour ceux que ça intéresse.

    Pour info, j’ai utilisé ça : http://www.lextronic.fr/P2261-module...ve-usd-g1.html, dans une application avec un ATmega32.
    Ce module communique avec l'UART, et il est très facile à utiliser.
    Désolé si je suis hors sujet, je ne suis pas sûr d’avoir bien compris ton besoin.
    Exact !
    Alors celui-ci devrait convenir, sans être bien plus difficile à utiliser : http://www.lextronic.fr/P5716-platin...-sd-board.html
    Le carte d'adaptation que tu présentes aurait peut être pu faire l'affaire mais elle est trop chère puisque je travail sur un projet à bas coût. Par contre pour d'autres projets ça peut être pas mal, je note ça dans un coin

  11. #10
    Jack
    Modérateur

    Re : Lecture carte sd sur un AVR 8bits par SPI

    Il reste un sacré boulot à faire pour écrire toutes les fonctions de bas niveau, même en s'appuyant sur les exemples fournis par le site.

    Il faudrait aussi que tu testes le bon fonctionnement de la spi, sur un autre circuit moins complexe pour te faire la main. Un oscilloscope pour vérifier les trames serait un plus, car tarvailler en aveugle peut faire perdre beaucoup de temps.

    Bien s'assurer des polarités des signaux de la spi, car les 4 combinaisons sont possibles. Tout dépend du circuit esclave.

Discussions similaires

  1. lecture carte 64 Go sur S4 au delà de 16 Go
    Par PSR B1919+21 dans le forum Matériel - Hardware
    Réponses: 0
    Dernier message: 04/01/2015, 09h52
  2. Lecture de carte géologique
    Par berytus-berytus dans le forum Géologie et Catastrophes naturelles
    Réponses: 6
    Dernier message: 23/07/2011, 11h50
  3. Problème ecriture/lecture carte SD
    Par invite14627f30 dans le forum Programmation et langages, Algorithmique
    Réponses: 1
    Dernier message: 18/04/2011, 21h22
  4. Lecture de carte SD par liaison SPI
    Par invite24eebdfe dans le forum Électronique
    Réponses: 4
    Dernier message: 14/05/2008, 15h18
  5. lecture-carte son
    Par invite2d9e7c03 dans le forum Électronique
    Réponses: 2
    Dernier message: 16/05/2006, 12h03
Découvrez nos comparatifs produits sur l'informatique et les technologies.