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: I2C Communication

Part Number: DLPC3433
Other Parts Discussed in Thread: DLPA3000

Hello, 

I have a DLPC3433 and DLPA3000 on a custom board with a light engine. There are multiple issues I am having with the system, but I can post them one at a time, and perhaps some of them are related. After some troubleshooting I am now able to communicate with the DLPC3433 over I2C and the HOST_IRQ pin goes low indicating that the system is ready, and light comes out of the light engine! I am able to change the test pattern on the light engine, but have still not had success in producing an image (as far as I can tell) from the DSI bus from my host processor. 

Here are the sequence of events and some commands in the bash terminal

# The processor boots ... 

# Set PROJ_ON 

# Light starts coming out of the light engine in a semi-random static pattern

# Run the commands below:

[root@alarm ~]# BUS_NUM=1
[root@alarm ~]#
[root@alarm ~]# DLP_ADDR=0x1b
[root@alarm ~]#
[root@alarm ~]# i2cset -y ${BUS_NUM} ${DLP_ADDR} 0x05 0x01
[root@alarm ~]# i2cget -y ${BUS_NUM} ${DLP_ADDR} 0x06
0x01
[root@alarm ~]# i2cget -y ${BUS_NUM} ${DLP_ADDR} 0x0c
0x00
[root@alarm ~]# i2cset -y ${BUS_NUM} ${DLP_ADDR} 0x0b 0x08
[root@alarm ~]# i2cget -y ${BUS_NUM} ${DLP_ADDR} 0x0c
0x08
[root@alarm ~]# i2cset -y ${BUS_NUM} ${DLP_ADDR} 0x0b 0x01
[root@alarm ~]# i2cget -y ${BUS_NUM} ${DLP_ADDR} 0x0c
0x08
[root@alarm ~]# i2cset -y ${BUS_NUM} ${DLP_ADDR} 0x0b 0x00
[root@alarm ~]# i2cget -y ${BUS_NUM} ${DLP_ADDR} 0x0c
0x08
[root@alarm ~]# i2cset -y ${BUS_NUM} ${DLP_ADDR} 0x05 0x00
[root@alarm ~]# i2cget -y ${BUS_NUM} ${DLP_ADDR} 0x06
0x00
[root@alarm ~]# i2cset -y ${BUS_NUM} ${DLP_ADDR} 0x05 0x01
[root@alarm ~]# i2cget -y ${BUS_NUM} ${DLP_ADDR} 0x06
0x01
[root@alarm ~]# i2cget -y ${BUS_NUM} ${DLP_ADDR} 0x0c
0x08
[root@alarm ~]# i2cset -y ${BUS_NUM} ${DLP_ADDR} 0x0b 0x01
[root@alarm ~]# i2cget -y ${BUS_NUM} ${DLP_ADDR} 0x0c
0x08

As you can see. the register 0x0b can be set once (and it works and the color bars do appear), but the register appears to not be taking the command to be set again. Why is that?

  • Hi Christopher,

    Welcome to TI E2E forums! One of our experts will look into your issue and get back in a couple of days. Thanks for your patience!

  • Hello Christopher,

    I believe the issue is the format of the command that you are sending. The color bar pattern is the simplest pattern signal requiring only 1 byte sent to the 0x0b address. This is not necessarily the case for all of the patterns.

    To test if the formatting is off, please try sending the command 0x0b 0x0010 and let me know if you have any success. In this case a red field should replace the color bar test pattern.

    More test pattern commands can be found on pages 14 and 15 of the programmer's guide.

    Kindly,

    Austin

  • Resolved!

    This command worked 

    i2cset -y ${BUS_NUM} ${DLP_ADDR} 0x0b 0x00 0x10 i

    I will likely have more questions coming on how to get it to work with the DSI input. 

    Thanks, 

    Chris