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.

DLP4710EVM-LC: DLP4710EVM-LC I2C for external pattern

Part Number: DLP4710EVM-LC
Other Parts Discussed in Thread: DLP4710

Tool/software:

Hello,

I am attempting to configure the DLP4710 to operate in external pattern mode via I2C. The HDMI cable is connected to a properly functioning laptop. Despite following the commands outlined in the programmer's guide, I encountered an issue where the screen simply goes black. Here are the commands used:

0xDE, 0xA0 (note: tried with and without this)
0xDF, 0x18, 0x00 (note: tried with and without this)
0x92, 0x02, 0x00, 0x00, 0x00, 0x00
0x92, 0x03, 0x00, 0x00, 0x00, 0x00
0x96, 0x03, 0x01, 0x07, 0xCB, 0x32, 0x00, 0x00, 0x98, 0x08, 0x00, 0x00, 0x88, 0x13, 0x00, 0x00
0x05, 0x03

I can confirm successful communication with the DLP via I2C, as I am able to execute other commands such as toggling an LED or adjusting current without issues. Interestingly, changing to external video via {0x05, 0x00} works as expected. Could there be additional configurations required before executing the above I2C commands?

Thank you for your assistance.

  • Hello Mark,

    The first two commands should only be used if you are actively trying to flash the DLPC firmware, in this instance I would not recommend adding them. 

    How are you sending these commands? Via PC/EVM GUI/MCU? 

    I would recommend using the DLP EVM GUI to verify the commands you want to send. In this case you can do the following:

    1.Clear command log (debug->command log-> clear)

    2.Setup external pattern timings as you'd like in the light control menu

    3.Press "set" button

    4.Monitor the command log and replicate it in your application

    You will see a list of commands in the command log similar to the below screenshot.

    Best,

    Maximus

  • Hi Maximus,

    Thanks for the recommendation. I am using an MCU to send I2C data and have also tried using the Analog Discovery and DLP EVM GUI. Unfortunately, all of them yield the same result: the screen goes off. Here is the command log.

    Would it be okay if I don't send the "Read Validate Exposure Time (9Dh)" command, or do I need to read the returned data to set off a flag?


    Thank you.

  • Hello User,

    Thanks for the information. Please give our team some time to look into this issue further and we will get back to you as soon as possible. 

    Regards,

    Alex Chan

  • Hi Mark,

    Have you confirmed via the logic analyzer that when sending these commands they are sent as expected? Can you also confirm trigger in is disabled? Do you have any image output when in other modes?

    Best,

    Maximus

  • Hi Maximus,

    I'll try to answer your questions with a few updates. I can now send I2C commands through the EVM GUI, and it's working fine. I've started probing the I2C pins with a logic analyzer, and I can confirm that the I2C commands sent through the EVM GUI are being properly transmitted. I've attached a screenshot showing the commands to switch to external pattern streaming. Four commands (92h,92h,96h, 05h)


    Zoomed in on one of them (92h) for clarity:

    I can also send "some" I2C commands through my MCU, but I still can't switch to external streaming mode through I2C. For example, I can successfully send 52h, 54h, and even 05h (only 0). However, I can't send 92h or 96h, which is really puzzling.

    Here you can see that I can send 52h and 54h through MCU:

    I can also send (05h, 0)(for video port streaming):


    I also tried disabling trigger in using 90h before running 92h commands, but it doesn't seem to make any difference. I'm confused as to why I can send other I2C commands through the MCU but not 92h or 96h (or 05h with a value of 03).

    Thanks for your help!



  • Hi Mark,

    Thanks for clarifying, I am glad we can confirm the system is working properly when using the EVM GUI to send the I2C commands. I would recommend checking your MCU code to verify your write buffer is being loaded properly when sending these commands. The DLPC needs to receive the proper command to get the behavior you are expecting. What MCU are you using?

    Best,

    Maximus

  • Yes, I can confirm that the MCU (Adafruit Grand Central M4 Express) is sending out the I2C commands correctly:

  • Hi Mark,

    When you say you cannot send 92h, 96h, or can only send 05h 00h, what exactly do you mean? Your console screenshot seems to show the 05h 03h command but your previous message says you can only send 05h 00h, so what is happening? 

    Best,

    Maximus

  • Hi Maximus,

    To clarify, the previous screenshot is showing that the MCU is correctly sending out I2C commands to a slave (the slave is Analog Discovery).
    But, when I connect the SCL and SDA to the I2C input of the DLP4710 and probe the I2C channel, these commands don't show up!!

    Thank you

  • Hi,

    Please allow me some time to look further into this and get back to you. 

    Best,

    Maximus

  • Hi Mark,

    When you say these commands do not show up, is the transaction started at all? Could you share the logic analyzer printout when these 92h, 96h and 05h commands are sent between MCU and DLPC? Also your previous screenshots show 0x05 0x01 was sent instead of the expected ox05 0x03, what did you see displayed by the projector after this?

    I also would like to ask that you:

    • Confirm you are using the latest firmware version found at TI DLP Pico Firmware Selector Tool and if not please flash the latest.
    • Ensure your MCU is configured for I2C speed of 100kHz

    Best,

    Maximus

  • Hi Maximus,

    Regarding your questions:
    When you say these commands do not show up, is the transaction started at all? I am not sure specifically about the external streaming commands (92h, 96h, and 05h) (maybe it needs another command to start it?), but I know that I can send some I2C commands such as 52h and 54h (as I showed in my previous I2C screenshots). So, I would assume that the connection is established.

    Could you share the logic analyzer printout when these 92h, 96h and 05h commands are sent between MCU and DLPC? "I cannot! As soon as I send the (05,03) commands along with (92h and 96h), the DMD goes off, so I can't record that. When I only send the (92h and 96h) commands, they do not show up in the communication channel at all.

    Also your previous screenshots show 0x05 0x01 was sent instead of the expected ox05 0x03, what did you see displayed by the projector after this? Yes, as I mention above I can send (05h,00) which shows the video port through HDMI correctly and (05h,01) which shoes a test pattern correctly. 

    Yes, I am using the latest version, 8.3

    Yes, the MCU is configured for 100kHz

    Thank you,   

  • Hi Mark,

    Are you writing 05h 03h first? You need to first write the Trigger Out Configuration(92h) twice (once for each trigger) and Pattern Configuration (96h) before switching to External Pattern Streaming (05h 03h). I just tested on our system and sending 05h 03h before the 92h and 96h commands are properly sent results in the system turning off and being unresponsive. 

    Best,

    Maximus

  • Hi Maximus,

    Thanks for the reply.

    No, I am sending the (05h, 03h) commands after the 92h and 96h commands, as shown in the screenshot capturing the communication between the MCU and Analog Discovery as the slave.


    Thanks,

  • Hey Mark,

    Could you try testing each of these commands individually and independently of sending any others to see what works and doesn't? I am a little confused as your previous message seemed say you can't send 92h and 96h because after sending 05h 03h you lose communication. 

    Best,

    Maximus

  • To clarify, I am unable to send the 92h and 96h commands; they never appear on the I2C channel, regardless of whether they are accompanied by (05,03). For example, when I send 52h either before or after 92h or 96h (without (05,03) since that causes the DMD to go off), 52h appears, but 92h or 96h do not.

    If I attempt to send the sequence 92h, 92h, 96h, and 54h, only 54h shows up on the channel. Additionally, if I send 92h followed by (05,00), only (05,00) appears on the I2C channel. Sending (05,03) before or after two 92h commands and one 96h command causes the DMD to turn off.

    Thank you,

  • Hi Mark,

    Thanks for clarifying, my understanding of the issue is:

    • MCU sends 92h, 92h, 96h, "05h 03h" commands in this order to the analog discover (setup at i2c peripheral) just fine
    • MCU sends/receives 54h/52h and even "05h 00h", "05h 01h" commands just fine form DLPC
    • When MCU sends 92h, 92h, 96h, "05h 03h" to DLPC, "92h, 92h, 96h" do not appear on the logic analyzer and then "05h 03h" is sent as "05h 00h"
      • Image shuts down and communication is lost

    What is the I2C voltage level on your MCU? Have you noticed any other commands you send not working? 

    Best,
    Maximus

  • Correct!
    Just a minor correction regarding "When MCU sends 92h, 92h, 96h, "05h 03h" to DLPC, "92h, 92h, 96h" do not appear on the logic analyzer and then "05h 03h" is sent as "05h 00h"";

    "05h 03h" is not being sent as "05h 00h", sending "05h 03h", shots down the DMD screen. I only send "05h 00h" (obviously without 92h, 92h, 96h) to test that I can actually connect via DLPC through the video port. 


    It happens to "05h, 05h" (Light Control – Splash Pattern Mode) as well. Haven't tried the Internal Pattern Streaming Mode.

    The voltage level is 3.3V.

    Thank you,

  • Hi Mark,

    Got it. Can you send a screenshot of the GUI information page after a read? Have you found any other commands to not work or just the ones related to Light Control modes?

    Best,

    Maximus

  • Hi Maximus,

    Here is a screenshot of the info page:

    So far, I have successfully tested the 52h, 54h, (05h,00), and (05h,01) commands. I will continue experimenting with additional commands.

    Thanks,

  • Hi Mark,

    Thanks for your patience, please try each of the Light Control related commands to determine if they work. In the mean time, I have an MCU here that I will try to test with on my end. How are you connecting your MCU to the EVM and do you have any other devices on the I2C bus?

    Best,

    Maximus

  • Sure, I will get back to you on testing the other commands. The MCU is connected to the EVM via the I2C connector, with a shared reference ground for both devices. Two pins on the MCU are configured as SCL and SDA lines operating at 100 kHz, connected to the corresponding SCL and SDA pins on the EVM. There are no other devices on the I2C bus between the MCU and the MSP430.

    Thank you.

  • Sounds good, looking forward to hearing back. Will let you know when I have an update as well.

    Best,

    Maximus

  • I tried several other commands, such as 14h, which worked fine. However, when it came to internal pattern streaming (05h, 04), I encountered the same issue.
    Thanks,

  • Hi Mark,

    Would you be able to provide some code snippets of your MCU logic, are you using the DLPC API? I have also sent you an E2E friend request, I would like to send you a download for an older firmware version to flash the EVM and test with as well.

    Best,

    Maximus

  • Closing this thread, please feel free to respond if you would like to open it back up.

    Best,

    Maximus