[Programmation] Interface PIC/Carte SD - Page 2
Répondre à la discussion
Page 2 sur 2 PremièrePremière 2
Affichage des résultats 31 à 50 sur 50

Interface PIC/Carte SD



  1. #31
    scaypapa

    Re : Interface PIC/Carte SD


    ------

    Bonjour,

    Le PicKit ? Il est branché sur les bornes dédiées du Pic... Vpp/+5V/GND/Pgd/Pgc... Je ne l'ai pas représenté pour ne pas charger le schéma, désolé.

    Pour le régulateur, on en avait parlé ici. Il semblerait que le risque soit pour le régulateur lui même dans le cas ou la tension appliquée à sa sortie dépasse 7V, ce qui ne doit normalement jamais m'arriver. Si je dois refaire ma platine de programmation, je rajouterai quand même une diode entre la sortie et l'entrée par sécurité.
    Mais j'ai bien mes 4,5V si j'alimente par le PicKit et 5V en sortie de régulateur quand j'alimente depuis une autre source. Je serais surpris que le souci soit ici.

    J'imagine que mon qouci vient plutôt de ma platine SD. J'aurai voulu pour commencer la brancher simplement avec des fils sur mon "breadboard" mais je suis obligé d'avoir un PCB minimal pour la brancher puisque le support a des contacts CMS. Le mieux serait peut-être dans un premier temps de lui refaire une platine qui sert simplement à transformer ces contacts de surfaces en pins classiques, sans aucun câblage ni adaptation de tension.

    -----

  2. #32
    scaypapa

    Re : Interface PIC/Carte SD

    Re,

    Nouvelle précision :
    Suivant ton conseil, j'ai rebranché l'ensemble à partir de mon chargeur de PC et sa sortie USB en 5V, avec mon support de carte branché, mais sans carte SD à l'intérieur.
    J'ai mesuré 5,05V en sortie de 7805 et 3,3V en sortie de LDO3,3. Tout est normal quoi.
    C'est au moment ou j'enclenche la carte SD dans son support que la tension de sortie du régulateur LDO passe à 3,7V. Un contact doit se faire quelque part mais où ?
    Mon support de carte a bien une pin CardDetect, mais elle n'est branchée nulle part...

  3. #33
    invite830075ec

    Re : Interface PIC/Carte SD

    Essaye une autre carte SD pour voir si tu peux la griller, elle aussi
    Mais avant, si possible, tu ne connectes que la masse et l'alimentation de la carte SD, et tu mesures ce que ça donne.

  4. #34
    invite830075ec

    Re : Interface PIC/Carte SD

    La surtension sur l'alim doit venir des diviseurs de tension 5V vers 3,3V, alimente ce pic en 3,3V qu'on en finisse

  5. #35
    scaypapa

    Re : Interface PIC/Carte SD

    Citation Envoyé par satinas Voir le message
    Essaye une autre carte SD pour voir si tu peux la griller, elle aussi
    Mais avant, si possible, tu ne connectes que la masse et l'alimentation de la carte SD, et tu mesures ce que ça donne.
    ?? Je n'ai toujours pas réussi à griller ma carte : si je la mets dans l'ordi, elle est tout à fait lisible et fonctionne à merveille.

    Citation Envoyé par satinas Voir le message
    La surtension sur l'alim doit venir des diviseurs de tension 5V vers 3,3V, alimente ce pic en 3,3V qu'on en finisse
    D'accord, mais penses tu que je puisse brancher mon support de carte en direct sur mon breadboard sans passer par un PCB, en tordant les pattes du support et en les inséreant directement dans le breadboard ?
    Ca a l'air bien fragile ce truc là et je n'ose pas trop le bidouiller (d'autant que je n'en ai pas de rechange...).
    Dernière modification par scaypapa ; 26/11/2016 à 15h06.

  6. #36
    invite830075ec

    Re : Interface PIC/Carte SD

    Il faudrait d'abord avoir confirmation que ce sont bien les diviseurs de tension qui posent problème.
    Elle a assez souffert comme ça, garde l'interface avec ou sans son régulateur. J'ai aucune idée de la façon dont tu as câblé le pic. D'après tes dires, il doit être sur un breadboard, ce qui te permettrait alors de déplacer le régulateur du côté pic, en strappant les pistes de l'interface. Tu es quand même le mieux placé pour trouver la meilleure solution.

  7. #37
    scaypapa

    Re : Interface PIC/Carte SD

    Bonjour,

    Je reviens donner des nouvelles. Je suis assez désespéré...

    J'ai donc maintenant branché mon Pic sur le 3,3V, m'affranchissant des résistances de pont diviseur comme tu me conseillais. Les communications en SPI se font donc en direct par un simple fil.
    J'ai chargé ma carte SD sur l'ordi avec les fichiers dont je risque d'avoir besoin pour mes essais et y ai soudé directement des pins comme sur cet exemple.
    Ma carte ne rentrera plus dans un PC désormais...

    Ca marche presque. Mais pas tout à fait
    Je cherche, je cherche, mais ne trouve pas ce qui cloche. Alors je vous décrit les étapes avant que ça bug, en espéranyt que ça puisse donner une indication sur l'origine du problème.
    Le montage de la carte est commandé par un bouton poussoir. Quand je l'appuie, la commande f_mount() est appelée.
    Et c'est toujours ici que le problème se trouve :
    Code:
    	ty = 0;
    	if (send_cmd(CMD0, 0) == 1) {			/* Enter Idle state */
    		if (send_cmd(CMD8, 0x1AA) == 1) {	/* SDv2? */
    			for (n = 0; n < 4; n++) ocr[n] = sd_rx();	/* Get trailing return value of R7 resp */
    			if (ocr[2] == 0x01 && ocr[3] == 0xAA) {		/* The card can work at vdd range of 2.7-3.6V */
    				for (tmr = 1000; tmr; tmr--) {			/* Wait for leaving idle state (ACMD41 with HCS bit) */
    					if (send_cmd(ACMD41, 1UL << 30) == 0) break;
    					__delay_ms(1);
    				}
    				if (tmr && send_cmd(CMD58, 0) == 0) {		/* Check CCS bit in the OCR */
    					for (n = 0; n < 4; n++) ocr[n] = sd_rx();
    					ty = (ocr[0] & 0x40) ? CT_SD2 | CT_BLOCK : CT_SD2;	/* SDv2 */
    				}
    			}
    		} else {							/* SDv1 or MMCv3 */
    			if (send_cmd(ACMD41, 0) <= 1) 	{
    				ty = CT_SD1; cmd = ACMD41;	/* SDv1 */
    			} else {
    				ty = CT_MMC; cmd = CMD1;	/* MMCv3 */
    			}
    			for (tmr = 1000; tmr; tmr--) {			/* Wait for leaving idle state */
    				if (send_cmd(cmd, 0) == 0) break;
    				__delay_ms(1);
    			}
    			if (!tmr || send_cmd(CMD16, 512) != 0)	/* Set R/W block length to 512 */
    				ty = 0;
    		}
    	}
    	CardType = ty;
    	deselect();
    Lors de la première commande (send_cmd(CMD0, 0)), tout semble se passer correctement. Mais une fois en "IdleState", à chaque fois qu'un sd_rx() ou sd_tx(n) est envoyé, le buffer SSP1BUF ressort systématiquement 0xFF.
    L'initialisation échoue donc. Si je rappuie sur le bouton poussoir, la première commande send_cmd(CMD0, 0) échoue également, puisque SSP1BUF est toujours à 0xFF.
    Il faut que je déconnecte ma carte ou mon alim pour qu'à nouveau, la première commande fonctionne. Mais encore une fois, un fois en "IdleState", toute communication a l'air bloquée.
    Si vous avez une idée, je suis tout ouïe.

  8. #38
    invite830075ec

    Re : Interface PIC/Carte SD

    Salut,
    Est-ce qu'il y a bien 3,3V sur la broche d'alim de la carte SD ?
    Pourquoi un poussoir, tu démarres le programme, une tempo de 500ms au début, et la carte se monte dans la foulée, moins tu interviens, mieux ça marche. Si cela a déjà marché, ça doit remarcher, cette librairie est utilisée partout, il faut juste peaufiner le câblage.
    Et ne pas oublier la capa de 10uF ou plus sur l'alim de la carte SD

  9. #39
    scaypapa

    Re : Interface PIC/Carte SD

    Oui, j'ai bien mes 3,27V pour tout le monde. J'ai mis un bouton poussoir pour pouvoir relancer le montage de la carte sans redémarrer la simulation, et ainsi suivre ce qui se passe en mode pas à pas.
    J'utilisais à la base une platine que j'ai gravée pour brancher mon Pic (elle réunit le câblage pour le PicKit et les condos entre les Vdd et Vss).
    Pour tenter d'éliminer une erreur sur cette platine, j'ai maintenant tout réuni sur mon breadboard. Désormais, la carte ne renvoie plus rien sur SDI (DO) : je reçois toujours 0x00 sur SSP1BUF.

    Je pète un câble. J'ai peut-être grillé la SD en lui soudant ses pins, mais je n'y crois pas trop. Je vais finir par brancher du 220 en entrée par vengeance !

  10. #40
    scaypapa

    Re : Interface PIC/Carte SD

    J'ai rebranché sur ma platine toute prête pour recevoir le Pic et je retrouve le comportement précédent : première commande qui réagit correctement et dès la seconde, je ne reçois plus que des 0xFF.

  11. #41
    invite830075ec

    Re : Interface PIC/Carte SD

    Quand on bricole, faut du stock. Il faudrait essayer plusieurs cartes.
    Tu as peut être un composant défectueux.
    Mettre la capa au plus près de la carte SD.
    Sur les miennes je démarre à 400kHz, ensuite 20MHz

  12. #42
    scaypapa

    Re : Interface PIC/Carte SD

    Merci beaucoup pour tes réponses. Je me doutes bien que tu ne puisses pas faire grand chose pour moi, sans le montage sous les yeux. J'avais un petit espoir que le fait que la carte se bloque en IdleState puisse donner un indice...
    J'ai fait un nouvel essai en remettant le Pic à 5V et avec mon pont diviseur. J'obtiens exactement le même résultat.
    Le 10µF, j'avais cru comprendre qu'il fallait le mettre au plus près du régulateur. Je peux essayer en le mettant au plus près de la carte.
    De carte, c'est ma dernière (et c'est de plus en plus difficile de trouver des <2Go), j'ai brûlé la première avec une belle inversion de polarité ! Il va falloir que je refasse une commande sur le net...

    J'avoue que pour les fréquences, pour le moment je fais assez confiance dans le bout de code que j'ai téléchargé. Comme tu dis, en général, ça a l'air de fonctionner pour tout le monde...

  13. #43
    invite830075ec

    Re : Interface PIC/Carte SD

    Pas de jaloux, tu mets 2 capas.
    Pourquoi 2Go, tu peux monter plus haut en FAT32, j'utilise sans problème des 16Go.

  14. #44
    scaypapa

    Re : Interface PIC/Carte SD

    Si j'arrive à monter en Fat16, ce sera déjà bien. En tout cas, pour mon utilisation, je ne vois pas d'intérêt à utiliser des cartes de plus de 2Go.

    En rapprochant ma capacité au plus près de la carte, le programme a avancé un peu plus loin : il arrête de ne renvoyer que des 0xFF. Par contre la send_cmd(CMD8), il se retrouve donc dans le else (voir code plus haut) et finit par ne pas y arriver. Au final, j'ai le même résultat.
    J'ai essayé avec une capa de 47µ, même résultat.

  15. #45
    scaypapa

    Re : Interface PIC/Carte SD

    Nouvel essai en laissant la capa au plus près de la SD + une seconde au plus près du Pic et en remettant tout le monde à 3,3V.
    Je me retrouve avec la seule première commande qui fonctionne, les autres renvoient toutes 0xFF.

  16. #46
    invite830075ec

    Re : Interface PIC/Carte SD

    Tu achètes la carte la moins chère quelle que soit sa capacité.
    Ensuite tu mets la fat que tu veux, la FAT32 n'est pas beaucoup plus lourde que la FAT16, elles sont très similaires.
    Et ensuite tu peut créer une partition de la taille que tu veux, toutefois limitée à 2Go pour la FAT16.
    La librairie étant multi-volume, elle doit gérer plusieurs partitions avec MBR, j'ai jamais essayé.
    C'est plus simple de faire une seule big partition FAT32.

  17. #47
    scaypapa

    Re : Interface PIC/Carte SD

    De mieux en mieux. Maintenant, quand je branche le PicKit, l'écran de l'ordinateur s'éteint !

    Youhou.

  18. #48
    scaypapa

    Re : Interface PIC/Carte SD

    Coucou,

    Bon entre temps, j'ai changé mon alim. Puis j'ai fait une pause parce que je n'en pouvais plus.
    J'ai voulu réessayer tout à l'heure en reprenant mes branchements de 0, même résultat que précédemment.

    ... mais il m'est venu une idée de génie !
    Je suis assé sur le port SPI2 du PIC.
    Et cette fois, ça marche !
    Je pense donc que dans mes nombreuses manipulations sur l'alim j'ai dû faire une bêtise et peut-être griller le module SPI1 de mon µC.
    C'est possible ça ?

  19. #49
    scaypapa

    Re : Interface PIC/Carte SD

    Autre chose : Sur tes conseils, j'ai tout alimenté en 3.3V.
    Etant donné que le système complet à terme sera alimenté par une batterie, moins je consommerais, mieux je m'en porterais et j'imagine que je consommerais moins en 3.3V (je me trompe peut-être).
    Y a-t-il un intérêt quelconque à alimenter le Pic en 5V plutôt qu'en 3.3V ?
    Tous les tutos que j'ai pu lire sur la gestion de carte SD parlaient d'alimenter le Pic en 5V et la carte en 3.3V. Il doit donc bien y avoir un intérêt quelque part...

  20. #50
    invite830075ec

    Re : Interface PIC/Carte SD

    L'intérêt je le vois pas à part qu'avec l'usb l'alim 5V s'est généralisée, et plus la tension est haute, plus on peut monter en fréquence. Mais là c'est de l'électronique, moi c'est les bits, et seulement s'ils restent entre 0 et 1.
    A part ça, oui si on les malmène, on grille les composants totalement ou partiellement. Pour tester ton port spi, un oscillo serait utile.

Page 2 sur 2 PremièrePremière 2

Discussions similaires

  1. Carte d'interface PC
    Par inviteda0a3efb dans le forum Électronique
    Réponses: 6
    Dernier message: 20/06/2011, 16h13
  2. Carte d'interface USB
    Par invite4e6177a6 dans le forum Électronique
    Réponses: 2
    Dernier message: 09/06/2011, 15h17
  3. carte interface pic 16f84a
    Par invite65b6f7a7 dans le forum Électronique
    Réponses: 1
    Dernier message: 24/03/2011, 00h39
  4. Carte d'interface
    Par invite7fd94597 dans le forum Électronique
    Réponses: 4
    Dernier message: 29/04/2009, 13h46
  5. carte d'interface
    Par invite9848a956 dans le forum Électronique
    Réponses: 0
    Dernier message: 12/03/2008, 14h23
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...