O protocolo I2C - geocities.ws · O protocolo I2C 1 - Introdução O protocolo I2C ou I 2C, também...

5
O protocolo I2C 1 - Introdução O protocolo I2C ou I 2 C, também chamado IIC, foi criado para possibilitar a comunicação entre circuitos integrados com um número reduzido de fios, reduzindo o número de terminais dos componentes, o número de trilhas e o tamanho da placa, consequentemente reduzindo o custo. Este protocolo foi inventado pela Philips Semiconductor, agora chamada NXP Semiconductors. A partir de 2006 nenhuma taxa é cobrada pela NXP para utilização do protocolo, porém, os endereços dos novos dispositivos criados requerem o pagamento de taxa para alocação e registro na NXP. Como exemplo de utilização vamos considerar o circuito integrado PT2313 fabricado pela Princeton Technology Corporation. O PT2313 é um processador de áudio com 4 canais que permite o controle de volume, equalização de som, escolha de entrada, balanço e fader. Fig. 1 – Diagrama em blocos e pinos do circuito integrado PT2313. Como possui processador interno para controle das funções, este circuito integrado precisa receber e enviar informações de um outro circuito integrado para

Transcript of O protocolo I2C - geocities.ws · O protocolo I2C 1 - Introdução O protocolo I2C ou I 2C, também...

Page 1: O protocolo I2C - geocities.ws · O protocolo I2C 1 - Introdução O protocolo I2C ou I 2C, também chamado IIC, foi criado para possibilitar a comunicação entre circuitos integrados

O protocolo I2C

1 - Introdução

O protocolo I2C ou I2C, também chamado IIC, foi criado para possibilitar a comunicação entre circuitos integrados com um número reduzido de fios, reduzindo o número de terminais dos componentes, o número de trilhas e o tamanho da placa, consequentemente reduzindo o custo. Este protocolo foi inventado pela Philips Semiconductor, agora chamada NXP Semiconductors. A partir de 2006 nenhuma taxa é cobrada pela NXP para utilização do protocolo, porém, os endereços dos novos dispositivos criados requerem o pagamento de taxa para alocação e registro na NXP. Como exemplo de utilização vamos considerar o circuito integrado PT2313 fabricado pela Princeton Technology Corporation. O PT2313 é um processador de áudio com 4 canais que permite o controle de volume, equalização de som, escolha de entrada, balanço e fader.

Fig. 1 – Diagrama em blocos e pinos do circuito integrado PT2313. Como possui processador interno para controle das funções, este circuito integrado precisa receber e enviar informações de um outro circuito integrado para

Page 2: O protocolo I2C - geocities.ws · O protocolo I2C 1 - Introdução O protocolo I2C ou I 2C, também chamado IIC, foi criado para possibilitar a comunicação entre circuitos integrados

obter instruções e informar o estado atual dos ajustes. Para esse fim, o PT2313 utiliza uma porta de comunicação com protocolo I2C, como pode ser visto em destaque na figura 1 com o diagrama em blocos e pinos do circuito integrado. Ainda como exemplo, podemos citar o processador LPC1313 da NXP.

Fig. 2 – Processador ARM Cortex-M3 LPC1313 da NXP Este processador pode controlar vários dispositivos e executar muitas tarefas em diversas áreas. No nosso exemplo, ele irá controlar um rádio automotivo completo. Para controlar o volume, equalização e outras funções de som, o dispositivo se comunica com o circuito de som pelo protocolo I2C.

Page 3: O protocolo I2C - geocities.ws · O protocolo I2C 1 - Introdução O protocolo I2C ou I 2C, também chamado IIC, foi criado para possibilitar a comunicação entre circuitos integrados

Fig. 3 – Interligação entre os circuito integrados LPC1313 e PT2313.

2 - O barramento I2C

O barramento I2C utiliza além do terra duas linhas bidirecionais chamadas de SDA ( serial data ) e SCL ( serial clock line ) que devem receber resistores de Pull-up, ou seja, um resistor que alimenta a linha com tensão de 5V ou 3,3V. Com relação à configuração física, todos os dispositivos são ligados em paralelo no barramento como ilustra a imagem abaixo.

