le bus SPI Interface(Serial Peripheral Interface)est un protocole de communication série à 3 fils haute vitesse (4 Si vous incluez SSn-voir ci – dessous). Son objectif prioritaire est de réduire le routage des fils sur PCB en remplaçant le bus parallèle traditionnel par une interface série. (Vous pouvez simplement gérer un bus 8 bits le routant via un PCB à plusieurs couches, mais lorsque vous passez à 16, 32 bits et plus, cela devient beaucoup plus difficile).,
les connexions sont:
- MOSI (Master Out Slave In) .
- MISO (maître en esclave) .
- SCK (horloge esclave) .
- SS_n (Slave Select).
– désigne la nomenclature PIC
Remarque: Le Dernier signal SS ou slave select est séparé du protocole et est généralement implémenté en tant que broche de contrôle d’activation du microcontrôleur. Il est inclus ici pour être complet.
L’interface SPI PIC permet la connexion de périphériques à l’aide d’une interface série haute vitesse. SPI FlashMemory et SPI SRAM peuvent facilement être ajoutés à n’importe quel système., D’autres types de dispositif incluent:
- ADC.
- CAD.
- Flash.
- EEPROM.
- Accelléromètres.
- les écrans Lcd.
- Température & capteurs d’Humidité.
- …et beaucoup plus.
sa seule autre vraie concurrence est le bus I2C, c’est pourquoi vous voyez souvent ces interfaces à la fois disponibles sur les processeurs et les microcontrôleurs.
l’interface SPI a été conçue dans les années 1970 par Motorola, qui l’a utilisée dans son processeur 68000, et elle a été rapidement adoptée par de nombreux autres fabricants comme standard defacto.,
Il est destiné àtransmission de données d’un appareil maître à un ou plusieurs appareils esclaves sur de courtes distances et à des vitesses élevées (MHz).
comment cela fonctionne
cela fonctionne en transférant des données un bit à la fois entre deux périphériques avec le périphérique maître envoyant le signal d’horloge (SCK). L’horloge contrôle la synchronisation du transfert de données.
Les données (MOSI )sont envoyées à partir d’un registre à décalage dans le dispositif SPI Maître avec un signal d’horloge (SCK) tandis qu’en même temps un autre registre à décalage reçoit des données de L’esclave (MISO, ).,
Le Maître est toujours en contrôle et lance le transfert de données à l’aide du signal d’horloge. Les périphériques esclaves sont sélectionnés à l’aide d’un signal de sélection esclave séparé contrôlé par logiciel, c’est-à-dire que ces signaux sont séparés du module matériel SPI.
Remarque: Le nombre de bits n’est pas défini par le protocole, vous n’êtes donc pas limité à utiliser seulement 8 – Il peut s’agir de n’importe quel nombre de bits. Ceci est utile lors du chaînage en série d’esclaves SPI car vous devez définir le nombre de bits sur la somme de tous les bits requis par chaque périphérique.,
Remarque: SPI définit un système maître unique.
le protocole alternatif, IIC, permet l’opération multiple de maître de bus.
définition de L’horloge de L’interface SPI
l’horloge SPI n’est pas du tout définie – ce qui signifie que différents périphériques esclaves peuvent assumer un fonctionnement d’horloge différent; un esclave peut nécessiter une horloge inactive élevée, tandis qu’un autre peut nécessiter un état inactif bas. D’autres réagiront au bord montant tandis que d’autres réagiront au bord tombant!,
le protocole D’interface SPI fait face à cela en vous permettant de programmer ces détails sur le module matériel SPI.
l’image suivante montre l’interface PIC pour SPI (tous les modules matériels SPI dans d’autres microcontrôleurs permettront la même opération en utilisant simplement des registres différents).,
interface SPI signaux PIC (extrait de la fiche technique pic DS39582B)
c’est à vous de régler l’horloge correcte pour votre appareil lorsqu’il est activé par un signal de sélection esclave (ou dans le cas d’un seul esclave, il est toujours sélectionné
connexion Arduino SPI
le schéma suivant montre l’interface avec les connexions SPI qui se trouve également être le connecteur de programmation (ICSP), sur la carte Arduino, qui permet la programmation directe de L’ATmega328p.,p>
5 – Reset
6 – GND
Location of the SPI connector on Arduino Uno R3
Photo Credit : kenming_wang (mod shows ICSP)
Different SPI Interface operational Modes
There are three ways of using the SPI interface
- Single Master – Single Slave.,
- maître unique-plusieurs esclaves-puce sélectionnée.
- maître unique – esclaves multiples – dasiy chained.
maître unique – esclave unique.
Voici la configuration pour une connexion de périphérique SPI unique:
remarque: le signal de sélection de puce SS est facultatif pour un système de périphérique unique, car vous attacherez normalement L’entrée SS à l’esclave low (si les autres lignes sont,
Interface SIP: à l’aide de chip selects
avec ce schéma, vous contrôlez chaque périphérique esclave en utilisant sa ligne de sélection de puce (généralement les flèches rouges basses actives affichent les contrôleurs). Lorsqu’elle est désactivée, la sortie des données de la bande passe dans un État à haute impédance afin de ne pas interférer avec l’esclave sélectionné actuellement et l’entrée de données de l’esclave est ignorée (checkdatasheet).,
l’avantage de ce schéma est que vous pouvez considérer (contrôler) chaque appareilséparément lorsque vous le comparez avec la méthode daisy chain – permettant la connexion de périphériques SPI qui nécessitent différents schémas d’horloge.
Si vous avez des esclaves SPI qui fonctionnent à l’aide d’horloges différentes (bords / États inactifs), vous pouvez reprogrammer le module matériel SPI maître avant d’activer un CS spécifique afin que chaque esclave reçoive les signaux corrects qui lui sont envoyés.
Si vous utilisez la méthode Daisy chain, vous devez vous assurer que toutes les puces utilisent le même bord d’horloge et le même état d’horloge inactif.,
SPIInterface :Daisy chaining
avec ce schéma, toutes les données envoyées par le maître sont décalées vers tous les périphériques et toutes les données envoyées depuis chaque périphérique sont décalées vers le suivant (illustré par une flèche pointillée rouge). Pour que ce schéma fonctionne, vous devez vous assurer que chaque esclave utilise l’horloge de la même manière et que vous devez obtenir le bon nombre de bits, il y a donc plus de travail à faire dans le logiciel.
Remarque: L’avantage de la méthode en guirlande est que vous enregistrez un signal de sélection de puce pour chaque périphérique SPI esclave.
Plus d’informations sur Wikipedia.,
SPI Interface Daisy Chain
SPI Daisy Chain exemple
utilisez plusieurs puces HC595, liées en guirlande, ce qui permet d’augmenter facilement le nombre de sorties disponibles sans utiliser de nombreuses broches de microcontrôleur.
Les limites de fonctionnement sont la vitesse de HC, la vitesse du SPI de sortie. Prise en compte également de la conception, par exemple si vous conduisez un ensemble de LED qui doit être mis à jour toutes les 20 ms.
SPI parallèle par rapport à série
le compromis entre l’utilisation d’une interface parallèle et L’interface SPI est la vitesse, par exemple., si vous lisez un ADC 12 bits parallèle à 200 kSPS, vous pouvez lire le débit ata 200kHz de l’appareil, mais si vous souhaitez obtenir le même débit de données en utilisant SPI, vous avez besoin d’une vitesse série de 200kHz x 12 = 2.4 MHz. Donc, le compromis réel est la vitesse et le bruit consécutif introduit dans le circuit.
résumé
L’interface SPI définit un protocole très populaire qui fonctionne à grande vitesse. Le principal problème est que les périphériques esclaves ne sont liés par aucun schéma de synchronisation particulier, ils peuvent donc fonctionner différemment les uns des autres et cela peut rendre leur contrôle difficile, c’est-à-dire, l’horloge idle et edge doivent être réglés correctement pour chaque appareil.
les Avantages:
- Haute vitesse.
- interface extrêmement simple qui est facile à répliquer dans le logiciel.
inconvénients:
- Les puces esclaves sont libres d’adopter n’importe quel schéma de synchronisation dont elles ont besoin.