24
Sistemas Microcontrolados Protocolo de Comunicação I2C

Aula 10 - I2C

Embed Size (px)

DESCRIPTION

Aula sobre o pro I2C

Citation preview

Page 1: Aula 10 - I2C

Sistemas MicrocontroladosProtocolo de Comunicação I2C

Page 2: Aula 10 - I2C

Protocolo I2C

• Características Básicas:– Trata-se de um barramento a dois fios

– Projetado pela Philips para permitir a comunicação com um pequeno número de dispositivos (Por exemplo, memória EEPROM)

– Velocidades:

• 100 kbps

• 400 kbps

• 3.4Mbps

– Modo de transferência: serial, 8 bits, bidirecional

– Mestre/Escravo com possibilidade de muitos mestres

– Mestre: Transmissor ou Receptor

– Endereçamento: 7 ou 10 bits

– Número de dispositivos: Limite de 400pF

Page 3: Aula 10 - I2C

Sinais

• Duas linhas– SCL: Linha de clock– SDA: Linha de dados

• Dados válidos quando SCL = 1– Dados podem mudar quando SCL = 0

Page 4: Aula 10 - I2C

Objetivos

• Barramento livre: SDA = SCL =1

Page 5: Aula 10 - I2C

FRAME (Enquadramento)

• Para iniciar a transmissão de dados, os mesmos são enquadrados. Existe uma condição que sinaliza o início do enquadramento e uma condição que sinaliza o fim dos dados.

Page 6: Aula 10 - I2C

FRAME• Estado do barramento

– Busy (Ocupado): Após um START, antes do próximo STOP.

– Free (Livre): Após um STOP e antes do próximo START

– Após um START pode ocorrer outro START. Ou seja, para cada START não precisa necessariamente de um STOP.

Page 7: Aula 10 - I2C

Mestres e Escravos

• Dispositivo Mestre– Controla o SCL– Inicia e finaliza as transferências– Controla o endereçamento de outros dispositivos

• Dispositivo Escravo– Dispositivo endereçado pelo Mestre– Responde às requisições do Mestre

Page 8: Aula 10 - I2C

Mestres e Escravos (Cont)

• Transmissor/Receptor– Mestre ou Escravo: Ambos podem transmitir e

receber.– TX do mestre envia dados para RX do escravo– RX do mestre solicita dados do TX do escravo

• Transmissão do primeiro Byte– O mestre é o transmisssor. O escravo é o receptor.

• Outros Bytes– Podem ser transmitidos pelo mestre ou pelo escravo

(depende da operação: leitura ou escrita)

Page 9: Aula 10 - I2C

Transferência de Dados

• Dados são transferidos após a condição de START.

• A transmissão é orientada por Bytes.

• 1 Byte = 8 bits + bit de reconhecimento (ACK)

• Na transmissão o bit MSB é enviado primeiro

• O endereço do escravo é um dado. Portanto, este endereço é enviado pelo barramento através da linha SDA.

Page 10: Aula 10 - I2C

Transferência de Dados

• Mestre faz SCL = 0 e gera pulsos para cada bit de dado.

• 8 pulsos de dados são seguidos por um pulso de ACK

Page 11: Aula 10 - I2C

Transferência de Dados - SDA

• Observe bem: Quando o mestre transmite o endereço do escravo pelo barramento, todos os dispositivos I2C vão “escutar”, mas apenas o dispositivo endereçado vai responder com o pulso de ACK e vai proceder de acordo com o que o mestre solicita. Se o mestre disse que iria gravar (escrever) um dado, o escravo espera por este dado. Caso o mestre esteja querendo ler o escravo. O escravo vai assumir o controle do sinal SCL e vai transmitir o dado bit a bit.

Page 12: Aula 10 - I2C

Transferência de Dados - SDA

• Após a transmissão dos bits de dados, o TX libera a linha SDA, o receptor segura a linha SDA em nível baixo para indicar que reconheceu os dados que foram transmitidos. Depois do reconhecimento, o escravo libera a linha SDA para que o mestre possa finalizar a transmissão.

Page 13: Aula 10 - I2C

Endereçamento usando 7 bits

• Primeiro Byte transmitido pelo mestre:– 7 bits de endereço– 1 bit de direção (leitura ou escrita).

• 0… mestre escreve os dados: TX

• 1… mestre recebe dados: RX

• A transferência finaliza com condição STOP

Page 14: Aula 10 - I2C

Mestre Transmite

• Veja abaixo como os dados são postos no barramento na condição em que o mestre escreve dados no escravo.

Page 15: Aula 10 - I2C

Mestre Recebe Dados

• Veja abaixo como os dados são postos no barramento na condição em que o mestre recebe dados do escravo.

Page 16: Aula 10 - I2C

EEPROM AT24C1024B

Page 17: Aula 10 - I2C

AT24C1024B• Características desta EEPROM:

– Operação em 1,8V-3,6V ou 2,5V-5,5V– Arquitetura 131.072 x 8– Interface serial a 2 fios– Entradas filtradas e com Schimitt Trigger– Protocolo de transferência de dados bidirecional– Clock de 400 kHz (1,8V) ou 1MHz (2,5V)– Proteção contra gravação por soft/hard– Modo de escrita por página de 256 Bytes– Modos de leitura sequencial e aleatória– Ciclo de escrita de 5ms

Page 18: Aula 10 - I2C

AT24C1024B

• Características (continuação)– 1.000.000 de ciclos de escrita por página– Retenção de 40 anos

• Possibilidade de ter até 4 dispositivos pendurados em um mesmo barramento.

Page 19: Aula 10 - I2C

AT24C1024B• Encapsulamentos disponíveis:

Page 20: Aula 10 - I2C

AT24C1024B

• Sinais– SCL: Em borda de subida os dados são gravados na

memória. Em borda de descida, os dados são colocados no barramento SDA.

– SDA: Pino bidirecional para transferência de dados. É um pino Dreno aberto. É possível conectar a vários outros pinos (ligação wired-OR).

– A1/A2: Pinos de endereço do dispositivo.Se não for usar, recomenda-se conectar ao GND.

– WP: Se conectado a Vcc impede a gravação de dados.

Page 21: Aula 10 - I2C

AT24C1024B

• Endereçamento– Este dispositivo requer 8 bits de endereço mais uma

condição de START para poder ler ou escrever no dispositivo. O endereço consiste de uma sequência de 1010 seguido pelo endereço A1A2 (00, 01, 10 ou 11). O sétimo bit é o bit de paginação e o oitavo bit corresponde à direção (leitura ou escrita).

Page 22: Aula 10 - I2C

AT24C1024B

Page 23: Aula 10 - I2C

AT24C1024B

Page 24: Aula 10 - I2C

AT24C1024B