A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

Apresentações semelhantes


Apresentação em tema: "Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI"— Transcrição da apresentação:

1 Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI
Aula 11 Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

2 Memória EEPROM EEPROM (Electrically Erasable Programmable Read Only Memory) Memória apenas de leitura programável e eletricamente apagável, ou seja Ela não é uma memória apenas de leitura, não acham? O PIC18F4550 tem 256 bytes de memória de dados EEPROM. A memória de dados EEPROM permite operações de leitura e escrita de bytes sem interferência na operação do microcontrolador. Memória não volátil separada das memória de dados e de programa.

3 Memória EEPROM A escrita e leitura da EEPROM são controlados por 4 Registradores de Funções Especiais: EECON1 e EECON2: configurações de operações como qual memória será lida/escrita, habilita/desabilita escrita etc. EEDATA: armazena o dados a escrito ou lido. EEADR: armazena o endereço da operação. Datasheet página 93: 7.0 DATA EEPROM MEMORY

4 Chips Há no mercado diversos chips de memória EEPROM.
O mais comum é a série 24CXXX onde XXX é a quantidade de bits que a memória pode armazenar. Alguns deles são AT24C01, AT24C02, AT24C04, AT24C08 e AT24C16.

5 EEPROM No Kit Mc Master 2 No Kit didático Mc Master 2 temos a memória 24LC256. Este chip pode armazenar até 256 Kb de dados. Pode ser gravada via protocolo I²C (veremos em aulas futuras).

6 Aplicações da EEPROM Configurações do hardware
Informações de uso de equipamentos Quantidade de impressões de uma impressora; Odômetro do carro (mesmo quando trocamos a bateria a marcação não muda em odômetros digitais); Configurações de alarme, calendário etc; Logs de erro De forma geral, qualquer dado que se deseje!

7 CCS e a EEPROM Interrupção: Funções INT_EEPROM read_eeprom(address)
Interrupção executada quando a escrita na EEPROM está completa. Funções read_eeprom(address) Lê o dado na posição de memória EEPROM Ex.: value = read_eeprom(0x0); write_eeprom(address, value) Apaga e escreve o dado value no endereço address da EEPROM. Ex.: write_eeprom(0x0, 0x12);

8 CCS e a EEPROM Exemplo #include <18F4550.h> #use delay (crystal = 4MHz) #fuses XT, NOWDT, MCLR #define numeroDeSerie 0b int x; int endereco = 0; // primeira posição no banco de memóeria EEPROM void main () { while (true) { write_eeprom (endereco, numeroDeSerie); x = read_eeprom (endereco); output_b(x); }

9 Protocolos de Comunicação
I²C (Inter-Integrated Circuit) SPI (Serial Peripheral Interface) Ambos são amplamente utilizados em dispositivos periféricos.

10 I²C Comunicação mestre-escravo
Utiliza apenas duas linhas para comunicação (SDA e SCL) Velocidade de até 400* Kbps half-duplex Apesar do padrão pré-definido de 400 Kbps cada fabricante tem a liberdade de aumentar esta taxa.

11 I²C Endereçamento via software de 7 bits ou 10 bits.
Necessita pull-ups nas linhas SDA e SCL. O endereço do escravo geralmente é descrito no datasheet. Muitas vezes alguns pinos são utilizados para definir o endereço.

12 I²C - Protocolo A comunicação começa quando o master define o estado do barramento como S (start), que é quando ocorre uma borda de descida na linha SDA enquanto a SCL está em nível alto. Até o master definir o estado como P (stop) o barramento será considerado ocupado. O estado P é definido quando ocorre uma borda de subida na linha SDA enquanto a SCL está em nível alto.

13 I²C - Protocolo

14 I²C - Escrita S (START): Estado de inicialização
AD+W: Endereço do slave + bit de escrita (R/W = 0) ACK (acknowledge): bit de confirmação enviado pelo slave RA: Endereço do registrador do slave DATA: 8 bits de dados a serem enviados pelo master P (STOP): Estado de parada

15 I²C - Leitura S (START): Estado de inicialização
Sr (Repeated START): Recinicialização do estado START sem antes ocorrer o STOP. AD+W: Endereço do slave + bit de escrita (R/W = 0) AD+R: Endereço do slave + bit de leitura (R/W = 1) ACK (acknowledge): bit de confirmação enviado pelo slave NACK (not acknowledge): bit que confirma o fim da leitura RA: Endereço do registrador do slave DATA: 8 bits de dados a serem enviados pelo master P (STOP): Estado de parada

16 I²C – CCS Leitura #use i2c(master, sda=PIN_B0, scl=PIN_B1)
i2c_start(); i2c_write(enderecoEscravo); i2c_write(enderecoRegistradorEscravo); i2c_write(enderecoEscravo + 1); valor = i2c_read(0); i2c_stop();

17 I²C – CCS // diretiva de configuração. Usar apenas no início do código #use i2c(master, sda=PIN_B0, scl=PIN_B1) Escrita i2c_start(); i2c_write(enderecoEscravo); i2c_write(enderecoRegistradorEscravo); i2c_write(valor); i2c_stop();

18 SPI Barramento serial síncrono. Comunicação mestre-escravo.
Utiliza pelo menos quatro linhas para comunicação (SCLK, MOSI, MISO, SS x nSlaves) Apesar do padrão pré-definido de 2 Mbps cada fabricante tem a liberdade de aumentar esta taxa.

19 SPI Não necessita de pull-ups nas linhas de comunicação
Endereçamento via hardware através dos SSx Pode operar em modo de transmissão de 8 ou 16 bits

20 SPI O master inicia a transferência, seleciona o escravo e fornece o clock para os escravos. O escravo responde a cada pulso de clock. Pode operar com um master e um ou mais escravos.

21 SPI - Protocolo Definir as configurações básicas: master/slave, velocidade, 8 ou 16 bits, etc. Selecionar o slave colocando o respectivo bit em nível lógico 0 e todos os outros em 1. Envia o byte mais significativo primeiro (MSB) e em seguida o menos significativo (LSB). Cada byte é enviado para o buffer na borda de subida e transmitido na borda de descida. As operações de leitura escrita são finalizadas em 16 ou mais ciclos de clock (2 bytes ou mais). O primeiro byte deve conter o endereço SPI e os demais bytes os dados para transmissão. O bit mais significativo do primeiro byte indica a operação de leitura ou escrita (1 ou 0). Os outros 7 bits do primeiro byte contém o endereço do registrador para leitura ou escrita no slave. Pode mudar de acordo com o periférico.

22 SPI - CCS // diretiva de configuração #use spi(FORCE_HW, BITS=16, stream=SPI_STREAM) // inicialização spi_init(SPI_STREAM, TRUE); spi_write( valorEnviado ); valorLido = spi_read();


Carregar ppt "Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI"

Apresentações semelhantes


Anúncios Google