|
La
liaison série synchrone SPI
|
|
Le protocole SPI est une des liaisons série les plus répandue (avec l'I²C) sur des périphériques de types mémoires, horloges temps réelles, potentiomètre numériques,... Le 68HC11 possède une liaison série synchrone repondant à ce protocole. Il est implanté sur le PORTD.
Cliquer sur le registre qui vous interesse pour accéder à l'aide de
programmation.
Une transmission SPI est un échange de données entre le maître (MASTER) et l'esclave (SLAVE).
Une fois le registre de contrôle SPCR configuré,
il faut initialiser les flags du registre de status SPSR. Pour ce,
il faut lire SPSR puis SPDR à la suite, ce qui reset les flags dans
leurs valeurs d'initialisations. Le SPI est alors prêt à échanger
des données avec son ou ses périphériques(s) SPI. Une transmission s'effectue de la manière suivante :
|
|
Le Registre de Status SPSR (SPI Status Register) :
Le flag SPIF (SPI Interrupt Flag) Ce flag (drapeau) indique la reception (mode SLAVE) ou la fin d'une transmission (mode MASTER) du SPI :
Le flag WCOL (WriteCOLlision) Ce flag est positionné lorsqu'on essaie d'envoyer une nouvelle donnée alors que la transmission précédente n'est pas terminée.
Le flag MODF (MODe Fault) Ce flag n'est utilisé que dans les systèmes comportant plusieurs circuits qui peuvent être MASTER. Lorsqu'un circuit essaie de transmettre alors qu'une transmission est en cours, MODF est positionné et le SPI est inhibé (MSTR = 0, SPE = 0, DDRD = 0).
|
|
Le Registre de données SPDR (SPI Data Register) : Ce registre est celui où s'effectue tout les
transferts : on vient y écrire ou y lire les données à lire ou à écrire...
|