Protocolo SPI
Introdução
É um protocolo que permite a comunicação do microcontrolador com diversos outros componentes, formando uma rede.
Em modo Slave (escravo), o microcontrolador é um componente da rede que também recebe o sinal de relógio. Em modo mestre (master), é o microcontrolador que gera o sinal de relógio e também deve possuir um pino de entrada e saída para habilitação de cada periférico.
Esta interface envia dados de forma síncrona, foi definida pela Motorola e é utilizada para curtas distâncias, por exemplo em sistemas embarcados, sensores e cartões SD.
Interface
Especificam 4 sinais lógicos:
SCLK – Sinal de relógio, clock de envio de informações.
MOSI – Sinal de saída do master para o slave.
MISO – Sinal de entrada, saída do slave para o master.
SS – Seleciona o dispositivo slave que vai se comunicar.
Operação
Para operar o SPI necessita-se de 1 mestre e 1 ou mais escravos.
Para iniciar a comunicação, primeiramente o mestre decide a velocidade de clock.
Geralmente, ele utiliza de velocidade e a frequência máxima que o escravo suporta.
Geralmente, esta frequência não passa de poucos Mhz.
Depois o mestre transmite o sinal lógico 0 para o escravo desejado através da linha selecionada pelo SSn. O sinal lógico 0 é enviado porque a linha do chip selecionado está em pausa. O sinal lógico 1 significa desligado e o sinal lógico 0 significa ligado.
Se um período de espera é necessário (por exemplo num conversor analógico para digital), então o mestre necessita esperar um período até iniciar os ciclos de clock.
Durante
cada
clock
do
SPI,
uma
transmissão
full
duplex
ocorre:
O mestre envia um bit na linha MOSI; o Escravo lê o bit na mesma linha.
O escravo envia um bit na linha MISO; o Mestre lê o bit na mesma linha.
Note que nem todas as transmissões ocorrem os 4 passos. Se o protocolo precisar apenas enviar dados em um único sentido, o dispositivo no papel de receptor terá que