IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Arduino Discussion :

Comment peut-on interfacer une SD card à un arduino UNO?


Sujet :

Arduino

  1. #1
    Membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    Décembre 2019
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Décembre 2019
    Messages : 122
    Points : 60
    Points
    60
    Par défaut Comment peut-on interfacer une SD card à un arduino UNO?
    Bonsoir à tous

    Grâce à vos conseils, je suis passé d'un niveau zéro en pratique arduino, à des balbutiements très encourageants en quelques semaines. Merci à tous les participants.

    A chaque nouveau périphérique, j'ai une période de rodage. A présent je maîtrise bien (je pense), les afficheurs LCD, la RTC, et j'ai fait la connaissance du bus I2C qui me plait bien.

    J'ai besoin d'ajouter le shield SD card, en I2C pour conserver à long terme des données auxquelles je n'accèderai en lecture que pour lire un octet à la fois, et, en mode écriture, également un octet à la fois et cela très rarement.

    il s'agit de ce modèle:
    Nom : shield_SD_r.jpg
Affichages : 304
Taille : 88,7 Ko

    Ma grosse difficulté, c'est pour trouver sa documentation, sous forme pdf, pour connaître bien entendu son adresse (I2C), et aussi les opérations de gestions, tant à l'écriture qu'à la lecture, et aussi, car je suppose qu'elle existe, la bibliothèque à inclure.

    Comme ce n'est pas la première fois que je suis confronté à ce type de besoin, et que je n'ai pas été capable de trouver tout seul (donc sans votre aide précieuse), j'aimerai bien, à l'avenir, être capable d'y parvenir. J'ai beau secouer la FAQ, elle n'est pas bavarde ou ne me comprend pas.

    Merci de me remettre au moins un pied sur un rail.

  2. #2
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    Bonsoir,

    Citation Envoyé par gienas Voir le message
    il s'agit de ce modèle:
    (...)
    c'est assez vague comme description. As-tu un lien ? Peut-être les informations écrites sur les composants électroniques, surtout le circuit intégré sur la photo, de cette carte (si tu l'as achetée) ?

  3. #3
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 619
    Points : 56 854
    Points
    56 854
    Billets dans le blog
    40
    Par défaut
    Salut,

    Citation Envoyé par gienas Voir le message
    Ma grosse difficulté, c'est pour trouver sa documentation, sous forme pdf, pour connaître bien entendu son adresse (I2C)
    Sauf qu'ici ce n'est pas de l'I2C, mais du SPI. Les esclaves SPI sur le bus n'ont pas d'adresse. A la place, le maître décide de communiquer avec un esclave en mettant sa broche CS (Chip Select) à l'état bas.
    Mais pour manipuler les cartes SD, tu as déjà une bibliothèque SD toute prête

  4. #4
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    @f-leb : rien qu'à voir la carte tu connais la doc ? Ou est-ce la présence des pin MISO et MOSI qui t'a aidée ?

  5. #5
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 619
    Points : 56 854
    Points
    56 854
    Billets dans le blog
    40
    Par défaut
    Citation Envoyé par Auteur Voir le message
    @f-leb : rien qu'à voir la carte tu connais la doc ? Ou est-ce la présence des pin MISO et MOSI qui t'a aidée ?
    MOSI, MISO, CS et SCK sur la photo ==> du SPI, c'est imparable C'est l'interface classique pour les cartes SD il me semble, il y en a à la pelle de ces modules...

    Et quand tu passes par la bibliothèque SD :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #include <SPI.h>
    #include <SD.h>

  6. #6
    Membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    Décembre 2019
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Décembre 2019
    Messages : 122
    Points : 60
    Points
    60
    Par défaut
    Merci déjà pour ces premiers éléments de réponse

    Citation Envoyé par Auteur Voir le message
    ... c'est assez vague comme description. As-tu un lien ? Peut-être les informations écrites sur les composants électroniques, surtout le circuit intégré sur la photo ...
    sur le verso de la carte il est écrit MicroSD Card Adapter avec HW dans un coin

    Les bornes dans l'ordre
    CS
    SCK
    MOSI
    MISO
    VCC
    GND

    au recto, le circuit 14 pattes comprte

    LVC125A
    S860050
    XYD19
    29D

    la petite recherche faite m'apprend que ce n'est pas I2C mais SPI.

    Citation Envoyé par f-leb Voir le message
    ... Sauf qu'ici ce n'est pas de l'I2C, mais du SPI . ...
    Je vais me lancer dans l'étude de tes liens.

    Le survol que je viens de faire (pas encore de tes liens) m'indique que les procédures vont chercher dans des fichiers. Est-ce obligatoire que mes données soient dans des fichiers ou bien est-il possible, comme dans une mémoire, d'aller écrire des octets à des adresses, et d'aller les y relire?

    Dans un fichier, on n'est pas maître de la succession des octets, qui sont placés/encadrés/chaînés/... par le système d'exploitation. Je veux, moi, rester plus basique et disposer d'un tableau de 10080 octets ordonnés (chronologiquement).

  7. #7
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 711
    Points : 5 390
    Points
    5 390
    Par défaut
    Salut

    Il vaut mieux utiliser la bibliothèque SDfat (https://github.com/greiman/SdFat) qui sera plus performante que la bibliothèque SD standard (qui est aussi issue d’une plus vieille version de SDFat)

    Sur une carte SD le stockage se fait dans un fichier mais vous pouvez accéder à un octet particulier du fichier directement si vous voulez. Donc si vous voulez gérer par exemple 1000 octets de mémoire, vous commencez par créer un fichier de 1000 octets mis à 0 et ensuite vous accédez à un endroit particulier du fichier pour mettre à jour un octet (ou lire un octet).

  8. #8
    Expert confirmé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 330
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 330
    Points : 4 151
    Points
    4 151
    Par défaut Accès physique
    Bonjour,

    Pour compléter la réponse de Jay M, l'accès physique direct (i.e. sans passer par un fichier) n'est pas possible (enfin très difficilement et hors de portée en usage normal) et n'est pas souhaitable. Par exemple, lors d'une actualisation d'un fichier la nouvelle version n'est pas nécessairement à la même place ni même en un seul morceau.

    L'espace mémoire vu est un espace logique et une carte SD n'est pas que de la mémoire mais aussi de l'intelligence embarquée qui va gérer les échanges et garantir (dans certaines limites) un bon fonctionnement même quand des secteurs de la mémoires deviennent défaillants.

    Salut
    Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)

  9. #9
    Membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    Décembre 2019
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Décembre 2019
    Messages : 122
    Points : 60
    Points
    60
    Par défaut
    Bonsoir à tous

    Cette discussion apparaît comme "déplacée" puisque la mémorisation est totalement décalée. La capacité proposée est en dizaines de Go alors qu'il faut quelques kilo octets.

    Comme le type de mémoire à changé, pour une eeprom, la discussion continue ici:

    https://www.developpez.net/forums/d2.../#post11708737

  10. #10
    Membre actif
    Homme Profil pro
    libre
    Inscrit en
    Juin 2019
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : libre

    Informations forums :
    Inscription : Juin 2019
    Messages : 205
    Points : 292
    Points
    292
    Par défaut
    Oui il est tout a fait possible d écrire directement sans passer par les lib Fat en réservant un ficher avec la taille souhaitée qui doit etre alignée a celle du cluster et après on cherche l adresse physique de ce dernier si le fichier utilise plusieurs cluster il faut vérifier qu ils sont compact via des utilitaires avant de procéder a l écriture ...j en ai fait le test

    Citation Envoyé par Auteur Voir le message
    Bonsoir,


    c'est assez vague comme description. As-tu un lien ? Peut-être les informations écrites sur les composants électroniques, surtout le circuit intégré sur la photo, de cette carte (si tu l'as achetée) ?
    Modèle Catalex assez répandu .. on peut voir le régulateur de 3 volt et le circuit convertisseur tension logique 3=>5 et inversement

    Il vaut mieux utiliser la bibliothèque SDfat (https://github.com/greiman/SdFat) qui sera plus performante que la bibliothèque SD standard (qui est aussi issue d’une plus vieille version de SDFat)
    Pourquoi chercher ailleurs Editeur Arduino a ses bibiotheque que se soit pour le SD ou le Fat

  11. #11
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 711
    Points : 5 390
    Points
    5 390
    Par défaut
    Citation Envoyé par wheel Voir le message
    l vaut mieux utiliser la bibliothèque SDfat qui sera plus performante que la bibliothèque SD standard (
    Pourquoi chercher ailleurs Editeur Arduino a ses bibliothèques que se soit pour le SD ou le Fat
    Ce n'est pas chercher vraiment ailleurs. La bibliothèque SD est une version ancienne et simplifiée de la bibliothèque SDFat (c'est le même auteur). En prenant SDfat vous avez la version à jour avec les optimisations qui ont été apportées depuis.

    dans un (vieux) post l'auteur de la bibliothèque a dit
    I am the author of SdFat. SD.h is a wrapper for an old version of SdFat that provides an alternative API.
    SD.h works well for most people. It has bugs but these don't affect most people. Most users don't need the features or higher performance of SdFat so SD.h will probably work fine for you.
    So the SD library included with the Arduino IDE is SdFat with a simple API that reduces features but makes the library easy to understand and use. The new SdFat is also easy to use for simple sketches but has a different API.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment peut-on créer une encyclopédie (SGBD)?
    Par Abdelkabir dans le forum Décisions SGBD
    Réponses: 8
    Dernier message: 13/11/2006, 18h52
  2. Réponses: 2
    Dernier message: 21/06/2006, 14h14
  3. Comment peut on attaquer une BD MYSQL par un fichier C
    Par adilovic2000 dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 11/05/2006, 11h04
  4. [VB.NET] Comment peut-on sérialiser une Collection ?
    Par Jabbal'H dans le forum VB.NET
    Réponses: 6
    Dernier message: 09/03/2006, 21h24
  5. Comment peut-on dire : une bdd est petite, moyenne ou grosse
    Par Pierrinot dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 20/10/2004, 08h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo