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.

DLPC410: Questions about DLP EVM Boards

Part Number: DLPC410
Other Parts Discussed in Thread: DLPC900, DLPC910, DLP6500FYE, DLP7000, DLP9500

I’m collaborating on a new project to calibrate scientific cameras for space missions using DMDs. For that reason, I’m trying to choose an evaluation board from your catalog to perform specific tasks. I have read the technical documentation about this technology, but in the end, I have some doubts. Could you help me trying to answer some questions in order to choose the best evaluation board for my project?

Considered evaluation boards:
• DLP Discovery 4100 (DLPC410);
• DLP LightCrafter 6500 (DLPC900);
• DLP LightCrafter 9000 (DLPC900);

A) If I understand correctly, when I want to change the position of one micromirror, I have to follow the following steps:
• Write data to one DMD single row - writing the same state for micromirrors I want to keep in the same position and changing the state of the micromirror that I want to move to a new position;
• Send MCP-Resets to change the physical position - addressing the block that contains my specific row with my specific micromirror.
• When the MCP-Reset is executed, micromirrors which the previous state is equal to the new state will remain in the same position. Micromirror which the previous state is different from the new state will be moved to the new position.

Questions:
1. Do I need to apply the MCP-Reset to an entire block of lines or just to a specific row?
2. I read that when an “MCP-Reset is issued to a block, the MCP momentarily releases the micromirror and then re-lands it based on the state of the CMOS memory below”. Does it mean that when the micromirror is released it can change its position (for example for an intermediate/flat position), even if the new CMOS state is the same state as the previous one?
3. In every considered evaluation board, may I apply this procedure to change a micromirror, in order to show static images?

B) To save some operation time I can use a “Single Block Phased Mode” or even a “Dual/Quad Block Mode”:
• In the “Single Block Phased Mode”, I can write/load data to a block while an MCP-Reset is performed in another block.
• In the “Dual Block Mode”, I can write/load data in two blocks while an MCP-Reset is performed in two other blocks.

