Problème synchronisation SPI pic 18F252
Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

Problème synchronisation SPI pic 18F252



  1. #1
    Fusex

    Problème synchronisation SPI pic 18F252


    ------

    Bonjour,

    Dans le cadre de la réalisation de l'électronique embarquée pour une fusée expérimentale, j'ai besoin de faire communiquer entre-eux plusieurs microcontrôleurs, et j'ai choisi la liaison SPI.

    J'utilise le compilateur PIC-C de CCS pour programmer mes PICs qui sont des 18F252. Pour l'instant il y en a juste deux.

    Sur le maître, j'ai rentré le code suivant :

    setup_spi(SPI_MASTER | SPI_H_TO_L | SPI_CLK_DIV_64);
    spi_write(0b01110100); //j'envoie une requête au PIC esclave
    while(!spi_data_is_in()){}
    gyro=spi_read(); //l'esclave envoie une réponse que le maître lit quand elle arrive


    Et sur l'esclave :

    setup_spi(SPI_SLAVE | SPI_SS_DISABLED);
    while(!spi_data_is_in()){}
    valeur = spi_read(); //on lit la requête du maître
    if (valeur==0b01110100)
    {
    spi_write(54);//on envoie une valeur (ici arbitraire)
    }


    Tout ça est dans une boucle infinie dans les deux pics. Ce n'est qu'un extrait du code évidemment.

    J'ai fait des tests pour voir si l'esclave comprenait bien la requête et si le maître recevait bien de l'esclave la valeur 54, et en fait ça ne marche qu'une fois de temps en temps !
    J'ai l'impression qu'il y a un problème de synchronisation car en utilisant un débugger et en regardant l'état des variables pendant le déroulement du programme, je vois que la variable "valeur" (lue par l'esclave en spi) est souvent égale à 01000111, ou 11101000, ou 10100011, bref toujours l'octet que j'ai envoyé mais comme si l'esclave ne savait pas par quel bit de l'octet commencer la lecture, et vu que le même octet est envoyé continuellement, j'ai l'impression qu'il fait comme si il n'arrivait pas à se synchroniser sur le premier bit de l'octet et commençait sa lecture au pif, au milieu de l'octet.

    Peut-être que ma méthode n'est pas bonne ou que je n'utilise pas la communication SPI correctement, mais peut-être pourrez-vous m'aider !
    Peut-être que le problème vient de la boucle infinie, qu'il ne faut pas transmettre la même chose en continu, et qu'il faut une pause entre chaque octet envoyé, même si c'est le même...

    -----

  2. #2
    invite7a49d0d5

    Cool Re : Problème synchronisation SPI pic 18F252

    Salut,

    2 suggestions :

    -vérifier les soudures

    -ralentir la communication SPI (via le diviseur)

    et je présume que l'erreur serait pareil même si tu envoyait des octets différents...

    et après je connais pas la librairie SPI de CCS...

    vede
    ;O]
    __________
    ...

  3. #3
    Fusex

    Re : Problème synchronisation SPI pic 18F252

    La vitesse est déjà diminuée au maximum (DIV_64).
    Peut-être faut-il configurer le mode de communication SPI différement ? Synchronisation sur front montant, descendant... est-ce que quelqu'un s'y connait là-dessus ?

    Merci.

  4. #4
    RISC

    Re : Problème synchronisation SPI pic 18F252

    Salut,

    Si tu nous parlais un peu de ton hard....
    Quel type d'oscillateur utilises-tu ?
    Peux-tu faire voir tes bits de configuration ?
    Comment as-tu cablé ton interface SPI entre les 2 cartes ?

    a+

  5. A voir en vidéo sur Futura

Discussions similaires

  1. Réponses: 25
    Dernier message: 03/07/2014, 07h36
  2. petit problème programmation 18F252
    Par UNTOUCHABLE dans le forum Électronique
    Réponses: 17
    Dernier message: 26/02/2009, 14h56
  3. [AVRStudio4 + Atmega128 + SPI] Probleme sur le port SPI
    Par inviteff7a2099 dans le forum Électronique
    Réponses: 1
    Dernier message: 03/12/2008, 03h05
  4. synchronisation avec Pic
    Par invitea39e55a1 dans le forum Électronique
    Réponses: 0
    Dernier message: 16/06/2008, 12h52
  5. synchronisation avec pic
    Par invitea39e55a1 dans le forum Électronique
    Réponses: 0
    Dernier message: 16/06/2008, 11h16
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...