jeudi 18 juillet 2013

[BIBLIOTHEQUE] SPI

Cette bibliothèque vous permet de communiquer avec des périphériques SPI, avec l’Arduino comme l’appareil maître.

UNE BRÈVE INTRODUCTION À L’INTERFACE PÉRIPHÉRIQUE SÉRIE (SPI)

Serial Peripheral Interface (SPI) est un protocole de données série synchrone utilisé par les microcontrôleurs pour communiquer avec un ou plusieurs dispositifs périphériques rapidement sur de courtes distances. Il peut également être utilisé pour la communication entre deux microcontrôleurs.
Avec une connexion SPI il ya toujours un dispositif maître (généralement un microcontrôleur) qui contrôle les périphériques. Généralement, il ya trois lignes communes à tous les appareils:
  • MISO (Master à Slave Out) – La ligne de l’esclave pour l’envoi de données vers le maître,
  • MOSI (Master Out Slave In) – La ligne principal pour l’envoi de données vers les périphériques,
  • SCK (Serial Clock) – Les impulsions d’horloge qui synchronisent transmission de données généré par le maître
et une ligne spécifique pour chaque appareil:
  • SS (Slave Select) – la broche sur chaque appareil que le maître peut utiliser pour activer et désactiver des appareils spécifiques.
Lorsque l’esclave choisi la broche d’un appareil faible, il communique avec le maître. Quand il est élevé, il ne tient pas compte du maître. Cela vous permet d’avoir plusieurs périphériques SPI partageant la même MISO, MOSI, et les lignes CLK.
Pour écrire du code pour un nouveau dispositif SPI vous devez noter quelques petites choses:
  • Est-données décalées dans le bit le plus significatif (MSB) ou Least Significant Bit (LSB) en premier? Ceci est contrôlé par l’SPI.setBitOrder de fonction ().
  • Est l’horloge de données au ralenti lorsque haute ou basse? Sont des échantillons sur le front montant ou descendant d’impulsions d’horloge?Ces modes sont commandés par le SPI.setDataMode () fonction.
  • Quel est le débit SPI cadencé à? Ceci est contrôlé par l’SPI.setClockDivider () fonction.
La norme SPI est lâche et chaque dispositif met en oeuvre un peu différemment. Cela signifie que vous devez porter une attention particulière à la fiche technique de l’appareil lorsque vous écrivez votre code.
D’une manière générale, il existe quatre modes de transmission. Ces modes de contrôle si les données sont transférées à l’intérieur et sur ​​le front montant ou descendant du signal d’horloge de données (appelée l’horloge de phase ), et si l’horloge est inactive lorsque haute ou basse (appelé l’horloge polarité ). Les quatre modes se combinent polarité et de phase selon ce tableau:
ModePolarité de l’horloge (CPOL)Phase de l’horloge (ACSP)
SPI_MODE000
SPI_MODE101
SPI_MODE210
SPI_MODE311
Le SPI.setDataMode () fonction vous permet de définir le mode de contrôle de polarité de l’horloge et la phase.
Chaque dispositif SPI a une vitesse maximale autorisée pour les bus SPI.Le SPI.setClockDivider () vous permet de modifier la vitesse d’horloge de rendre votre appareil fonctionne correctement (par défaut 4 MHz).
Une fois que vous avez vos paramètres SPI définies correctement vous avez juste besoin de comprendre qui s’enregistre dans le contrôle de votre appareil qui fonctionne, et vous êtes bon pour aller. Cela sera expliqué dans la fiche de données de votre appareil.
Pour en savoir plus sur SPI, voir la page de Wikipedia sur SPI .

LIENS

L’affichage du tableau suivant sur lequel les lignes broches SPI sont réparties sur les différentes cartes Arduino:
ArduinoMOSIMISOSCKSS (esclave)SS (maître)
Uno ou Duemilanove11 ou ICSP-412 ou ICSP-113 ou ICSP-310-
Mega1280 ou Mega256051 ou ICSP-450 ou ICSP-152 ou ICSP-353-
LeonardoICSP-4ICSP-1ICSP-3--
En raisonICSP-4ICSP-1ICSP-3-4, 10, 52
Notez que MISO, MOSI et SCK sont disponibles dans un emplacement physique cohérente sur l’embase ICSP, ce qui est utile, par exemple, dans la conception d’un bouclier qui fonctionne sur chaque bord.

REMARQUE SUR SLAVE SÉLECTIONNEZ LE CODE PIN (SS) SUR LES PANNEAUX À BASE AVR

Toutes les cartes à base d’AVR ont une broche SS qui est utile quand ils agissent comme un esclave commandé par un maître externe. Depuis cette bibliothèque prend en charge que le mode maître, cet axe doit être réglé toujours aussi SORTIE sinon l’interface SPI pourrait être mis automatiquement en mode esclave par le matériel, ce qui rend la bibliothèque inopérant.
Il est cependant possible d’utiliser n’importe quelle broche que la sélection d’esclave (SS) pour les dispositifs. Par exemple, le bouclier Ethernet Arduino utilise la broche 4 à contrôler la connexion SPI sur la carte SD à bord, et la broche 10 pour contrôler la connexion au contrôleur Ethernet.

FONCTIONNALITÉ SPI ÉTENDUE POUR LA RAISON

L’interface SPI de l’Arduino Due fonctionne différemment que les autres cartes Arduino. La bibliothèque peut être utilisé sur la raison avec les mêmes méthodes disponibles pour d’autres cartes Arduino ou en utilisant les méthodes prolongées . Les méthodes de longues exploite le leSAM3X matériel et permet quelques fonctions intéressantes comme:
  • la gestion automatique de la sélection de l’esclave du dispositif.
  • gestion automatique des configurations de périphériques différents (vitesse d’horloge, le mode de données, etc) de sorte que chaque dispositif peut avoir sa propre configuration sélectionnée automatiquement.
Arduino a fait trois broches exposées pour les dispositifs sélection d’esclave (SS) lignes (broches 4, 10 et 52).




Aucun commentaire:

Enregistrer un commentaire