Vous êtes sur la page 1sur 15

SPI

Presentation :
Systèmes embarqués avancés
Réalisé par : Arari Ahmed
Bellaaj Iskander
Achich Abdelmajid
Bousrih Nour

Encadrée par : Mme. Ikram Maaoui Ben Hassine


Le plan de notre présentation

Sommaire :
1. introduction
2. Interface
3. Fonctionnement
2
Introduction
Introduction

Une liaison SPI (Serial Peripheral Interface) est un bus de données série synchrone baptisé ainsi par
Motorola en 1980, qui opère en mode Full-duplex. Les circuits communiquent selon un schéma maître
esclaves, où le maître s'occupe totalement de la communication. Plusieurs esclaves peuvent coexister
sur un même bus, dans ce cas, la sélection du destinataire se fait par une ligne dédiée entre le maître et
l'esclave appelée chip select.

4
1
Interface
Interface

Le bus SPI utilise Quatre signaux logique:


SCLK — Serial Clock, Horloge (généré par le maître)
MOSI — Master Output, Slave Input (généré par le maître)
MISO — Master Input, Slave Output (généré par l'esclave)
SS — Slave Select, Actif à l'état bas (généré par le maître)

6
3
Fonctionnement
Fonctionnement

Une transmission SPI typique est une communication simultanée entre un maître et un esclave :
• Le maître génère l'horloge et sélectionne l'esclave avec qui il veut communiquer par l'utilisation du signal SS
• L'esclave répond aux requêtes du maître
À chaque coup d'horloge le maître et l'esclave s'échangent un bit. Après huit coups d'horloges le maître a transmis un octet à l'esclave et
vice versa. La vitesse de l'horloge est réglée selon des caractéristiques propres aux périphériques .

8
Fonctionnement

MODE CPOL CPHA CPHA — Clock Phase,  le bit de poids faible
0 0 0 CPOL  — Clock Polarity, le bit de poids fort
Le CPOL détermine si au repos l’horloge est au niveau BAS (CPOL=0) ou
1 0 1 HAUT (CPOL=1). Le CPHA détermine à quel front de l’horloge les données
2 1 0 sont transmises. CPHA=0 les données sont valides au premier front d’horloge,
3 1 1 CPHA=1 elles sont valides au deuxième front. 9
3
Avantage et
Inconvénients
Avantage et Inconvénients

11
4
marketing MIx
Initialisation du spi
//void PeripheralInit_SPI1_Master(){
    GPIO_InitTypeDef GPIO_InitDef;
    SPI_InitTypeDef SPI_InitDef;
Initialisation spi et
      GPIO_StructInit(&GPIO_InitDef);
    SPI_StructInit(&SPI_InitDef); gpio
    // initialize clocks
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1 | RCC_APB2Periph_AFIO | RCC_APB2Periph_GPIOA,
ENABLE); Initialisation horloge
    // do not initialize A4/SS because a software SS will be used
    // initialize A5/SCK alternate function push-pull (50 MHz)
    GPIO_InitDef.GPIO_Pin = GPIO_Pin_5;
    GPIO_InitDef.GPIO_Mode = GPIO_Mode_AF_PP;
    GPIO_InitDef.GPIO_Speed = GPIO_Speed_50MHz;
   GPIO_Init(GPIOA, &GPIO_InitDef);
Configuration du
    // initialize A6/MISO input pull-up (50MHz)
    GPIO_InitDef.GPIO_Pin = GPIO_Pin_6; master et slave
    GPIO_InitDef.GPIO_Mode = GPIO_Mode_IPU;
    GPIO_InitDef.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOA, &GPIO_InitDef);
    // initialize A7/MOSI alternate function push-pull (50 MHz)
    GPIO_InitDef.GPIO_Pin = GPIO_Pin_7;
    GPIO_InitDef.GPIO_Mode = GPIO_Mode_AF_PP;
    GPIO_InitDef.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOA, &GPIO_InitDef);
     SPI_InitDef.SPI_Direction = SPI_Direction_2Lines_FullDuplex;
    SPI_InitDef.SPI_Mode = SPI_Mode_Master;
    SPI_InitDef.SPI_DataSize = SPI_DataSize_8b;     // 8-bit transactions Configuration du spi
    SPI_InitDef.SPI_FirstBit = SPI_FirstBit_MSB;    // MSB first
    SPI_InitDef.SPI_CPOL = SPI_CPOL_Low;            // CPOL = 0, clock idle low
    SPI_InitDef.SPI_CPHA = SPI_CPHA_2Edge;          // CPHA = 1
    SPI_InitDef.SPI_NSS = SPI_NSS_Soft;             // use software SS
    SPI_InitDef.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_64; // APB2 72/64 = 1.125 MHz
    // SPI_InitDef.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_256; // APB2 72/256 = 0.28 MHz
    // SPI_InitDef.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_16; // APB2 72/16 = 4.5 MHz
    SPI_InitDef.SPI_CRCPolynomial = 7;
    SPI_Init(SPI1, &SPI_InitDef);
    SPI_Cmd(SPI1, ENABLE);
}
13
14
Merci beaucoup pour votre attention !

Vous aimerez peut-être aussi