Interface Serial Periférica (SPI)

Prós: Fácil de configurar, rápido, suporta vários dispositivos em um único barramento, permite comunicação bidirecional

Contras: quando o SPI está enviando dados para um dispositivo, nenhum outro dispositivo pode receber ou enviar dados. Ao se comunicar com um dispositivo lento (um com baixa capacidade de leitura), como um cartão SD, por exemplo, a velocidade da comunicação pode diminuir consideravelmente.

Informações Gerais: SPI

O SPI permite que os dados sejam trocados um byte por vez entre o microcontrolador e um módulo por meio de duas linhas de comunicação. Isso é conhecido como protocolo mestre/escravo, o que significa que sempre há um único dispositivo mestre que controla o fluxo de comunicação com um ou mais dispositivos escravos. Pense no mestre como um guarda de trânsito. Ele direciona todos os dispositivos escravos conectados para que eles saibam quando é sua vez de se comunicar.

O protocolo SPI requer no mínimo três conexões de sinal (pelo menos três pinos) e geralmente possui quatro, além das conexões de energia. O diagrama a seguir mostra as conexões (as setas indicam o fluxo de dados). As linhas vermelhas constituem as conexões de barramento compartilhadas usadas para falar com os dispositivos escravos. O fio verde é a conexão de barramento compartilhada usada pelos escravos para falar com o mestre. A linha azul é o chip selecionado para sinalizar cada escravo individualmente


Conexões de Sinal SPI


SCK

Este é o pino para a saída do relógio serial, o sinal de clock que mantém o dispositivo e o módulo sincronizados durante a transferência de dados. Os dois dispositivos precisam ter um entendimento mútuo de quão rápido os dados devem ser transferidos entre eles. Às vezes, isso é chamado de baudrate ou bitrate (taxa de bits). O sinal de clock fornece o sinal de referência que os dispositivos usam ao trocar dados.

Sem um sinal de clock para sincronizar os dispositivos, os dispositivos não teriam como interpretar o sinal nas linhas de dados.

Um bit de dados é transferido a cada ciclo de clock (veja o diagrama abaixo).

MOSI

MOSI significa Master Out, Slave In. MOSI é a conexão usada para enviar dados para um dispositivo escravo.

MISO

MISO significa Master In, Slave Out. Esta é a conexão usada pelo dispositivo escravo selecionado para enviar dados ao dispositivo mestre.

CS ou SS

Esta linha, normalmente chamada de linha Chip Select (CS) ou Slave Select (SS), é usada pelo dispositivo mestre para notificar um dispositivo escravo específico que está prestes a enviar dados. Normalmente o chamamos de CS, mas você pode vê-lo de qualquer maneira em folhas de dados e outras referências.

O diagrama a seguir mostra como os vários pinos no protocolo SPI são alternados para criar dados significativos. Neste caso, o mestre envia o caractere ASCII 'S', e o escravo responde com 'F'.


Diagrama de tempo da troca de dados SPI Modificado Imagem modificada da Sparkfun, usado sob a licença Creative Commons (CC BY-NC-SA 3.0).


Lembre-se de que o mestre inicia toda a comunicação. Quando estiver pronto, a primeira coisa que fará é puxar o pino CS/SS para baixo para permitir que o dispositivo escravo saiba que uma transmissão de dados está prestes a começar. O mestre mantém esse pino baixo durante a troca de dados, conforme visto no diagrama acima.

Com o pino CS/SS baixo, o mestre começará a alternar o pino do relógio (SCK) enquanto simultaneamente controla o MOSI para representar os bits de informação que deseja enviar ao escravo. Os números em verde no diagrama acima delineiam cada bit no byte que está sendo transferido.


Last modified: Tuesday, September 27, 2022, 3:06 PM