On Semi I2C NCV7685 LED Driver

Hola a todos!

Este es mi primer post en este prestigioso foro. Asi que espero no aburrirlos con algo simple…

Hoy les traigo este Driver relativamente nuevo, lo tengo gracias a una placa de evaluacion que me han regalado, y viene con un microcontrolador que te muestra todo lo que puedes hacer con el… La funcion del driver es controlar 12 LEDs independientemente, a través de I2C. Puedes regular el PWM de cada LED, Frecuencia, etc. Más info: Products - ON Semiconductor

He desconectado el microcontrolador que trae y me he conectado directamente al driver con el arduino a través de I2C y he logrado hacer animaciones con el y programarlo siguiendo el Datasheet y la guía de programacion: https://www.onsemi.com/pub/Collateral/AND9764-D.PDF :stuck_out_tongue:

Pero no lo he podido leer! no puedo leer nada de sus registros. Se que es algo que estoy haciendo mal con el arduino, porque he pedido prestado un sniffer y he visto como el NCV responde al microcontrolador de la placa de evaluacion, pero con el arduino no recibo nada de vuelta :confused: .

Esto es lo que ve el Sniffer en la placa de evaluacion:
*Start, hC0 [ h60 | WR ], hC0, h0A, <— Mensaje que le envío al driver.
*Restart, hC1 [ h60 | RD ], h00, h00, h10, h00, h00 NAK, ← Mensaje que recivo

Yo le envío el mismo mensaje con el arduino, y me quedo sin recibir nada. No es un tema de conexion porque sino no pudiera hacer los efectos de luz con el arduino.

Este es el codigo que utilizo:

#include <Wire.h> 

void setup() 
{
   //Connections:
   Serial.begin(9600);                         
   Wire.begin();                               
   Wire.setClock(400000);                                              
   //Initial Message:
   Serial.println("READY!");
   delay(500);
}

void loop() 
{     
 //ADDRESS
 Wire.beginTransmission(0x60);     // SLAVE ADDRESS 0x60 (7-bit ADD).

 //2 ADDRESS
 Wire.write(0xC0);                 // 2nd I2C Address byte (8-bit ADD, REQUIEREMENT OF THE DEVICE).

 //IDENTIFIER (REGISTER)
 Wire.write(0x0A);      
          
 //CLOSE TRANSMISION
 if (Wire.endTransmission() != 0) Serial.println("NO CONNECTION");    // To check if the transmission was successfully ended.
 
 //REQUEST FOR DATA
 Wire.requestFrom(0x60,5);                  
 
while(Wire.available())                    // Returns the number of bytes available. So the slave may send at least less than requested...
{
  int c = Wire.read();                     // receive a byte
  Serial.print(c, HEX);                    // print the byte
}                                               //Spected results: 00, 00, 10, 00, 00.
 delay(500);
}

He hecho un escaneo con el osciloscopio y veo que no se transmite el Wire.requestFrom(0x60,5), debiera ser una trama con la direccion y 1 de lectura al final.

Si podeis hecharme una mano os agradeceré un muchisimo, estoy muy motivado con este dispositivo!