Fig.4 – Ligação dos dispositivos no barramento I2C. Na figura 4 podemos ver um dispositivo mestre (�C Master) e vários dispositivos escravos (Slave). As duas resistências Rp, resistências de pull up alimentam o barramento com a tensão fornecida em Vdd. Os endereços dos dispositivos possuem 7 bits ou 10 bits e tem como padrão uma taxa de transmissão de 100Kbps (standard mode). Taxas menores são permitidas. Uma nova geração de dispositivos, está sendo implementada utilizando taxas de transmissão de 400Kbit/s (fast mode) e 3,4Mbit/s (high speed mode). Porém, no momento atual (2015) a maioria dos dispositivos do mercado utilizam uma taxa de 100Kbps. Vale lembrar que, o padrão I2C é muito comum em sistemas embarcados e praticamente não é utilizado em PCs. A grande vantagem com relação ao SPI é a utilização de somente 2 fios + terra independente do número de dispositivos, o SPI necessita de um pino adicional para cada dispositivo ligado ao barramento.

Page 4: O protocolo I2C - geocities.ws · O protocolo I2C 1 - Introdução O protocolo I2C ou I 2C, também chamado IIC, foi criado para possibilitar a comunicação entre circuitos integrados

3 - Modo de operação

Para fazer a programação e identificar possíveis defeitos nos circuitos é necessário entender seu funcionamento. Existe um dispositivo mestre responsável por gerar o clock e iniciar a comunicação e um dispositivo slave que recebe o pulso de clock e responde ao dispositivo mestre quando seu endereço for o mesmo enviado pelo mestre. Cada dispositivo é identificado por um endereço pré-definido e registrado na NXP. Este endereço é composto por 7 bits. Primeiramente o master sinaliza um “START condition” ou sinal de inicialização, em seguida envia o endereço do dispositivo que deverá receber os dados e uma indicação informando se é uma operação de leitura ou escrita. Todos os CI´s recebem esta informação e comparam o endereço com seu próprio endereço, assim somente o disposto com o endereço correspondente irá responder.

Fig. 5 – Descrição de um sinal I2C. Quando o dispositivo slave reconhece seu endereço, ele responde ao master com um sinal ACK (acknowledge). A partir deste instante os dados são transmitidos do master para o slave no caso de escrita ou do slave para o master no caso de leitura, sempre com um ACK ao final de 8 bits. Para finalizar a transmissão um sinal de STOP é enviado. Perceba que a condição de Start ocorre quando o sinal de SCL esta fixo em 1 e o sinal em SDA muda de 1 para 0. O sinal de STOP é o inverso, ou seja, o sinal de SCL está fixo em 1 e o sinal em SDA muda de 0 para 1.

4 – Definição do master e o slave

Em um barramento I2C podem existir vários dispositivos master sem que

ocorram conflitos. Ao contrário do SPI, qualquer dispositivo pode iniciar a comunicação. Como os dispositivos funcionam com circuito open drain na saída, ou seja aterram o sinal do barramento, um conflito pode ocorrer sem danificar os componentes e este é facilmente detectável pois o dispositivo pode monitorar sua própria transmissão.

Page 5: O protocolo I2C - geocities.ws · O protocolo I2C 1 - Introdução O protocolo I2C ou I 2C, também chamado IIC, foi criado para possibilitar a comunicação entre circuitos integrados

5 – A limitação dos endereços

Um endereçamento de somente 7 bits permite a utilização de somente 128 dispositivos. Como cada dispositivo possui um endereço físico registrado na NXP, teoricamente existiriam somente 128 tipos de CI´s no mundo utilizando I2C. Para contornar este problema foi criado um endereçamento de 10 bits que funciona da seguinte forma: - Um endereço iniciado por 11110 indica um endereço de 10 bits - Os dois próximos bits são os dois primeiros bits de endereço. - Após o ACK são enviados os 8 bits de endereço restantes.

Fig. 6 – Formato do endereçamento de 10 bits. Além do endereço iniciado por 11110 os seguintes endereços são reservados:

Fig. 7 – Endereços reservados pela NXP. Maiores detalhes podem ser obtidos no I2C User Manual no site da NXP: http://www.nxp.com/documents/user_manual/UM10204.pdf