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.

DLPC910: Can't communicate through I2C (Not Acknowledge)

Part Number: DLPC910
Other Parts Discussed in Thread: TIDA-00570

Dear All,

Our DLPC910 board is initialized.

We're trying to communicate with the DLPC910 board via I2C (using another FPGA board), however, we cannot get the Acknowledge from the DLPC910.

We've followed the DLPC910 datasheet "Example I2C Master Reading DLPC910 Register Data", and since that our DDC_IIC_ADDR_SEL is pulled up internally, we write and read to the address 0x36.

And Here is our I2C signal:

Thank you for your time.



  • This picture shows that our DLPC910 is well initialized. (It initialized for 4 ms, just like the datasheet said)

    After that we start to send our I2C signal like aforementioned.

    CH1(the yellow one): APP_DLPC_RSTZ

    CH2(the blue one): DLPC_INIT_ACTIVE


  • Hi Justin,

    Welcome to DLP section of TI E2E community. I will get back to you after consulting the expert.

  • Hello Justin,

    What are you interfacing (i.e. FPGA / microcontroller) to feed data to the DLPC910?

    Are you able to probe some of the physical lines, such as DMD_TYPE(0:3). If so can you report the values of these pins after initialization?
    Also can you verify the input voltage rails to the DMD: VCC, VCC2 (i.e. V_OFFSET), V_RESET, & V_BIAS?

  • Dear Fizix,

    I should first clarify this:
    For routing convenience, the mirror is connected to the C, D LVDS buses instead of the default A, B buses. Routing is exactly the same as TI’s reference design TIDA-00570.
    We are hoping to activate the C, D buses by altering the DESTOP_BUS_SWAP register using I2C. Please correct me if I'm wrong, the I2C should function whether the mirror is attached or not and our approach should work fine if the I2C is functioning. We have tried both with and without the mirror attached and I2C didn’t work under both conditions. We have also observed the supply rails during initialization and did not observe any voltage droop on the rails.

    Back to your question:
    1. We've tried different ways to feed the I2C data (using an STM32F303 microcontroller, and a Cora Z7 FPGA board), and we've verified the signals using an oscilloscope. For now, we're using a pseudo I2C code as below to wait for the Acknowledge from DLPC910. From the last rise on the SDA line, the pull-up resistor appears to be correct.
    We are also sure the I2C pins are routed correctly to DLPC910 since the same measurements can be made through the through hole vias of SDA and SCL pins.

    We've tried this I2C code with other I2C devices, and it was acknowledged.

    2. DMD_TYPE(0:3): 0111. By the way, the information of DMD_TYPE for corresponding mirrors is nowhere to be found in the DLPC910 datasheet.

    3. VCC: 3.3V,
        VCC2: 8.49V,
        V_RESET: -9.98V,
        V_BIAS: 15.89V

    4. In addition:
        i. We've verified test points for SCP_CLK, SCP_ENZ, SCP_DI, SCP_DO and it appears that communication between DLPC910 and DLP6500 is functional.
        ii. DDC_VERSION(0:2): 010
        iii. RST2BLKz, COMP_DATA, and NS_FLIP are low during initialization


  • Hi Justin,

    0x36 is 8bit address. So first i2c byte is 0x1B + r/w bit.
    I.e (0x1B << 1) | r/w bit

  • Hi ykc,

    We've tried 0x1A, 0x1B for different jumper states.(0x1A for DDC_IIC_ADDR_SEL=0, 0x1B for DDC_IIC_ADDR_SEL=1)


  • Hi Justin,

    Attached an example of successful ack with 7bit address 0x1A.

  • Hi Justin,

    What is the i2c pullups value used? Please make sure i2c spec setup/hold time are not getting violated.

  • Hi ykc,

    Same as the reference design, we're using a 4.7k resistor in our pullup network.
    We've tried to feed the same waveform as you showed, but we couldn't get the same result.


  • Hi Justin,

    Is this problem only on one system?

  • Hi ykc,

    Since we found out that the issue was induced by the power glitch, so now we're able to use the I2C interface to setup DLPC910.