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

 C Discussion :

Pb de lecture de mémoire flash


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Inscrit en
    Octobre 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 7
    Par défaut Pb de lecture de mémoire flash
    Bonjour à tous,

    j'ai un projet à réaliser et je dois utiliser une mémoire flash. C'est la M25PE80. Je n'arrive pas à lire les octets sortants de la mémoire. J'ai fait le test d'identification. Je lui ai envoyé l'octet 0x9F et ce dernier devrait me renvoyer l'octet 0x20. Tout ce que je reçoit c'est un octet vide.
    Quelqu'un aurait une idée de ce qui pourrait être la cause de mon problème.
    Voici ma routine de test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    
    void F_tst_flash (void)
    {
    	unsigned char UCH_i;
    	unsigned char UCH_j;
    	UCH_j=0x9F;
    	FLA_CS = 0;
    
    	for(UCH_i=0;UCH_i<8;UCH_i++) /****envoi de l'octet 0x9f dans la flash pour identification de la flash*******/
    	{
    		if ((UCH_j&0x80) == 0x00 )
    			{
    				FLA_DIN = 0; 
    				FLA_SCK = 1;
    				FLA_SCK = 0;
    			}	
    		else {
    				FLA_DIN = 1;
    				FLA_SCK = 1;
    				FLA_SCK = 0;
    			}
    	UCH_j = UCH_j << 1;
    	
    	}
    
    	Rbyte.bits.b7 = 1; /*** on donne un valeur quelconque ***/
    	
    	Rbyte.bits.b6 = 0;
    
    	Rbyte.bits.b5 = 1;
    
    	Rbyte.bits.b4 = 0;
    
    	Rbyte.bits.b3 = 1;
    
    	Rbyte.bits.b2 = 0;
    
    	Rbyte.bits.b1 = 1;
    
    	Rbyte.bits.b0 = 0;
    	Nop();
    
    	Nop();
    
    	Rbyte.bits.b7 = PORTBbits.RB2; /** réception de l'octet : le premier octet reçu devrait être 0x20 mais il est de 0x00 *****/
    	PORTBbits.RB3 = 1;
    	PORTBbits.RB3 = 0;
    	Nop();
    	Rbyte.bits.b6 = PORTBbits.RB2;
    	PORTBbits.RB3 = 1;
    	PORTBbits.RB3 = 0;
    	Nop();
    	Rbyte.bits.b5 = PORTBbits.RB2;
    	PORTBbits.RB3 = 1;
    	PORTBbits.RB3 = 0;
    	Nop();
    	Rbyte.bits.b4 = PORTBbits.RB2;
    	PORTBbits.RB3 = 1;
    	PORTBbits.RB3 = 0;
    	Nop();
    	Rbyte.bits.b3 = PORTBbits.RB2;
    	PORTBbits.RB3 = 1;
    	PORTBbits.RB3 = 0;
    	Nop();
    	Rbyte.bits.b2 = PORTBbits.RB2;
    	PORTBbits.RB3 = 1;
    	PORTBbits.RB3 = 0;
    	Nop();
    	Rbyte.bits.b1 = PORTBbits.RB2;
    	PORTBbits.RB3 = 1;
    	PORTBbits.RB3 = 0;
    	Nop();
    	Rbyte.bits.b0 = PORTBbits.RB2;
    	PORTBbits.RB3 = 1;
    	PORTBbits.RB3 = 0;
    
    }
    Merci d'avance à tous!!!

    Burby

  2. #2
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Par défaut
    Vérifie déjà que ta Flash requiert bien ses commandes en passant le MSB en premier. Ensuite, connecte un oscillo sur tes ports DIN et SCK sortants : il y a fort à parier que tu ne génères pas un pulse sur SCK suffisamment long pour qu'il soit vu par la Flash. Vérifie les chronogrammes de la datasheet de la Flash.
    J'espère aussi que FLA_DIN est bien une variable affectable directement (type "volatile"), sinon tu ne vas pas faire grand-chose de concret côté GPIO...

    Même topo pour la lecture : si la commande passe bien, regarde ce qu'envoie la Flash à l'oscillo. Si tu n'arrives pas à le lire, c'est sûrement un souci de respect des temporisations.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

Discussions similaires

  1. Problème de lecture d'animations Flash
    Par navis84 dans le forum Debian
    Réponses: 4
    Dernier message: 02/04/2007, 16h02
  2. [BIOS] que veut dire mémoire flash-ROM ?
    Par beegees dans le forum Composants
    Réponses: 4
    Dernier message: 12/03/2007, 11h36
  3. Réponses: 3
    Dernier message: 12/12/2006, 14h40
  4. [Lecteur MP3] flasher une mémoire flash (USB)
    Par JauB dans le forum Périphériques
    Réponses: 5
    Dernier message: 01/12/2006, 12h11

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