terça-feira, 11 de dezembro de 2012

Instalação do Protocolo I2C na Raspberry Pi

 Palavras-chave: I2C, Raspberry Pi, Protocolo I2C, Barramento, EEPROM.

PROTOCOLO I2C

"O protocolo de comunicação I2C foi criado com o intuito de normatizar a comunicação entre circuitos (microcontroladores, memórias, teclados, etc...) através de um único barramento de quatro linhas físicas" [1].

CONSOLE SERIAL E ADAPATADOR USB - SERIAL

Para facilitar o trabalho será utilizado o PuTTY e um adaptador USB - Serial com suporte a 3,3V (tensão de trabalho do SoC da Broadcom).

Informações sobre a instalação e a configuração de ambos podem ser vistas no post "Instalação do PuTTY no Slackware 13.37 64 bits e Acesso a Raspberry Pi Via Console Serial".

RASPBERRY PI

Atualize a Raspberry Pi e instale o protocolo I2C.

# apt-get update
# apt-get dist-upgrade (o meu demorou +/- 1 hora).

Ao término da atualização edite o arquivo raspi-blacklist.conf.

# vim /etc/modprobe.d/raspi-blacklist.conf

Comente a linha blacklist i2c-bcm2708 deixando-a da seguinte maneira:

#blacklist i2c-bcm2708

Salve o arquivo.

Edite os módulos adicionando i2c-dev.

# vim /etc/modules

Adicione na última linha:

i2c-dev

Salve o arquivo.

Instale as ferramentas para utilizar o I2C.

# apt-get install i2c-tools

Adicione o usuário pi ou qualquer outro ao grupo autorizado a executar o I2C.

# adduser pi i2c

Reinicie a Raspberry Pi.

# shutdown -r now

TESTE

Para facilitar a visualização, foram utilizados duas memórias EEPROM Microchip 24LC256 montados em protoboard.

As figuras abaixo mostram o esquema de ligação das memórias e o barramento de GPIOs, respectivamente.



 Ligue os cabos do adaptador à Raspberry Pi (RPi) conforme indicado abaixo.

RPi - Adaptador USB-Serial
GND (Pin 6) - GND
TX (GPIO 14) - RX
RX (GPIO 15) - TX

E da RPi ao protoboard.

RPi - Protoboard
GND (Pin 6) - GND
SDA (GPIO 0) - SDA
SCL (GPIO 1) - SCL
VCC (3,3V Pin 1) - VCC

Conecte o adaptador na porta USB do PC e execute o PuTTY.

Acesse a Raspberry Pi como root e digite:

# i2cdetect -y 0

O resultado será algo como mostrado a seguir.


50 (0x50) e 51 (0x51) indicam os endereços das memórias.

Abaixo o aparato montado.


MATERIAIS/LINKS RELACIONADOS

[1] - http://www.sabereletronica.com.br/secoes/leitura/1304


Nenhum comentário: