Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação –...

Preview:

Citation preview

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á

Jadsonlee.sa@univasf.edu.brwww.univasf.edu.br/~jadsonlee.sa

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.

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.

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.

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.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Modo SPIModo SPI

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.

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.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Modo SPIModo SPI SSPSTAT.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Modo SPIModo SPI SSPSTAT.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Modo SPIModo SPI SSPCON.

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.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Modo SPIModo SPI

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Modo SPIModo SPI

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.

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á

Jadsonlee.sa@univasf.edu.brwww.univasf.edu.br/~jadsonlee.sa

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.

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.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Registradores de ControleRegistradores de Controle

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.

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.

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.

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).

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).

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.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

RegistradoresRegistradores

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Exemplo - AssemblyExemplo - Assembly

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Exemplo - AssemblyExemplo - Assembly

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Exemplo - AssemblyExemplo - Assembly

MOVLW 0x20

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.

Recommended