I just write the code as the datasheet show...
Check it... It is right?
void Write_TDA9950(){
Wire.beginTransmission(0x34); // 0x34 - TDA9950
Wire.write(0x00); // SET ADDRESS POINTER - 0x00 - CSR
Wire.endTransmission(); // CLOSE
Wire.requestFrom(0x34,7, true);
CSR = Wire.read();
do {
CSR = Wire.read();
if (bitRead(CSR,7)==1) // CHECK bit 7 OF CSR. WHEN IS HIGH, BREAK
break;
delay(10);
} while (1);
Wire.beginTransmission(0x34); // 0x34 - TDA9950
Wire.write(0x07); // SET ADDRESS POINTER 0x07 - CDR
Wire.write(0x04);
Wire.write(0x00); // CECDATA.req
Wire.write(0x40); // AddressByte = DVD/TV
Wire.write(0x0D); // DataByte = <TextView On> - Details HDMI V1.3a
Wire.endTransmission(); // CLOSE
CSR = Wire.read();
do {
CSR = Wire.read();
if (bitRead(CSR,6)==1) // CHECK bit 6 OF CSR. WHEN IS HIGH, BREAK. It is possible check the INT output PIN
break;
delay(10);
} while (1);
Wire.beginTransmission(0x34); // 0x34 - TDA9950
Wire.write(0x07); // SET ADDRESS POINTER 0x07 - CDR
Wire.endTransmission(); // CLOSE
Wire.requestFrom(0x34,7, true);
for( int i=0; i<7; i++)
{
Serial.print( "0x");
Serial.print( Wire.read(), HEX);
Serial.print( ", ");
}
Serial.println();
}
Thanks!