Questions:
1. For the “Single Block Phased Mode”, do I have to load data to an adjacent block or could I do it for any block of my DMD (for example: if an MCP-Reset is issued to the block #3, I have to load data in to the next block – block #4 – and then send a MCP-Reset or could I do it for another block, for example block #8, and then block #1, and then block #5, etc.)?
2. For the “Dual Block Mode”, when MCP-Resets are issued for two blocks, are they performed one after the other or at the same time?
3. For the “Dual Block Mode”, I have to load data and perform MCP-Resets in two adjacent blocks. But, do I have to run this mode for consecutive groups of two blocks (blocks #3-#4, then blocks #5-#6) or can I jump between blocks (blocks #3-#4, then blocks #8-#9, then blocks #5-#6, etc.)?

Thank you in advance,
Cédric Pereira

  • Hello Cédric,

    First, welcome to the DLP section of the TI-E2E forums.

    First, just a slight addition to this item:

    "When the MCP-Reset is executed, micromirrors which the previous state is equal to the new state will remain in the same position. Micromirror which the previous state is different from the new state will be moved to the new position."

    When the micromirrors that are equal to the previous state receive an MCP-Reset, they will indeed return to the same position.  There is a brief period of  about 1.5 - 2.0 µs  that these micromirrors come up from the surface (but not up to the flat state) before returning to their original state.

    Apart from that one addition your understanding (in A) is quite good for the DLPC410 (& DLPC910) systems.  For the DLPC900 systems, you can set a starting and ending block to address, but it will load the whole block(s) and will perform a global MCP-Reset.

    Please find the answers in blue:

    A)  Questions:
    1. Do I need to apply the MCP-Reset to an entire block of lines or just to a specific row?

    You can only apply it to an entire "Reset Block".  This is physically wired that way.

    2. I read that when an “MCP-Reset is issued to a block, the MCP momentarily releases the micromirror and then re-lands it based on the state of the CMOS memory below”. Does it mean that when the micromirror is released it can change its position (for example for an intermediate/flat position), even if the new CMOS state is the same state as the previous one?

    Please see my note on A.

    3. In every considered evaluation board, may I apply this procedure to change a micromirror, in order to show static images?

    Yes, sort of.  The DLPC900 systems only use global MCP-Reset at this time, but you can load just the blocks you specify.

    The DLPC410 systems allow you to reset any block and load any individual row..  So yes, you can keep reloading the same data over and over again.

    Moreover, in many cases on the DLPC410 or DLPC910 systems, you can issue an MCP-Reset without  reloading data.

    B) Questions:

    1. For the “Single Block Phased Mode”, do I have to load data to an adjacent block or could I do it for any block of my DMD (for example: if an MCP-Reset is issued to the block #3, I have to load data in to the next block – block #4 – and then send a MCP-Reset or could I do it for another block, for example block #8, and then block #1, and then block #5, etc.)?

    This mode is only applicable to the DLPC410 (and DLPC910) system.  For those systems you can load any row in any order and reset blocks in any order.  So the answer is NO you do not have to load the next block.  In fact if there is only one row that has changed you can load just that row and issue an MCP-Reset to just that block.

    2. For the “Dual Block Mode”, when MCP-Resets are issued for two blocks, are they performed one after the other or at the same time?  

    In Dual Block (or Quad Block) mode, the reset is not done sequentially, but simultaneously for the two (or four) blocks.

    3. For the “Dual Block Mode”, I have to load data and perform MCP-Resets in two adjacent blocks. But, do I have to run this mode for consecutive groups of two blocks (blocks #3-#4, then blocks #5-#6) or can I jump between blocks (blocks #3-#4, then blocks #8-#9, then blocks #5-#6, etc.)?

    Again you do NOT have to load adjacent blocks, row loading can happen completely randomly, provided that you do not violate the MCP-Reset settling time.

    For Dual Block, the blocks are remapped.  Dual Block 0 maps to base blocks (0 & 1).  Dual Block 1 to base blocks {2 & 3), and so on up to Dual Block 7 which maps to base blocks (14 & 15).  Similarly for Quad Blocks -- 0 --> (0 - 3) base blocks up to 4 --> (12 - 15).  Let's call these D0-D7 (and Q0 - Q3).

    Then the Dn's or Qn's can be Reset in any order.


    NOTE:  For vacuum applications be aware that DLP6500FYE is not hermetically sealed.  If you expect significant radiation flux you may have to reload all micromirrors every cycle.  You can search for papers on independent testing for similar applications.

    Phizix

     

     

  • Thank you very much for your answers.

    They help me a lot :)

    Just regarding this answer:

    "When the MCP-Reset is executed, micromirrors which the previous state is equal to the new state will remain in the same position. Micromirror which the previous state is different from the new state will be moved to the new position."

    When the micromirrors that are equal to the previous state receive an MCP-Reset, they will indeed return to the same position.  There is a brief period of  about 1.5 - 2.0 µs  that these micromirrors come up from the surface (but not up to the flat state) before returning to their original state.

    Is there any documentation about this? It's a very important issue for my project...

     

    Thank you again.

    My best regards,

    Cédric Pereira

  • Hello again Cédric,

    This is mentioned indiirectly in some of the data sheets, but there is no detail on it.

    Can you explain how it might affect your project, and what you might be able to do to mitigate the impact?

    Fizix

  • I'm trying to modulate a light source using a DMD, in order to get a stable output for high and low frequency variations. Any perturbation will affect the output light reflected on the DMD. For this projected is very important to control in detail each micro-mirror, as fast as possible.

  • Hello again Cédric,

    The size the the perturbation optically is very dependent on you system optics, mostly on your aperture (f#)

    This would be the amplitude (flux) of the light.

    With a very small f# the output could go to zero for a couple of µs.  If you have a very large aperture, it may have a dip in intensity on the order of 20% (i.e. 80% of the value.

    Fizix

  • Thank you very much.

    I'm trying to calculate correctly the refresh rate for different operating modes. Could you please check the following math?

    I'm not sure if I can calculate the refresh rate in this way for "Single Line" and for "Single Block LOAD4"

    Thank you,

    Cédric

  • Hello again Cédric,

    That looks correct assuming you are using Global reset for all these modes.

    Be aware that the DLPC410 does not have any video or RGB input defined.  It has to be programmed at the APPS_FPGA by you.

    Fizix

  • "That looks correct assuming you are using Global reset for all these modes."

    > Is it mean if I "send" a MCP-Reset for a single block, it will take less than 4.5us to perform the reset of all micro-mirrors in that block?

    > I thought a single/dual/qual/global reset takes always 4.5us.

    "Be aware that the DLPC410 does not have any video or RGB input defined.  It has to be programmed at the APPS_FPGA by you."

    > But I can send bitframes from my computer to the EVM board (via USB) to project them with the DMD, right?

    > Can I also send bitframes to the EVM board (via USB) and store them in the memory board? To use after with the APPS_FPGA or with TI Software GUI...

    Thank you for your amazing help :)

    Cédric Pereira

     

  • Hello again Cédric,

    > Is it mean if I "send" a MCP-Reset for a single block, it will take less than 4.5us to perform the reset of all micro-mirrors in that block?

    > I thought a single/dual/qual/global reset takes always 4.5us.

    For a single block it is not relevant, since the 4.5 µs + settling time is the same.  If you are using several blocks you can "hide" some of the settling time while loading other blocks.  (i.e. phased), but the image is not displayed at the same time, much like a scrolling shutter on a cell phone camera.

    > But I can send bitframes from my computer to the EVM board (via USB) to project them with the DMD, right?

    > Can I also send bitframes to the EVM board (via USB) and store them in the memory board? To use after with the APPS_FPGA or with TI Software GUI.

    The USB does not load an entire binary pattern into the DMD at once.  For the DLP7000 it streams 1/2 of the DMD into a buffer in the FPGA and sends it to the DMD and then the second half.  If you have global reset on, it will then reset the image.  For single block it will send that block and reset it.

    For a DLP9500 it loads in 1/3 at a time. since the APPS_FPGA butter will not hold enough data for 1/2 of the binary pattern.

    If you want to use the memory slot on board, then you will have to write your own memory controller in the APPS_FPGA.

    The DLPC410 systems are very powerful, but require considerably more programming.  This is analogous to the difference between a regular processor and a RISC processor.  You have much more basic functions and have to build everything up from them, but is often faster since you don't waste computing power on unnecessary processing functions.

    Fizix

  • Thank you so much.

    My last question, to choose correctly one of the boards.

    "The USB does not load an entire binary pattern into the DMD at once.  For the DLP7000 it streams 1/2 of the DMD into a buffer in the FPGA and sends it to the DMD and then the second half.  If you have global reset on, it will then reset the image.  For single block it will send that block and reset it."

    Regarding the EVM LightCrafter 6500/9000, what happens when I send data via USB, HDMI or DisplayPort? Is it the same as the Discovery 4100? Could you describe it in brief words?

    Thank you.

    My best regards,

    Cédric Pereira

  • Hello Cédric,

    The DLPC900 EVMs have a fairly large buffer. However, they cannot stream USB images.  You can preload up to 400 binary patterns (or 50 8-bit grayscale images) into DDR memory and then display them.

    You can also pre-store them into parallel flash to automatically load on startup and display them.

    They can also take video input over HDMI or Display port.

    Fizix

  • Thank you so much for all help you gave-me.

    It was very useful!

    My best regards,

    Cédric Pereira

  • Hello again,

    Regarding the Discovery 4100 board:

    • I would like to program my own VHDL code. To do this, do I have to clear all the logic code in the FPGA? Do I have access to some functions? For example, do I have to program the logic code to receive data and send it to the DMD or are there some functions already programmed that I can access, from the logic code of TI?

    Thank you,

    Cédric Pereira

  • Hello Cédric,

    If you wish to write your own APPS_FPGA code, you will have to compile (build) your own code.  The code that interacts with the GUI is not a good starting point, and is not available.

    If you are not experienced with FPGA code, you may need to have a partner that is familiar with FPGA coding.

    Fizix