Problemas con un sensor de luz a traves del I2C y PIC

Hola a todos, hace unos dias compre un sensor de luz ISL29010, este me maneja a traves del I2C. Yo ya he trabajado con el I2C, en la configuracion del DS1307 y una memoria EEPROM. Sin embargo estoy teniendo problemas pues cuando leo los datos de los registros del I2C siempre es cero. Problema de hardware no es ya lo he revisado. Pienso que debe ser de software, quiero usarlo en internal timing mode pero bueno espero que alguien con mas experiencia en este tipo de interfaces I2C me ayude, esta es la hoja de datos del ISL29010 , y adjunto los diagramas de lectura y escritura, a continuacion pongo lo metodos de lectura y escritura que estoy haciendo:

//******************************************************************************

void luz_write (){

i2c_start(); //Inicia I2C
i2c_write(0x88); //Direcciona ISL29010
i2c_write(0x00); //Indica que empiece en registro COMMAND
// i2c_write(0x88);
i2c_write(0x08);
i2c_stop(); //

i2c_start(); //Inicia I2C
i2c_write(0x88); //Direcciona ISL29010
i2c_write(0x01); //Indica que empiece en registro CONTROL
i2c_write(0x0C);
i2c_stop();

}

//******************************************************************************

//******************************************************************************

void luz_read (){

i2c_start(); //Inicia I2C
i2c_write(0x88); //Direcciona ISL29010
i2c_write(0x04); //Indica que empiece en registro LSB SENSOR
i2c_stop(); //

i2c_start(); //Inicia I2C
i2c_write(0x89); //Direcciona ISL29010
luz_l = i2c_read(0); //
i2c_stop(); //

i2c_start(); //Inicia I2C
i2c_write(0x88); //Direcciona ISL29010
i2c_write(0x05); //Indica que empiece en reggistro MSB SENSOR
i2c_stop(); //

i2c_start(); //Inicia I2C
i2c_write(0x89); //Direcciona ISL29010
luz_h = i2c_read(0);
i2c_stop(); //

}

Saludos cordiales
 

Adjuntos

  • Read.JPG
    Read.JPG
    99.3 KB · Visitas: 6
  • Write.JPG
    Write.JPG
    96.1 KB · Visitas: 3
Atrás
Arriba