-
16/08/2006 - 08h39 DLEGALL
Réception de trames par SPI
Bonjour,
J'utilise un microcontrôleur S12 (de Freescale). Il faut que je gère la transmission de 8 trames successives par SPI entre un micro Master et un micro Slave.
La transmission se fait correctement mais la réception est totalement aléatoire.
Le bit SPIF qui correspond à la présence d'une nouvelle donnée sur le registre SPIDR (data register) est tout le temps à 1. Je n'arrive pas à intercepter chaque trame qui passe sur le SPIDR.
Je code en C.
Quelqu'un aurait-il un exemple de programme ou une solution pour m'aider à avancer dans mon projet?
Je vous remercie.
Delphine
-
16/08/2006 - 12h51 umfred
Re : Réception de trames par SPI
D'après une datasheet de S12 (MC9S12HZ256), le bit SPIF est remis à 0 en lisant le registre SPISR (avec SPIF=1) suivi d'un accès en lecture au registre de données SPI (SPIDR).
Je pense donc qu'au lieu de tester juste le bit SPIF, il faut lire le registre entier avant de tester le bit, puis ensuite lire la données.
PS: Si tu poste ce genre de question dans la rubrique électronique, je pense que tu aurais plus de réponse -
16/08/2006 - 13h18 DLEGALL
Re : Réception de trames par SPI
Oui en effet je viens lire SPISR avant de lire le registre SPIDR...mais le bit SPIF ne redescend pas...
Peut être que la transmission est trop rapide et qu'il n'a pas le temps de détecter l'arrivée d'une nouvelle trame...
Et merci pour le conseil je vais mettre mon message dans la rubrique électronique!
-
16/08/2006 - 20h39 Jack
Re : Réception de trames par SPI
Tu peux montrer ton code d'initialisation de ta spi ainsi que celui de la lecture des trames?
A+
| | |