Você está na página 1de 7

22/6/2014

Home

Comunicao SPI Parte 1

Sobre

Eventos Downloads Contato

Registre-se

Login

Comunicao

SPI Parte 1
por Francesco Sacco em segunda-feira, 05 de maio de 2014.

O objetivo deste artigo definir os princpios da comunicao SPI, quais so suas vantagens e onde esses dispositivos so utilizados. Tambm vamos analisar os
fundamentos bsicos de hardware.

Tipos de Comunicao Serial


Uma vez que os equipamentos eletrnicos vm agregando mais e mais funes, a utilizao de diversos circuitos integrados torna-se cada vez mais comum. No
entanto, no mais possvel estender longos barramentos de comunicao paralelos, pois tornariam as placas de circuito impresso caras e muito grandes. Logo,
uma comunicao serial entre esses dispositivos se torna necessria.

Diversas tecnologias de interligao serial entre dispositivos foram desenvolvidas, podendo ser separadas em duas grandes categorias, a comunicao sncrona e
a comunicao assncrona. Dentre os mtodos de comunicaes mais conhecidos, destacam-se trs:

UART: Universal Asynchronous Receiver Transmitter;


SPI: Serial Peripheral Interface;
I2C: Inter Integrated Circuit.

http://www.embarcados.com.br/spi-parte-1/

1/7

22/6/2014

Comunicao SPI Parte 1

J estamos bastante familiarizados com a comunicao serial assncrona pelo uso do padro UART (RS232). No entanto, existem grandes vantagens no uso de
uma comunicao serial sncrona em detrimento da assncrona.

Alm disso, h grandes diferenas mesmo entre os protocolos sncronos. Apesar do padro de cada protocolo definir limites mximos de taxas, cada fabricante
possui a liberdade de desenvolver dispositivos com suas velocidades. Abaixo temos um comparativo entre diversos padres dispositivos seriais:

Tecnologia

Barramento de comunicao

Taxa mxima

Fluxo de dados

UART (RS232)

2 (sem controle de fluxo)

115.200 bps

Half ou Full Duplex

SPI

3 + n de Slaves

2 Mbps

Full Duplex

I2C

2 (at 127 dispositivos)

400 Kbps

Half Duplex

Como um exemplo de que esses limites podem ser ultrapassados, temos AT45BD0100D da Adesto. Essa memria SPI pode chegar at 66MHz (66Mbps) de
taxa de transferncia. Para o I2C, o 24FC64 da Microchip pode chegar a 1MHz (1Mbps).

Na comunicao serial sncrona definimos tambm o conceito de Mestre-Escravo. Normalmente o gerador do sinal de sincronismo definido como o Mestre
(Master) da comunicao. Para os dispositivos que utilizam do sinal de sincronismo gerado damos a definio de Escravo (Slave). A ligao mais comum desse
tipo de comunicao um Master e vrios Slaves.

Comunicao SPI
A comunicao SPI possui algumas caractersticas bsicas. Primeiramente os sinais de comunicao possuem uma direo fixa e definida. Isso significa que
sempre existem dois transistores definindo o estado de um pino (Push-Pull). Essa caracterstica uma das grandes diferenas entre outras comunicaes seriais
como I2C e OneWire, que possuem um mesmo barramento de dados para os sinais de entrada e sada atravs do esquema de dreno-aberto (Pull-Up).

http://www.embarcados.com.br/spi-parte-1/

2/7

22/6/2014

Comunicao SPI Parte 1

Apesar de utilizar dois sinais de comunicao de dados em vez de um, possvel atingir velocidades maiores de comunicao. Isso porque h pouca deformao
do sinal.

Outra caracterstica que toda troca de dados acontece sempre em ambas as direes. Em outras palavras, cada bit trocado entre o Master e um Slave trs um
bit do Slave para o Master. Dessa forma, definimos que a comunicao sempre full-duplex.

Os pinos bsicos de comunicao entre dispositivos SPI e o esquema padro de ligao so dados conforme abaixo:

Pino

Nome Padro

Significado

Nomes Alternativos

Do Master para o Slave

MOSI

Master Output Slave Input

SDO, DO, SO

Do Slave para o Master

MISO

Master Input Slave Output

SDI, DI, SI

Clock

SCLK

Serial Clock

SCK, CLK

SS

Slave Select

CS, nSS, nCS

Seleo de Slave

O sinal de SS funciona como Seleo de Escravo (Slave Select). um sinal ativo em nvel baixo, o que significa que o dispositivo selecionado quando este pino
http://www.embarcados.com.br/spi-parte-1/

3/7

22/6/2014

Comunicao SPI Parte 1

se encontra em nvel baixo. No entanto, muitos dispositivos utilizam este sinal como sincronismo de frame. Dessa forma, um sinal importante que deve ser
respeitado.

