![Page 1: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP Módulo MSSP Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc12d497959413d8d2992/html5/thumbnails/1.jpg)
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP
Módulo MSSPMódulo MSSP
Jadsonlee da Silva Sá
[email protected]/~jadsonlee.sa
![Page 2: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP Módulo MSSP Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc12d497959413d8d2992/html5/thumbnails/2.jpg)
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP
Introdução - MSSPIntrodução - MSSP MSSP – Master Synchronous Serial Port.
Interface serial síncrona utilizada na comunicação com outros periféricos ou microcontroladores.
– Ex.: EEPROMs, registradores de deslocamento, drivers de displays, conversores A/D entre outros.
Pode operar em dois modos:
– SPI Serial Peripheral Interface.
– I2C Inter-Integrated Circuit.
![Page 3: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP Módulo MSSP Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc12d497959413d8d2992/html5/thumbnails/3.jpg)
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP
Introdução - MSSPIntrodução - MSSP
Existem três registradores de controle associados:
– Registrador de status – SSPSTAT;
– Registradores de controle – SSPCON e SSPCON2.
![Page 4: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP Módulo MSSP Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc12d497959413d8d2992/html5/thumbnails/4.jpg)
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP
Modo SPIModo SPI Interface mestre/escravo que permite transmitir
e receber sincronamente 8 bits de dados simultaneamente.
Todos os 4 modos padrão da SPI são implementados.
A comunicação pode ser feita por três pinos:
– Serial Data Out (SDO) – RC5/SDO;
– Serial Data In (SDI) – RC4/SDI;
– Serial Clock (SCK) – RC3/SCK/SCL/LVDIN;
– No modo escravo, um quarto pino Slave Select (/SS) – RA5//SS/AN4, deve ser usado.
![Page 5: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP Módulo MSSP Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc12d497959413d8d2992/html5/thumbnails/5.jpg)
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP
Modo SPIModo SPI
Existem 4 registradores:
– SSPCON – Controle;
– SSPSTAT - Status;
– SSPBUF – Buffer Tx/Rx serial;
– SSPSR – Deslocamento – Não acessível.
![Page 6: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP Módulo MSSP Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc12d497959413d8d2992/html5/thumbnails/6.jpg)
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP
Modo SPIModo SPI
![Page 7: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP Módulo MSSP Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc12d497959413d8d2992/html5/thumbnails/7.jpg)
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP
Modo SPIModo SPI Funcionamento.
– O SSPSR desloca os dados de entrada e saída do dispositivo – Primeiro MSb.
– O byte é movido para SSPBUF – BF (buffer cheio) e SSPIF são setados.
![Page 8: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP Módulo MSSP Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc12d497959413d8d2992/html5/thumbnails/8.jpg)
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP
Modo SPIModo SPI Funcionamento.
– O bit WCOL (SSPCON<7>) é setado caso ocorra uma escrita em SSPBUF durante a Tx/Rx.
• O software do usuário deve zerar WCOL.
– SSPBUF deve ser lido antes de receber novos dados – O bit BF é zerado após a leitura.
– Os pinos devem ser configurados como entrada ou saída no registrador TRISC.
![Page 9: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP Módulo MSSP Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc12d497959413d8d2992/html5/thumbnails/9.jpg)
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP
Modo SPIModo SPI SSPSTAT.
![Page 10: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP Módulo MSSP Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc12d497959413d8d2992/html5/thumbnails/10.jpg)
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP
Modo SPIModo SPI SSPSTAT.
![Page 11: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP Módulo MSSP Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc12d497959413d8d2992/html5/thumbnails/11.jpg)
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP
Modo SPIModo SPI SSPCON.
![Page 12: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP Módulo MSSP Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc12d497959413d8d2992/html5/thumbnails/12.jpg)
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP
Modo SPIModo SPI SSPCON.
O clock do mestre e do escravo devem ser configurados com a mesma polaridade.
![Page 13: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP Módulo MSSP Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc12d497959413d8d2992/html5/thumbnails/13.jpg)
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP
Modo SPIModo SPI
![Page 14: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP Módulo MSSP Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc12d497959413d8d2992/html5/thumbnails/14.jpg)
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP
Modo SPIModo SPI
![Page 15: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP Módulo MSSP Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc12d497959413d8d2992/html5/thumbnails/15.jpg)
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP
AtividadeAtividade
Façam um programa em assembly, outro em C (no nível de registrador) e outro em C – CCS que transfere dados de um PIC16F877A para outro PIC16F877A.
![Page 16: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP Módulo MSSP Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc12d497959413d8d2992/html5/thumbnails/16.jpg)
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP
Memória de Dados Memória de Dados EEPROMEEPROM
Jadsonlee da Silva Sá
[email protected]/~jadsonlee.sa
![Page 17: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP Módulo MSSP Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc12d497959413d8d2992/html5/thumbnails/17.jpg)
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP
IntroduçãoIntrodução Memórias de dados EEPROM e Programa FLASH.
Não são mapeadas diretamente no espaço de registro de arquivo.
– São indiretamente endereçadas via SFRs.
Existem seis SFRs usados para ler/escrever esta memória:
– EECON1, EECON2, EEDATA, EEDATAH, EEADR e EEADRH.
![Page 18: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP Módulo MSSP Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc12d497959413d8d2992/html5/thumbnails/18.jpg)
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP
Dados EEPROMDados EEPROM Bloco memória de dados - EEPROM.
– EEDATA contém os dados de 8 bits para ler/escrever.
– EEADR contém o endereço da posição da EEPROM sendo acessada.
• EEPROM possui 256 bytes.
• Faixa de endereço de 00 a FFh.
• Um único byte pode ser lido/escrito por vez.
• Uma escrita automaticamente apaga os dados e escreve os novos dados.
![Page 19: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP Módulo MSSP Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc12d497959413d8d2992/html5/thumbnails/19.jpg)
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP
Registradores de ControleRegistradores de Controle
![Page 20: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP Módulo MSSP Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc12d497959413d8d2992/html5/thumbnails/20.jpg)
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP
Registradores de ControleRegistradores de Controle
• Quando uma escrita for finalizada, o bit EEIF de PIR2 será setado, e deverá ser zerado via software.
![Page 21: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP Módulo MSSP Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc12d497959413d8d2992/html5/thumbnails/21.jpg)
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP
Registradores de Controle Registradores de Controle
EECON2.
– Não é um registrador físico.
– A leitura retorna 0’s.
– É utilizado na sequência especial de escrita da EEPROM.
![Page 22: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP Módulo MSSP Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc12d497959413d8d2992/html5/thumbnails/22.jpg)
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP
Leitura - EEPROMLeitura - EEPROM Passos para leitura da EEPROM:
– Escrever o endereço da posição em EEADR;
– Zerar o bit EEPGD de EECON1;
– Setar o bit RD de EECON1 – Inicia a leitura;
– O dado é carregado em EEDATA – Pode ser lido na próxima instrução;
– EEDATA mantém este valor até a próxima leitura ou até ser escrito pelo usuário.
![Page 23: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP Módulo MSSP Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc12d497959413d8d2992/html5/thumbnails/23.jpg)
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP
Escrita - EEPROMEscrita - EEPROM Passos para escrita na EEPROM:
– Verificar se o bit WR está zerado – Se sim, pode escrever.
– Escrever o endereço da posição em EEADR;
– Escrever o dado em EEDATA;
– Zerar o bit EEPGD de EECON1;
– Setar o bit WREN de EECON1 – Habilitar escrita;
– Desabilitar as interrupções – GIE (caso estejam habilitadas).
![Page 24: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP Módulo MSSP Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc12d497959413d8d2992/html5/thumbnails/24.jpg)
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP
Escrita - EEPROMEscrita - EEPROM Passos para escrita na EEPROM:
– Executar a sequência especial:
• Escrever 55h em EECON2;
• Escrever AAh em EECON2;
• Setar o bit WR de EECON1;
– Habilitar as interrupções (caso seja necessário).
![Page 25: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP Módulo MSSP Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc12d497959413d8d2992/html5/thumbnails/25.jpg)
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP
Escrita - EEPROMEscrita - EEPROMPassos para escrita na EEPROM:
– Zerar o bit WREN de EECON1 – Desabilitar a escrita.
• Após a finalização da escrita, o bit WR será zerado e o bit EEIF será setado. EEIF deve ser zerado por software.
– Verificar se EEIF está setado ou se WR está zerado – Fim da escrita.
![Page 26: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP Módulo MSSP Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc12d497959413d8d2992/html5/thumbnails/26.jpg)
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP
RegistradoresRegistradores
![Page 27: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP Módulo MSSP Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc12d497959413d8d2992/html5/thumbnails/27.jpg)
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP
Exemplo - AssemblyExemplo - Assembly
![Page 28: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP Módulo MSSP Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc12d497959413d8d2992/html5/thumbnails/28.jpg)
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP
Exemplo - AssemblyExemplo - Assembly
![Page 29: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP Módulo MSSP Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc12d497959413d8d2992/html5/thumbnails/29.jpg)
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP
Exemplo - AssemblyExemplo - Assembly
MOVLW 0x20
![Page 30: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP Módulo MSSP Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc12d497959413d8d2992/html5/thumbnails/30.jpg)
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP
TarefaTarefa
Faça o programa anterior em linguagem C a nível de registrador e utilizando a API do CCS.