O documento descreve o barramento I2C, que permite comunicação entre dispositivos usando apenas duas linhas de sinal bidirecionais. O I2C suporta até 128 endereços e taxas de transferência de até 100kbps ou 3.4Mbps, com um dispositivo mestre iniciando a comunicação enviando um endereço e comando para um dispositivo escravo.
1. Aula 7 – Sistemas Embarcados
Barramento I2C
I2C é um barramento criado pela Philips, aonde constam apenas 2 conexões.
SDA (data) e SCL (clock). Este barramento pode ter diferentes velocidades e diferentes
endereços (até 128).
Existe um mestre e escravos. O mestre é quem define a velocidade do
barramento, até 100Kbits, qual a pergunta e para quem ele pergunta. Vai até 3.4MHz.
A pergunta é um dado de 8 bits transmitido no barramento com o endereço do
escravo. A pergunta é um dado conhecido pelo escravo e programado no mestre, como
por exemplo, qual é a temperatura? Para fazer a pergunta, o mestre deve baixar o pino
Primeiro pacote: endereço, com o ultimo bit em 0 ou 1 (escrita ou leitura).
Segundo pacote: comando (8 ou 16 bits).
SDA em 0 no nono pulso de clock é o ACK/NACK do escravo após transmissão de 8
bits.
Start -> transição com o sda de 1 para 0 com scl em 1.
Stop -> transição com o sda de 0 pra 1 com scl em 1.
2. C para sistemas Embarcados
// CÓDIGO PARA OSCILAÇÃO DE UM LED DE ACORDO COM O
// ESQUEMATICO DADO EM AULA.
#include <stdio.h>
int cont = 0;
void main()
{
while(1)
{
if(cont < 500)
{
P30 = 0;
}
if(cont > =500)
{
P30 = 1;
}
if(cont == 1000)
{
cont = 0;
}
cont++;
}
}
// Lendo a temperatura em um componente TMP100 (Sensor de Temperatura I2C)
#include <stdio.h>
#include <i2c.h>
int temperatura;
char endereço = 0x48; // endereço do componente
char comando = 0x00; // comando para ler temperatura
void main()
{
temperatura = I2C_read(endereco,comando);
}
4. Esquemático com I2C
Percebam que o componente MAX127 esta conectado em um barramento I2C
através dos pinos de DAS e SCL. Este componentes MAX127 é um A/D (conversor
analógico Digital) via I2C. O barramento I2C pode estar conectado a um
microcontrolador que fará a leitura ou escrita do componente.
Percebam que no pino CH4 esta conectado ao VBATT, ou seja, pode-se monitorar
o nível de bateria e através de um algoritmo, identificar se existe bateria fraca, ou
quanto tempo poderá durar ainda.