This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DLP4500: DLP4500 I2C communication

Part Number: DLP4500
Other Parts Discussed in Thread: DLP4710, DLPC350

Hi TI,

I want to use I2C_0 (J16) to control the projection starts (project pattern once is set in INI). But I got error.

Below is my c++ code (I am using cyusb, same chip used by DLP4710)

(1) Jump 19 not set

(2) J16 connector: SCL/SDA/GND connected to cyusb board. I did not use V3.3 on projector board since cyusb provides 3.3V to SCL/SDA.  

(3) C++ code

CY_I2C_CONFIG cyI2CConfig;
CY_DATA_BUFFER cyDataBuffer;
CY_I2C_DATA_CONFIG cyI2CDataConfig;
unsigned char readBuffer[4096], writeBuffer[4096];
UINT32 timeout = 5000;


cyI2CDataConfig.slaveAddress = 0x1A;
cyI2CDataConfig.isNakBit = true;
cyI2CDataConfig.isStopBit = true;

memset(writeBuffer, 0x00, 4096);
memset(readBuffer, 0x00, 4096);

cyDataBuffer.buffer = writeBuffer;

cyDataBuffer.buffer[0] = 0xe5; // 0x65 but modify it to 0xe5
cyDataBuffer.buffer[1] = 0x02; // start pattern sequence
cyDataBuffer.length = 2;

rStatus = CyI2cWrite(handle, &cyI2CDataConfig, &cyDataBuffer, timeout);

if (rStatus != CY_SUCCESS)
{
printf("Write to device failed \n");
}

Not sure where goes wrong. Could you please give me a hand. 

Thanks!

Derlin