Cursos / Eletrônica / Projeto de Sistemas RF / Aula

arrow_back Aula 09 - Transmissão de dados através do protocolo SPI

Vamos à Prática!

Agora que você já sabe o básico do funcionamento da comunicação SPI, vamos passar para a prática e ver o protocolo em ação. Como já foi mencionado, utilizamos o SPI no microcontrolador por meio do módulo MSSP. A sua configuração é feita de modo semelhante à realizada no módulo EUSART utilizado para transmissões pelo protocolo USART: você tem que consultar o datasheet do PIC, ver quais os registradores devem ser modificados e quais os valores que eles devem ter para o módulo funcionar da maneira que você deseja, e configurá-los dessa forma no código que vai ser gravado no dispositivo.

Como já falamos no início, nesta aula você vai fazer uma experiência prática. Porém, ela deve ser realizada no laboratório do Metrópole Digital, pois lá vão ter todos os equipamentos e componentes necessários para a experiência, além de um monitor para tirar suas dúvidas e garantir que tudo ocorra em segurança. Vamos descrever o circuito aqui, mas, por enquanto, se preocupe apenas em entendê-lo para montar no laboratório.

O experimento que vamos fazer é bem simples: vamos montar dois circuitos. Um deles vai ter um PIC, um botão e alguns LEDs, e o outro terá apenas o PIC e os LEDs. O que desejamos é transmitir um dado pelo protocolo SPI de um PIC para o outro quando acionarmos o botão. Os LEDs conectados aos PICs vão servir para mostrar qual o dado que está sendo transmitido e qual o dado que foi recebido. Se tudo estiver funcionando corretamente, os LEDs de ambos microcontroladores devem mostrar a mesma coisa e devem mudar quando o botão é acionado.

Entenderam bem qual o objetivo? Então, vamos aos componentes que vocês vão precisar para realizar o experimento. Lembre-se de pegar todos os componentes antes de iniciar a montagem, evitando, assim, transitar pelo laboratório durante a experiência. Os componentes são:

  • 1 protoboard.
  • 2 microcontroladores 18F2550
  • 8 LEDs
  • 8 resistores de 810Ω
  • 3 resistores de 10kΩ
  • 1 resistor de 1 kΩ
  • 1 push-button
  • 2 barras de 6 pinos
  • 1 PICKit 3
  • Vários fios para a montagem do circuito no protoboard

Agora que você já tem todos os componentes, você vai ter que montar o circuito a seguir. O circuito está dividido em vários pequenos blocos. Preste bastante atenção nas legendas desses blocos, porque elas serão utilizadas mais na frente. Também fique atento às conexões do circuito: tome cuidado para não esquecer nenhuma ligação ou fazer alguma ligação errada.

Circuito a ser montado no laboratório

O circuito vai ter duas barras de pinos, cada uma com seis pinos. Essas barras serão conectadas aos gravadores “PICKit 3” disponíveis no laboratório. Note que um dos pinos em cada barra está marcado com um quadrado. Esse é o famoso “pino 1”, e ele vai indicar o sentido de conexão com o PICKit 3. No PICKit você vai ver que um dos conectores tem uma seta indicando onde colocar o “pino 1”. Lembre-se de conectar o PICKit 3 corretamente. Recomendo, inclusive, que você marque com lápis o local do pino 1 na protoboard, reduzindo a chance de você conectar o gravador de forma errada.

A barra de pinos do mestre (indicado por “PINOS_DO_MESTRE”) vai ser utilizada para realizar a gravação do PIC mestre, assim como os pinos do escravo (indicados por “PINOS_DO_ESCRAVO”) vão servir para gravar o PIC escravo. Perceba que não temos VCC no circuito. A alimentação será feita pelo próprio PICKit 3, e todos os “terras” do circuito devem ser ligados em um ponto comum.

Observe, também, que não existem as saídas MOSI e MISO. O que existe no PIC são os pinos SDO, de “Serial Data Output”, e SDI, de “Serial Data Input”. Note que o SDO de um PIC está conectado ao SDI do outro, definindo, então, o esquema de troca de mensagens: a saída de um está ligada à entrada do outro, e vice-versa. Enquanto isso, os sinais de clocks, que saem nos pinos SCK, estão conectados entre si, o que está de acordo, pois o clock será gerado pelo mestre, enquanto o slave vai receber e utilizar esse clock para sincronizar a troca de mensagens.

Versão 5.3 - Todos os Direitos reservados