Go Down

Topic: Lire et écrire sur une mémoire flash (NAND) USB ou SD ? (Read 6761 times) previous topic - next topic

Jean-François

Super, merci pour ces infos, cela me permettra de faire une commande demain
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Jean-François

Commandé hier... reçu ce matin  :D

Montage des bestioles sur la planche à essai :



Avec un atmega 168... ça marche définitivement pas, je m'en suis aperçu après une bonne heure de galère  :smiley-mr-green:.

Avec la Mega, ça fonctionne bien, mais il y a un reset de l'Arduino à chaque fois que je remet la SD dans son logement...

J'ai deux carte une de 2 Gb et l'autre de 32 Mb, la 2Gb fonctionne, j'arrive à la formater-lire-écrire et l'autre n'est pas reconnue...
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

skywodd

Que ça ne marche pas avec un ATmega168 ne m'étonne pas trop ... avec un ATmega328 c'est déja crick-crack niveau ram disponible ...

Pour la 2eme carte SD de 32Mo qui n'est pas reconnu ça arrive avec certaine carte SD surtout avec d'ancienne carte, la seul solution c'est dans trouver un autre.

Pour le bug du reset c'est louche :smiley-eek-blue: tu n'aurai pas câblé l'interrupteur de détection d'insertion directement au gnd ou au +5v par hasard (sans résistance ce qui ferait un cours-circuit) ?
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

Jean-François

Non, les interrupteurs sont pattes en l'air... et ça ne le fait pas avec la carte de 32Mb.
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Jean-François

Alors... :


  • Lorsque j'engage la SD, il y a un reset.

  • Lorsque la SD est engagée et que je débranche le gnd sur l'Arduino et que je le rebranche, pas de reset.

  • Lorsque la SD est engagée et que je débranche le 3.3V sur l'Arduino et que je le rebranche, il y a un reset.




J'ai revérifié les branchements et j'ai strictement ce qu'il y a sur mon schéma.
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

zoroastre

#35
Oct 26, 2011, 05:44 pm Last Edit: Oct 26, 2011, 06:10 pm by zoroastre Reason: 1
Yep!

Je confirme le même phénomène avec le cablage : diviseur de tension. Il y a reset systématique de l'arduino dés l'insertion de la carte sd.
J'ai tenté de désactiver l'auto-reset avec une resistance, dans tous les autres cas, cela fonctionne mais pas au moment d'insérer la sd...reset...reset.

J'ai également bidouillé côté prog pour tenter d'éviter le phénomène et malgrés une suite conditionnelle à base de if à tout va, toujours reset...reset...

@+

Zoroastre.

EDIT1 : Reste à voir côté librairie...
________Déjà faut faire gaffe côté Sd2PinMap.h, les ports SDA, SCL sont peut être utiles avec certains shield et par défaut actifs (constaté avec une del), à désactiver si non nécessaire je pense...
Gné! ;)

Jean-François

#36
Oct 26, 2011, 06:52 pm Last Edit: Oct 26, 2011, 07:17 pm by Jean-François Reason: 1
J'ai résolu le problème du reset... ou plutôt contourné en utilisant l'interrupteur de détection de carte du support.

Un p'tit croquis :



Comme le reset ne se fait pas lorsque je déconnecte/reconnecte le GND, l'interrupteur ne mets le GND que lorsque la carte est en place  :D

C'est pas visible comme ça... mais je danse autour de ma table  XD
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Super_Cinci

Comme je le disais dans le topic du gros big LCD, il est possible que les librairies pour SD soient un peu gourmandes. Dans le mesure où on utilise un port hw de l'ATmega, selon ce que l'on cherche à faire, ça doit être simplifiable. Vu que pour l'instant j'ai réussi à programmer tout ce que je voulais sans utiliser de librairies, je ne vois pourquoi je n'arriverais pas à faire marcher une SD avec un 168...

On y arriverait certainement mieux si les librairies étaient fournies avec une liste des ressources utilisées (quantité de RAM, Flash, timers, ports, int...), car certaines se coupent l'herbe sous le pied sans qu'on le sache vraiment. Il y a des progrès à faire de ce côté. (mon petit coup de gueule du matin... :) ).

je ne fais que penser pour l'instant, il faut que je trouve un support pour SD, et je testerai réussirai la chose sur un 168. Dès lors, je vous tiendrai au courant!

Artouste


Ah oui, effectivement c'est exactement ce dont j'ai besoin, j'ai des cartes SD "normales" ainsi qu'un lecteur USB pour ce type de cartes.

Avec les microSD ça l'aurait moins bien fait  XD


trouver de l'adaptateur µSD vers SD , c'est facile
l'inverse est plus compliqué
reçu ça aujourd'hui
http://cjoint.com/12fe/BBynswFYdVk_sdmusd.jpg
pour utiliser de la Sd avec ça
http://www.emartee.com/product/41540/MP3%20Sound%20Module%20Mini%20SD%20Card

test semaine prochaine

Jean-François

#39
Mar 01, 2012, 10:25 pm Last Edit: Mar 02, 2012, 07:49 am by Jean-François Reason: 1
J'ai refait le câblage de mon tupperware, dont justement la partie carte SD, le schéma est scrupuleusement suivit.... et le programme se plante aléatoirement à l'écriture des valeurs sur la SD.
Si j'allume le montage et que ça plante, je fais un simple reset de la carte et ça marche...

Deux soirs à chercher, et je m'aperçois que lorsque je tiens mon circuit avec les doigts en exerçant une pression sur le bord des pistes, ça plante moins, je teste avec un plastique entre mes doigts et la carte, ça ne marche plus.

Je regarde quelles sont les pistes qui peuvent être impliquées, il y en a trois. Je monte une capa entre les deux premières... pas ça, je décale d'une piste et BINGO, démarrage à chaque mise sous tension.

Entre la pin 9 et la 10 du TC74LCX125 une capa de 47 nf et c'est bon (la valeur de la capa au pifomètre  XD ).



MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Jean-François

#40
Mar 06, 2012, 01:08 am Last Edit: Mar 06, 2012, 01:23 am by Jean-François Reason: 1
Un petit bout de code afin de lire une valeur float sur la carte SD :

Code: [Select]
 if (!myFile.open("distance.txt", O_READ)) {
   sd.errorHalt("opening distance.txt for read failed");
 }
 Serial.println("distance.txt:");
 
 int data;
 String thisString="";
 // read from the file until there's nothing else in it:
 while ((data = myFile.read()) > 0){

   thisString+=char(data);
   Serial.write(data);
 }

 char carray[thisString.length() + 1]; //determine size of the array
 thisString.toCharArray(carray, sizeof(carray)); //put thisString into an array
 odo = (atof(carray)); //convert the array into a float   /1000000
 Serial.println (odo,3);

 // close the file:

 myFile.close();

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Go Up