HOME      PROJETOS      PROGRAMAÇÃO     

SCANNER PARA IDENTIFICAÇÃO DE DISPOSITIVOS I2C

Este circuito identifica e fornece o endereço real de um dispositivo conectado ao bus I2C de um microcontrolador PIC16F628A ou similar.

Executa a varredura do bus, controlado pelos pinos RA1 (SDA) e RA2 (SCL), procurando um ou mais dispositivos I2C e, ao encontrar um endereço válido, o programa mostra o resultado em 8 LEDs conectados ao PORTB do microcontrolador.

Serão pesquisados os prováveis endereços de escrita de dispositivos (endereços pares de 0 a 254) que podem estar conectados no bus I2C. A pesquisa se dará do endereço mais alto (254) para o mais baixo (2). Vários dispositivos pode estar conectados ao bus I2C.

O mecanismo de pesquisa consiste em enviar uma condição de START ao bus I2C, pegar um número de endereço par, que caracteriza um endereço de escrita, enviar o endereço e esperar que haja uma resposta positiva (ACK) de algum dispositivo conectado ao bus.

Ao ser ligado, o circuito acenderá os LEDs vermelho e verde conectados aos pinos RA0 e RA3 respectivamente e ficará aguardando que o botão conectado ao pino RA7 seja pressionado para iniciar a pesquisa.

Durante a pesquisa o LED vermelho, conectado ao pino RA0, piscará até que um dispositivo I2C seja encontrado no bus.

O recebimento de uma resposta positiva (ACK) significará que um dispositivo I2C foi encontrado. O LED verde, no pino RA3, acenderá e o LED vermelho, do pino RA0, apagará, indicando que o valor mostrado nos 8 LEDs do PORTB é um endereço válido. O programa fica aguardando até que o botão conectado no pino RA7 seja pressionado novamente para continuar a pesquisa. O processo se repetirá até que um outro dispositivo I2C seja encontrado ou até que se esgotem os endereços possíveis.

O fim da pesquisa será indicado com os LEDs verde (RA3) e vermelho (RA0) acesos.

A montagem do circuito dispensa comentários. É só seguir o esquema abaixo:




SOFTWARE

Baixe o projeto HPSPIN I2C SCANNER numa pasta de seu computador e descomprima o arquivo "HPSPIN_I2C_SCANNER.zip". Grave o arquivo "i2cscanner.hex" num microcontrolador PIC16F628A e o circuito esta pronto para funcionar. Se desejar, pode modificar o projeto editando o arquivo "i2cscanner.asm" para adicionar novas funcionalidades. A comunicação com o bus I2C é realizada pelo módulo do arquivo "i2cproto_services.inc". Vale a pena dar uma olhada no fonte do arquivo "i2cproto_services.inc" para aprender um pouco mais sobre o protocolo I2C.

O pequeno vídeo abaixo mostra a detecção do endereço 0x27 de um LCD I2C conectado ao bus.







H P S P I N

Desde 04 de Março de 2010

Atualização: 28 de Mar de 2024