Répondre à la discussion
Affichage des résultats 1 à 2 sur 2

Questions sur la réception SPI et le FIFO



  1. #1
    youyou4u

    Questions sur la réception SPI et le FIFO

    Bonjour à tous,

    J'essaye en ce moment même de communiquer avec un ADC 24bits avec la liaison SPI. Alors voilà, j'arrive très bien à écrire dans ses registres et même qu'il me répond ! Je vois bien ses petites réponses de mesures sur mon oscillo...
    Maintenant, IMPOSSIBLE de lire les données qu'il m'envoie O_o.

    Je travaille avec un ARV32 d'atmel, Quand j'utilise la fonction test SPI ça marche bien, car je recois les données que j'envois dans le registre de réception RDR. (Cette fonction relie en interne MOSI à MISO).
    PAr contre, sans ça, le registre RDR n'est jamais remplis .. c'est embéttant.

    Le protocole de communication avec l'ADC :
    - J'envois un octet de commande RDATA (lecture d'une mesure)
    - après un temps d'environ 13 µs il me répond ses 24bits de mesures. (pour cela j'effectue un temps d'attente de 13µs puis j'envois 3octets à 0xFF)
    Jusqu'ici tout va bien, voici ce que je comptais faire ensuite:
    - Si j'ai bien compris la datasheet, on peut activer un registre FIFO de lecture qui acceuille 4 caractères.
    - Ensuite on fait quatres lecture consécutives pour le vider et enregistrer notre mesure.

    J'ai activé les intérruption SPI pour voir ce qui se passe un peu : souvent l'intérruption RDRF s'active (data has been received and the received data has been transfered from the serializer to RDR since the last read of RDR), mais quand je regarde/lis le registre RDR, il y a WALOU dedans.

    Mais voilà, ça serait trop simple .

    Mes questions :
    - Est-ce que mon résonnement est le bon ?
    - Comment procéder à des tests pour voir si je vais vers une solution ?
    - Est-ce que je devrais plutôt effectuer mes propres fonctions SPI avec les TIMER du µcontroleur? (du coup je lirais les données reçues par intérruption sur une pin GPIO)

    Je n'arrive pas à trouver la chose qui cloche et le temps passe, passe... Merci de vos futures réponses Youri

    -----


  2. #2
    youyou4u

    Re : Questions sur la réception SPI et le FIFO

    Bon je m'auto-réponds pour ceux que ça pourrait aider.

    En fait il faut désactiver TOUTES les pins du SPI de la fonction GPIO . Je pensais qu'il fallait laisser celle de reception MISO (registre GPER).

    Pour ceux que ça interraisserait, voici l'explication des registres GPIO 32bits ATMEL AVR :

    GPER : Active/Désactive la fonction GPIO
    ODER : Si GPIO activé, met la pin en mode "entrée" ou "sortie"
    OVR : Quand la pin et en sortie, la met à 1 ou 0. Quand elle est en entrée, permet de lire sa valeur.
    PMRx : permettent de choisir la fonction périphérique de la pin si on ne l'utilise pas en GPIO

    Perso, j'avais confoncdu GPER et ODER, faut dire que certaines choses pourraient être plus explicite dans les datasheet!

    Voilà, j'espère au moins que ceci servira à quelqu'un.

Sur le même thème :

Discussions similaires

  1. Fifo
    Par Ravaner dans le forum Électronique
    Réponses: 5
    Dernier message: 01/06/2012, 20h39
  2. Flush une FIFO?
    Par VIIV dans le forum Électronique
    Réponses: 4
    Dernier message: 10/07/2009, 20h39
  3. Vider une fifo
    Par mister85 dans le forum Électronique
    Réponses: 8
    Dernier message: 26/07/2008, 13h27
  4. fifo pleine
    Par mister85 dans le forum Électronique
    Réponses: 6
    Dernier message: 17/07/2008, 14h31
  5. schema d'une fifo
    Par tourist88 dans le forum Électronique
    Réponses: 1
    Dernier message: 06/03/2007, 19h16