HOME      PROJETOS      PROGRAMAÇÃO     


UM POUCO SOBRE O BUS I2C

O bus I2C é composto de duas linhas de transmissão onde uma delas carrega o dado (SDA) e a outra o sinal de clock (SCL).
Ambas as linhas devem estar conectadas à alimentação (Vcc) do circuito através de resistores Pull-Up, geralmente de 2,2K quando a alimentação for 3,3V e 4,7K quando a alimentação for 5V.

O bus I2C sempre terá um dispositivo Master (microcontrolador) conectado a um dispositivo Slave que se deseja acessar.

A comunicação sempre é iniciada pelo Master que controla o sinal de clock (SCL).




TRANSFERÊNCIA DE DADOS

Um bit é transferido durante um pulso do clock (SCL). O bit de dado (SDA) deve ser mantido estável durante o período em que o sinal de clock se encontra no estado alto (1).




START / STOP

Os pinos SDA e SCL devem, inicialmente, se manter em estado alto (1) para sinalizar que o bus I2C está livre. Para entrar na condição de START, o sinal SDA deve transitar de Alto (1) para Baixo (0) enquanto o sinal SCL se mantem em estado Alto (1).

A condição de STOP se caracteriza por uma transição do sinal SDA de Baixo (0) para Alto (1), enquanto o sinal SCL se mantem em estado Alto (1).




ACKNOWLEDGE (ACK)

Não há limite entre a transmissão de dados entre uma condição de START e uma condição de STOP. Uma vez iniciada a condição de START, pode-se transmitir infinitos bytes de 8 bits entre o dispositivo transmissor e o receptor mas, após cada byte transmitido, o receptor emite um "ACK" ao transmissor para dizer que o dado foi recebido corretamente. O sinal de "ACK" é um nível Alto (1) gerado pelo receptor durante o nono (9) pulso de clock. Notar que o "ACK" deve ser gerado tanto pelo Slave quando recebe um byte (8 bits) enviado pelo Master como pelo Master após a leitura de um byte (8 bits) do Slave.




SOBRE DISPOSITIVOS I2C

Como dito anteriormente, os dispositivos I2C (slave) se conectam ao microcontrolador (master) e cabe ao Master controlar a comunicação através das portas SDA e SCL do bus I2C.

Internamente, os dispositivos I2C variam de configuração mas todos eles devem possuir um endereço de 7 bits, configurado na fábrica, ou então, possuir pinos externos para que esse endereço possa ser configurado manualmente.

Como o Master pode se comunicar apenas com um único dispositivo Slave por vez, ele usa o endereço para informar com quem deseja se comunicar já que muitos dispositivos diferentes podem ser conectados ao mesmo bus I2C.

A comunicação com os dispositivos I2C são de duas categorias:

  Escrita, para enviar dados ao dispositivo
  Leitura, para ler dados contidos no dispositivos

Para iniciar a comunicação, o Master deve enviar um sinal de START (ver figura abaixo) seguido do endereço de 7 bits para selecionar o dispositivo Slave e um bit adicional (R/W) que indicará se deseja ler (1) ou escrever (0) dados no Slave.

Após enviar a condição de START, representada pela letra "S" na figura, o endereço de 7 bits "SLAVE ADDRESS" e o bit "(R/W)", o Master deve receder do Slave um "Acknowledge" representado pela letra "A" na figura, confirmando que o Slave recebeu o dado.

Depois de receber o primeiro "Acknowledge", o Master pode começar a enviar dados ao Slave, bastando, para isso, enviar um dado (8 bits) "DATA" e esperar que o Slave responda com "A". A transmissão de dados pode ser ilimitada, bastando que isso se repita quantas vezes forem necessárias. Para terminar a transmissão, o Master deve enviar uma condição de STOP representado pela letra "P" na figura. Se ocorrer algum problema durante a transmissão, o Slave poderá responder com "Not Acknowledge" ".

A maioria dos dispositivos funciona da maneira descrita acima mas há outros em que, antes de enviar dados, é necessário enviar o número de um registrador o qual se deseja acessar. Esses registradores podem conter dados como temperatura, pressão, valores de tensão ou então podem ser registradores para configuração do dispositivo com o qual se está trabalhando. Assim, para saber a fundo como um dispositivo funciona, o melhor é consultar seu data sheet.








Índice dos circuitos




H P S P I N

Desde 04 de Março de 2010

Atualização: 19 de Mar de 2024