O Dispositivo
O princpio bsico de um dispositivo SPI o Shift-Register. Esse tipo de dispositivo faz a converso de um registrador paralelo para sinais seriais de acordo com
clock. Cada borda recebida no terminal de clock do dispositivo significa um bit transferido. Da mesma forma esse tipo de dispositivo capaz de receber dados
vindos de maneira serial e convert-los para um valor em um registrador paralelo.

A SPI no apenas capaz de fazer essa converso serial/paralelo, como tambm possui o gerador de clock, o controle para a troca do frame e o slave-select.
Dessa forma, tornando ele um dispositivo de comunicao completo. Na figura abaixo podemos observar como ele se dispe.

Forma de Onda
Por padro a comunicao SPI permite a configurao das bordas de comunicao do clock atravs de sua polaridade e fase. A configurao da polaridade se
d atravs de CPOL (Clock Polarity), e a configurao da fase se d atravs de CPHA (Clock Phase). Seus modos possveis so:

Modo

CPOL

CPHA

Borda de troca

Transio

Nvel em IDLE

Subida

Meio do bit

Descida

Comeo do bit

Descida

Meio do bit

Subida

Comeo do bit

http://www.embarcados.com.br/spi-parte-1/

4/7

22/6/2014

Comunicao SPI Parte 1

Outra caracterstica fundamental na comunicao a definio da posio do bit mais significativo (MSB). Atravs de DORD possvel definir que o bit mais
significativo ser o primeiro (DORD = 0) ou o ltimo (DORD = 1) bit trocado. possvel observar todas essas caractersticas atravs das duas imagens abaixo:

Concluso
Pudemos observar as principais caractersticas da comunicao SPI, alm de um comparativo de hardware com outros tipos de comunicao. Observamos
diagramas do funcionamento do dispositivo e entendemos como se d a forma de onda.

No prximo artigo vamos entender quais so as principais caractersticas de software para sua comunicao, utilizando o Arduino como hardware base. Tambm
http://www.embarcados.com.br/spi-parte-1/

5/7

22/6/2014

Comunicao SPI Parte 1

vamos estudar a estrutura de software com um dispositivo de mercado.

Referncia
http://gse.ufsc.br/~bezerra/disciplinas/ProgPerif/sem04.2/Seminarios/RicardoPlaner/Apresentacao.htm
http://www.youtube.com/watch?v=QMNck8nKw-k
http://www.ni.com/example/31163/en/
http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus
http://home.kpn.nl/thomas_7/1wire/1wire_isolating.html
http://www.adestotech.com/sites/default/files/datasheets/doc3639.pdf
http://ww1.microchip.com/downloads/en/DeviceDoc/21189T.pdf

Francesco Sacco
Engenheiro Eletricista formado PUC-SP e Tcnico em Eletrnica pela ETE Getlio Vargas, especialista em projetos eletrnicos analgicos e digitais,
especialmente no condicionamento de sinais analgicos e integrao entre dispositivos digitais. Atualmente trabalha na Gertec, em So Paulo.
Tw eetar

Curtir

21

Share

Posts Similares

Comunicao SPI Parte 3 Microcontrolador AT89S8253 + EEPROM 25LC256


Dando continuidade aos nossos artigos referentes comunicao SPI, apresentamos no primeiro artigo as
caractersticas eltricas e sua carta de sinais. No segundo artigo, demos continuidade
veja+

Top 10: Maio de 2014


Confira os 10 posts mais visualizados no Embarcados no ms de Maio de 2014.
10 de Abril.

Confira tambm os Top

Comunicao SPI Parte 2


No artigo anterior, SPI Parte 1, entendemos o que uma comunicao SPI e suas principais caractersticas
eltricas. Aqui vamos entender como a implementao
http://www.embarcados.com.br/spi-parte-1/

6/7

22/6/2014

Comunicao SPI Parte 1

veja+
Comentrios
Oportunidades
Engenheiro de Desenvolvimento Jr. em grande Empresa da rea automotiva So Paulo/SP
Programador C e Linux para embarcados numa empresa de Bilhetagem Eletrnica Campinas/SP
Profissional de Pesquisa e Desenvolvimento Florianpolis/SC
Programador de sistemas embarcados ou Engenheiro de desenvolvimento So Paulo/SP
Engenheiro de Produto Regio de Betim/MG
Mais oportunidades
Newsletter
Email
Assinar

Enquetes Realizadas
Escolha de Microcontrolador / Microprocessador
Sistema Operacional Embarcado
Linguagem de programao
Tipo de Processador
O Novo Embarcados
Posts populares
Arduino UNO 6.735 visualizaes
BeagleBone Black + Yocto 5.562 visualizaes
Simulador de Arduino: Virtual Breadboard 5.057 visualizaes
Comunicao Serial Java + Arduino 4.092 visualizaes
Links
Sobre
Eventos
Downloads
Login
Contato
Comunidade
Seja Colaborador
Oportunidades
Publicidade
Anuncie Conosco
Embarcados - Todos os Direitos Reservados
Fique por dentro
Registre-se
Newsletter

http://www.embarcados.com.br/spi-parte-1/

Desenvolvido por

7/7