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

Autres architectures Assembleur Discussion :

[MSP430] Envoi données SPI


Sujet :

Autres architectures Assembleur

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 11
    Points : 8
    Points
    8
    Par défaut [MSP430] Envoi données SPI
    Bonjour, je cherche à envoyer des données que je récupère à partir d'un capteur par SPI vers une mémoire Flash.

    Je m'explique, je reçois les données par UART sur un MSP430 (microcontroleur Texas Instrument) et je voudrais stocker ces données sur ma Flash. Quand j recois mes données, je stocke dans un buffer de taille 1 Octet. Maintenant il faudrait que j'envoie ses données en série vers ma flash afin de remplir une page dans le flash de 1024 octets.

    Est ce que quelqu'un a déjà effectué ce genre de manip ? Je suis débutant en assembleur ? Je suis ouvert pour toutes pistes...

    Merci

  2. #2
    Membre habitué
    Avatar de TangiX
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 139
    Points : 168
    Points
    168
    Par défaut
    Bonjour,

    Vu de la manière dont tu parle de ta flash, il me semble que celle ci est externe ?

    Si oui, alors la réponse dépend de la manière dont tu as interfacer le MSP 430 avec la flash.

    Sinon, tu utilise la flash interne. Dans ce cas la flash fait partie de l'espace mémoire accessible par l'instruction MOV. Dans cette hypothése, je suppose que ton problème vient de l'accés indexé à une plage mémoire

    Merci de donner plus d'information...
    (Si flash interne : rechercher la plage ou se situe la flash dans la doc (dépend du modèle))

    TangiX

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 1
    Points : 1
    Points
    1
    Par défaut AIDE_CONVERSION ANALOGIQUE/NUMERIQUE
    Bonjour, j'aimerais savoir si quelqu'un pourrait m'aider !

    Mon problème : je n'arrive pas à convertir une tension analogique en numérique.

    Mon code est le suivant :
    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
    // Initialize P6.3 for A/D Conversion:
    //------------------------------------
       	  P6SEL |= 0x08;        // Enable A/D channel inputs   (Broche P6.3)
     
      	  ADC12CTL0 = ADC12ON + MSC + SHT0_2;    // Turn on ADC12, set sampling time
      	  ADC12CTL1 = SHP + CONSEQ_3;            // Use sampling timer 
      	  ADC12MCTL5 = INCH_5 + EOS;             //               // ref+ = AVcc, channel = A5
      	  ADC12CTL0 |= ENC;                      // Enable the conversion					
    	  ADC12CTL0 |= ADC12SC;                  // Start conversion
     
    // Conversion of the output of Amplifier:
    //---------------------------------------
    	  while ((ADC12IFG & BIT3)== 0);    // BIT3
     
          Valeur_Ultraviolet = ADC12MEM3;
    VAleur_Ultraviolet est la valeur que je dois traiter par la suite...
    Il faut que j'obtienne par exemple : Valeur_Ultraviolet = XX Volts.

    Comment fonctionne les registres ADC12MEMXX ?

    Voilà, j'espère que quelqu'un pourra m'aider,
    Cordialement,
    Xav

  4. #4
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Bonjour!

    J'arrive un peu tard dans cette discussion, mais j'ai quelques
    remarques à propos des lignes suivantes:

    ADC12CTL1 = SHP + CONSEQ_3; // Use sampling timer
    ADC12MCTL5 = INCH_5 + EOS; // ref+ = AVcc, channel = A5

    D'après ce que vous écrivez, vous cherchez à capturer UNE tension
    (une seule). Et puis les deux lignes ci-dessus laissent supposer que vous
    allez faire l'acquisition de 3 signaux consécutifs. Bon, il se peut que ce
    soit voulu après tout...
    D'autre part, vous utilisez P6.3, donc P6SEL est juste. Par contre, vous
    utilisez INCH_5 et si je me souviens bien, celui ci est relatif à P6.5.

    D'autre part, sachez que si vous faites l'acquisition de signaux et que vous
    ne les lisez pas d'une manière ou d'une autre, l'ADC sera bloqué jusqu'à
    la lecture et en attendant, vous n'aurez plus d'interruptions.

    Je serais vous, je prendrais un code exemple de TI (c'est ce que je fais
    à chaque fois) et je le modifierais.

    À tout hasard, j'ai fait un sommaire de tous les codes exemples de TI à
    la page suivante:

    http://passworld.co.jp/ForumMSP430/viewtopic.php?t=14

    Pascal




    Citation Envoyé par gourouman1 Voir le message
    Bonjour, j'aimerais savoir si quelqu'un pourrait m'aider !

    Mon problème : je n'arrive pas à convertir une tension analogique en numérique.

    Mon code est le suivant :
    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
    // Initialize P6.3 for A/D Conversion:
    //------------------------------------
       	  P6SEL |= 0x08;        // Enable A/D channel inputs   (Broche P6.3)
     
      	  ADC12CTL0 = ADC12ON + MSC + SHT0_2;    // Turn on ADC12, set sampling time
      	  ADC12CTL1 = SHP + CONSEQ_3;            // Use sampling timer 
      	  ADC12MCTL5 = INCH_5 + EOS;             //               // ref+ = AVcc, channel = A5
      	  ADC12CTL0 |= ENC;                      // Enable the conversion					
    	  ADC12CTL0 |= ADC12SC;                  // Start conversion
     
    // Conversion of the output of Amplifier:
    //---------------------------------------
    	  while ((ADC12IFG & BIT3)== 0);    // BIT3
     
          Valeur_Ultraviolet = ADC12MEM3;
    VAleur_Ultraviolet est la valeur que je dois traiter par la suite...
    Il faut que j'obtienne par exemple : Valeur_Ultraviolet = XX Volts.

    Comment fonctionne les registres ADC12MEMXX ?

    Voilà, j'espère que quelqu'un pourra m'aider,
    Cordialement,
    Xav

Discussions similaires

  1. [novice,C#,asp] Envoi données au WebS. apres clique d'un bouton
    Par MissLaLou dans le forum Services Web
    Réponses: 2
    Dernier message: 03/05/2007, 10h26
  2. Envoi donnes par socket
    Par astrotouf dans le forum Web & réseau
    Réponses: 4
    Dernier message: 09/04/2007, 20h06
  3. Pb envoi donnée MySQL
    Par iceman2001 dans le forum Requêtes
    Réponses: 4
    Dernier message: 31/01/2007, 16h31
  4. [débutante] Envoi données et affichage
    Par Sapphire77 dans le forum Services Web
    Réponses: 117
    Dernier message: 08/02/2006, 03h03
  5. Envoi données
    Par Ben42 dans le forum Langage
    Réponses: 7
    Dernier message: 25/01/2006, 10h11

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