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.

DLPC3470: Can't reactivate splash mode after internal pattern streaming with input trigger

Part Number: DLPC3470
Other Parts Discussed in Thread: DLP2010LC, , DLPC3478

Hi All,

We have been successfully using the 3470/2005/2010 combination in a structured light application for several years now.  We operate the device with the input trigger enabled to synchronize it with a image sensor.  This is working well for us.

We are now investigating a new mode of operation that requires us to reactivate splash display mode after stopping internal streaming and are having problems getting the 3470 back into splash screen mode after it has been in internally streaming images.

We recorded these commands using the evaluation board to switch from int pattern streaming back to splash screen 0:

W 36 05 04
W 36 9E 00 FF
W 36 9E 01 00
W 36 1A 01
W 36 2E 56 03 E0 01
W 36 10 00 00 00 00 56 03 E0 01
W 36 12 00 00 00 00 56 03 E0 01

W 36 90 00   <tried adding this to disable the internal triggering mode

W 36 0D 00
W 36 05 02
W 36 35
W 36 52 07
W 36 1A 00

But when I write code to generate these same commands, the projector remains in streaming mode.  I am delaying 10 ms between each written command.

I also tried disabling the internal trigger with the extra command, but that didn't help.

Any suggestion are most appreciated.

Thanks,

Scott

  • Hello Scott,

    Welcome to DLP forum and thank your interest in DLP technology.

    Are you using DLP2010LC EVM or your own hardware?

    Do you see the same behavior in TI EVM?

    regards,

    Vivek

  • Hi Vivek,

    We are using our own hardware: DLPC3470, DLP2005 and DLP2010LC.

    Thanks,

    Scott

  • Scott, 

    When you recorded the command flow via EVM, did you face the same problem as seen on your hardware? 

    Regards,

    Mayank

  • Hi Mayank,

    No, the commands recorded from the EVM worked on the EVM, but the exact same commands didn't work on our hardware.  I tried several variations, delays between writes, nothing helped.

    I should mention that our hardware is functionally the same as the EVM, with added functionality removed.  We also don't have the parallel video interface, we only control the 3470 with its i2c interface.

    Finally, I have seen several instances when commands recorded in the EVM don't perform the same operations on our hardware.  Haven't ever gotten to the root-cause of this.

    Best,

    Scott

  • Hello Scott,

    Would you mind telling us parts were removed from the EVM design to make the custom HW in more detail? Can you give a list of ICs that were removed to remove the parallel video feature? There may be an issue with how certain pins are terminated depending on what ICs are removed.

    Regards,

    John 

  • Hi John,

    Given I started the thread with the statement that we're successfully using internal pattern streaming mode to project a series of between 7 and 30 patterns and synchronizing the patterns with an image sensor, do you really think there's a hardware issue?  Our schematic was reviewed years ago by TI.  I don't recall the EVM schematic and so can't compare it with ours without substantial research.

    But to specifically answer your question.  The 3470's D0-23 inputs are ground, along with HWTEST_EN, PCLK, PDM, VSYNC, HSYNC, DATAEN.  TST0-7 are floating with TST4 acting as a secondary, but unused, external trigger.  We use ASIC routing option 4 to connect the DLP2010LP.  Unused DMD outputs as well as GPIO5,9,14-15,17-19 and TRG_OUT_1 are floating.

    Over a year ago we got an update to the base 3470 firmware for ASIC option 4 that we've been using since.  We add our own splash screens and internal patterns using the EVM and TI's software then load the result into the 3470's serial flash.

    Thanks,

    Scott

  • Scott, 

    One additional question - does your hardware connect with the GUI? If yes, have you checked out whether you are facing similar problem with the GUI as well? 

    Regards,

    Mayank

  • Hi Mayank,

    No, unfortunately our hardware can't connect with the GUI.

    I may have stumbled across a symptom today.  I read all the controller's readable registers once after power-up when it is displaying splash screen 0, and a second time after we have activated then stopped internal pattern streaming mode.

    Most of the registers are as I would expect them to be, except 0x2C (DMD sequencer Sync mode).  Before internal pattern streaming (e.g., splash mode), 2C shows the DMD sequencer is auto-syncing to internal VSYNC (0x2).   After internal pattern streaming has started and stopped, it shows the sequencer is auto-syncing to *external* VSYNC.  In our system, the VSYNC pin is connected to ground.

    Is it possible that since there's no way to write the auto-sync setting that the controller remains locked in this state and can't be programmed to return to splash mode?

    I see in the DLPC3470 data sheet, there are footnote references for the VSYNC_WE and HSYNC_CS pins that their polarities are adjustable in software, but there are no details in either the data sheet or the DLPC3470/DLPC3478 programmer's guide as to how this is done.  I'm wondering if I were able to change the polarity and the controller is locked into a state waiting for external VSYNC to change, it might be possible for software to get the controller back into splash mode via software.

    Thanks,

    Scott

  • Hi Scott,

    Are you able to exit the streaming mode by transitioning to Standby Mode first (W 36 05 FF)? It may be that the DLPC is fixated on its task of projecting the frames immediately. Entering into Standby may allow the DLPC to recover.

    Regards,

    Austin

  • Hi Austin,

    I'm getting mixed results from your suggestion.  Early in the day, I was able to go into standby mode, then run a script and successfully put the system back into splash screen mode after running in internal pattern streaming mode.  The key difference using the standby command that you suggested seemed to be the DMD sync mode (0x2C) remained set to 2 (e.g., syncing on the internal VSYNC signal).  I repeated this process many times over the course of over an hour and it worked very reliably.

    The script commands are listed at the end of this email for reference.

    I then tried to hard-code the script commands into my firmware.  They failed to function correctly.  I figured this was because they are sent to the 3470 much faster with barely any delay between them.  I attempted to add delays between the hard-coded commands, but this interferes with other aspects of the system's operation and therefore isn't an acceptable solution.  I was proceeding to restructure the firmware to send these commands from a different point in the code that's not time-critical to delays, but...

    At this point I noticed that the script is no longer putting the projector into splash mode after scanning (internal pattern streaming mode).  The only clue I have is upon activation of standby mode, then stopping internal pattern control (w 9e 1 0), the DMD sync register is again being set to 0 (sync on external VSYNC, which is tried to ground) as it was before I began sending the standby command.

    Splash activation commands (all are addressed to the 3470 @ 0x36, all values in hex):

    w 1a 01                           # freeze
    w 5 2                               # splash mode
    w 2e 56 3 e0 1                # image size
    w 10 0 0 0 0 56 3 e0 1    # image crop
    w 12 0 0 0 0 56 3 e0 1    # display size
    w d 0                               # splash 0 select
    w 5 2                               # splash mode
    w 35                                # splash execute
    w 52 7                             # enable LEDs
    w 1a 0                             # unfreeze

    Thanks,

    Scott

  • Hello Scott,

    We will investigate this matter and look into the two methods you had tried on your system. 

    Regards,

    John

  • Hello Scott,

    I sent you a friend request so we can speak in private. We made a test build and would like to share with you. I can give details on what to do from there.

    Thank you,

    John

  • Hi John,

    I'm at work 8am-4pm EST.

    Thanks,

    Scott

  • Hello Scott,

    Since John is working with you directly to coordinate sharing the firmware with you, it appears that this post can be closed. If I am mistaken, please feel free to comment reopen this thread. If you issue has been resolved, please click the button indicating so.

    Regards,

    Austin