Stockage sur carte SD et multi accès

Salut à tous,

J'ai un projet d’acquisition de données sur différents capteurs en instantané et je dois les stocker sur une carte SD. Cette carte sd je doit la décharger toutes le 5min sur un serveur par une liaison ethernet.

Ma question est, pensez vous qu'il est possible d'avoir 2 arduino qui accède en écriture pour 1 sur la carte SD et l'autre en lecture en même temps?

Comme j'ai une acquisition de 16 fois par seconde, l'arduino n'aura jamais le temps de décharger la carte sans arrêter l’acquisition.

Merci

Peut-être une piste avec les interruptions, à fouiller quoi...

JLuc:
Peut-être une piste avec les interruptions, à fouiller quoi...

Oui mais les interruptions il faut un changement d'état par un événement extérieur, là j'en est pas.

hppp:
Ma question est, pensez vous qu'il est possible d'avoir 2 arduino qui accède en écriture pour 1 sur la carte SD et l'autre en lecture en même temps?

Non. L'une après l'autre éventuellement, mais en même temps aucune chance que ça fonctionne.

Et en utilisant un flag d'occupation qu'un arduino consulterai et utiliserai pour lire ou ecrire, comme ca pas de telescopage.

Je pense que je vais faire ça, un protocole de communication pour que les arduino s'annonce. Du genre un niveau haut quand un des arduino accède à la carte.

Bonjour,

L'accès à une ressource partagée nécessite : soit une organisation sans faille (ce qui est généralement ultra-chiant), soit un acteur extérieur qui se charge de la gestion de la ressource (et personne d'autre ne peut y accéder directement à par lui).

Dans ton cas tu as deux solutions :

  • n'utiliser qu'une seule carte arduino (si possible) et faire du travaille coopératif (une tache écrit, l'autre lit, etc).
  • utiliser une troisième carte arduino relié au deux autres qui s'occupe de l'écriture / lecture sur la SD.

La première solution c'est grosso-modo ce que j'ai fait pour ce projet :

hppp:
Comme j'ai une acquisition de 16 fois par seconde, l'arduino n'aura jamais le temps de décharger la carte sans arrêter l’acquisition.

Pour ça il faudrait chiffrer la charge qu'impose la conversion. Parce que, bon, des acquisitions à 16Hz (62.5ms) c'est pas non plus la mer à boire si l'acquisition ne prends pas 60ms bien sur.
Ensuite si entre 2 acquisition tu ne peux pas vider ta carte rien n'empêche de continuer après l'acquisition suivante.