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.

DLPC3433: Unable to Write External Input Image Size (2Eh)

Part Number: DLPC3433
Other Parts Discussed in Thread: DLPC-API

Hi,

I'm trying to enable DSI routing for DLPC3433 chip by selecting double buffer mode for 1280x720 with 235MHz clock. Here is the listed sequence.

Projector ON GPIO enabled

Reset Pull high

# i2cset BUS ADDR} 0x1a 0x01

# i2cset BUS ADDR 0x01 0x00

# i2cset BUS ADDR 0x05 0x00

# i2cset BUS ADDR 0x07 0x00

# i2cset BUS ADDR 0x2E 0x00 0x05 0xD0 0x02 i

# i2cset BUS ADDR 0xBD 0xEB 0x00

# i2cset BUS ADDR 0xD7 0x00

However the above sequence with 0x2E seems failing.

# i2cset BUS ADDR 0x2E 0x00 0x05 0xD0 0x02 i

i2cset: write failed: No such device or address

# i2cget -y ${I2C_BUS} ${I2C_ADDR} 0xd0
0x83

With 8-byte

# i2cset -y ${I2C_BUS} ${I2C_ADDR} 0x2E 0x00 0x00 0x00 0x00 0x00 0x05 0xD0 0x02 i
i2cset: write failed: No such device or address

I have noticed read status(0xdo) show 0x83 even for working commands prior to 0x2E.

Any corrections and suggestions on the above sequnce?

Thanks,

Jagan.

  • Hello Jagan,

    Welcome to DLP forum and thank you for your inter in DLP technology. I hope you have downloaded the recent version of DLP3433 datasheet.  This revision has details about DSI capabilities. Please refer to section 7.3.1.4 DSI Interface on page 36 of datasheet. 

    www.ti.com/.../dlpc3433.pdf

    There are some very specific requirements and even host processor should be compliant with those for DSI interface to work properly. Please review those and ensure that non of them are violated.

    After you have reviewed the detailed saponification, please go through DSI set & debug guide in the following FAQ thread:

    e2e.ti.com/.../846660

    These should help you resolve the issue.

    regards,

    Vivek

  • Thanks for the detailed information Vivek.

    Yes. I have observed the details mentioned in section 7.3.1.4 about DSI capabilities and I did verified the R16 DSI Controller on one of my panel has a support of Burst mode.

    However the problem is so early that I'm trying to execute the DSI sequence mentioned in Debug document from section "DLPC343x Setup"

    1. VDDLP12 is VDD1.1 in the design.

    2. Enabled PROJ_ON GPIO with Active HIGH

    3. Run the below sequence

    # i2cdetect -y 1

    0 1 2 3 4 5 6 7 8 9 a b c d e f
    00: -- -- -- -- -- -- -- -- -- -- -- -- --
    10: -- -- -- -- -- -- -- -- -- -- -- -- -- 1d -- --
    20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    30: -- -- 32 -- -- -- -- -- -- -- -- -- -- -- -- --
    40: -- -- -- -- -- -- -- -- -- -- -- -- -- 4d -- --
    50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    70: -- -- -- -- -- -- -- --

    # BUS=1
    # ADDR=0x1d
    # i2cset -y ${BUS} ${ADDR} 0xd7 0x00
    # i2cset -y ${BUS} ${ADDR} 0x10 0x00 0x00 0x00 0x00 0x56 0x03 0xe0 0x01 i
    i2cset: write failed: No such device or address

    # i2cget -y ${BUS} ${ADDR} 0xd0

    0x83

    As I mentioned in initial thread, image size related commands itself are failing to write. Look like some register setup would require prior to 0x10 or something related to hardware.

    Request for help.

    Jagan.

  • Hello Jagan,

    To be clear, once you send the 0x2E command you appear to lose connection with the ASIC? Are you able to send the 0xd0 command after and connect?

    Is there a difference when sending # i2cset BUS ADDR 0x2e 0x00 0x05 0xD0 0x02 i or # i2cset -y ${I2C_BUS} ${I2C_ADDR} 0x2E 0x00 0x00 0x00 0x00 0x00 0x05 0xD0 0x02 i (note lower case "e")?

    Regards,

    Austin

  • Hi Austin,

    Look like image size registers 0x10 and 0x2e work only for 3-byte mode on my hardware. Not sure the exact reason for it. Please check below details.

    # i2cset -y ${BUS} ${ADDR} 0xd7 0x00
    # i2cset -y ${BUS} ${ADDR} 0x2E 0x00 0x00 0x00 0x00 0x00 0x05 0xD0 0x02 i
    i2cset: write failed: No such device or address
    # i2cget -y ${BUS} ${ADDR} 0xd0
    [ 57.911006] i2c i2c-1: mv64xxx: I2C bus locked, block: 1, time_left: 0
    i2cget: read failed: Connection timed out

    # i2cset -y ${BUS} ${ADDR} 0xd7 0x00
    # i2cset -y ${BUS} ${ADDR} 0x2e 0x00 0x00 0x00 0x00 0x00 0x05 0xd0 0x02 i
    i2cset: write failed: No such device or address
    # i2cset -y ${BUS} ${ADDR} 0xd7 0x00
    [ 144.470979] i2c i2c-1: mv64xxx: I2C bus locked, block: 1, time_left: 0
    i2cset: write failed: Connection timed out

    # i2cset -y ${BUS} ${ADDR} 0xd7 0x00
    # i2cset -y ${BUS} ${ADDR} 0x2e 0x00 0x05 0xD0 0x02 i
    i2cset: write failed: No such device or address
    # i2cget -y ${BUS} ${ADDR} 0xd0
    0x83
    # i2cget -y ${BUS} ${ADDR} 0xd3
    0xd3

    3-byte 0x2e

    # i2cset -y ${BUS} ${ADDR} 0xd7 0x00
    # i2cset -y ${BUS} ${ADDR} 0x2e 0x05 0xD0 0x02 i
    # i2cget -y ${BUS} ${ADDR} 0xd0
    0x83
    # i2cget -y ${BUS} ${ADDR} 0xd3
    0xd3

     8-byte 0x10:

    # i2cset -y ${BUS} ${ADDR} 0xd7 0x00
    # i2cset -y ${BUS} ${ADDR} 0x10 0x00 0x00 0x00 0x00 0x56 0x03 0xe0 0x01 i
    i2cset: write failed: No such device or address
    # i2cget -y ${BUS} ${ADDR} 0xd0
    0x83
    # i2cget -y ${BUS} ${ADDR} 0xd3
    0xd3

    3-byte 0x10:

    # i2cset -y ${BUS} ${ADDR} 0x10 0x03 0xe0 0x01 i

    # i2cget -y ${BUS} ${ADDR} 0xd0
    0x83
    # i2cget -y ${BUS} ${ADDR} 0xd3
    0xd3

    Any inputs, please let me know.

    Jagan.

  • Jagan,

    Thanks for the additional clarification. Our team is looking into this and will get back to you by early next week.

    Regards,

    Mayank

  • Jagan,

    It looks like you are trying to send DLP commands over the Linux I2C-tools software command structure.

    Have you tried using the DLPC-API? If nothing else it may help you format your commands in case there is a byte-packing issue. It is Python based:

    https://www.ti.com/tool/DLPC-API

    I hope this helps.

    Regards,

    Philippe Dollo

  • Thanks everyone. The issue entitles due to issue of hardware design. We have new batch board where Write size registers are working fine.