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

Embarqué Discussion :

Problème Bus SPI


Sujet :

Embarqué

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur Système Embarquée
    Inscrit en
    Juin 2021
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Système Embarquée
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2021
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Problème Bus SPI
    Bonjour,

    Je suis actuellement en stage et j'ai besoin de réaliser une fonction de transfert avec le Bus SPI.
    J'en ai réalisé une grâce à la datasheet de mon microcontrôleur (https://ww1.microchip.com/downloads/..._Datasheet.pdf, page 676 à 707 pour la partie SPI).

    Voici ma fonction :

    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
    static inline uint8_t spi_transmit(uint8_t data)
    {	
    	printf("Donnee a envoyer : %i \n", data);
    	
    	data = SPI_TDR_TD(data) | SPI_TDR_PCS(SPI_CHIP_SEL);
    	
    	//Transmission
    	while ((SPI0->SPI_SR & SPI_SR_TDRE) == 0);
    	
    	SPI0->SPI_TDR = data;
    	printf("Transmis : %i \n", data);
    	
    	//Lecture
    	while ((SPI0->SPI_SR & SPI_SR_RDRF) == 0);
    	
    	data = SPI0->SPI_RDR;
    	printf("Lu : %i \r\n", data);
    	
    	return data & SPI_RDR_RD_Msk;
    }
    La fonction tourne bien cependant la valeur lue est toujours 0...

    Nom : Capture d’écran 2021-06-01 120152.png
Affichages : 205
Taille : 9,4 Ko

    Avez vous une idée de ce qui cloche ?

    Voici un screen de mon signal SPI SCLK (en jaune) et de mon signal SPI MISO :

    Nom : SDS00005.png
Affichages : 205
Taille : 19,5 Ko

    EDIT :

    Apparemment, le problème viendrait de mon Chip Select qui n'attend pas les autres octets et donc comme au premier octet envoyé MISO est nul c'est pourquoi je ne lis que des 0. Cependant je ne sais pas quoi corriger pour obtenir un Chip Select correcte...

    Voici un screen de l'oscilloscope que je devrais obtenir pour que cela marche :

    Nom : Arduino.png
Affichages : 180
Taille : 31,6 Ko

    Voici mon initialisation de mon bus SPI :

    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
    /* Configure an SPI peripheral. */
    	spi_enable_clock(SPI0);
    
    	spi_disable(SPI0);
    	spi_reset(SPI0);
    	
    	spi_set_lastxfer(SPI0);
    	spi_set_master_mode(SPI0);
    	
    	spi_disable_mode_fault_detect(SPI0);
    	spi_set_peripheral_chip_select_value(SPI0, SPI_CHIP_SEL);
    	
    	spi_set_clock_polarity(SPI0, SPI_CHIP_SEL, SPI_CLK_POLARITY);
    	spi_set_clock_phase(SPI0, SPI_CHIP_SEL, SPI_CLK_PHASE);
    	
    	spi_set_bits_per_transfer(SPI0, SPI_CHIP_SEL, SPI_CSR_BITS_8_BIT);
    	spi_set_baudrate_div(SPI0, SPI_CHIP_SEL, (sysclk_get_peripheral_hz() / gs_ul_spi_clock));
    	
    	spi_enable(SPI0);

  2. #2
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2021
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2021
    Messages : 52
    Points : 41
    Points
    41
    Par défaut
    Tu es sur arduino ?

Discussions similaires

  1. [PIC] Problème avec le bus SPI
    Par aigle666 dans le forum Embarqué
    Réponses: 2
    Dernier message: 27/08/2018, 18h46
  2. Problème bus IDE et noyau 2.6.X
    Par Pinguins dans le forum Debian
    Réponses: 0
    Dernier message: 22/10/2009, 10h36
  3. communiquer sur bus SPI sur µC LPC2138 en C
    Par Efhache84 dans le forum C
    Réponses: 3
    Dernier message: 03/07/2009, 10h44
  4. Bus SPI + vitesse
    Par KHEOPS1982 dans le forum Automation
    Réponses: 0
    Dernier message: 16/02/2008, 09h47
  5. [16F628] Bus SPI
    Par jmf13 dans le forum Autres architectures
    Réponses: 1
    Dernier message: 17/09/2007, 14h10

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