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.

DLP7000: DLC4100

Part Number: DLP7000
Other Parts Discussed in Thread: DLP9500

Hi,

I want to display some pattern (512×512 pixel size) on DMD by DLP4100 with LabView . The global pattern rate should be more than 1 kHz. I am programming using D4100_usb.dll in LabVIEW. There are two approaches to control the DMD suggested by the PDF file numbered 039a. But both approaches cannot load the pattern to DMD successfully.

1. The first approach is “ActiveX API”, but I cannot load a matrix to the Loaddata function which are described as ”5.2.2 Int LoadData (UCHAR* RowData, long length)” . And the input cannot be a UCHAR array as 039a declared but a number as shown below. So how can I load a 2-D matrix or a UCHAR array to this LoadData fuction?

2. The second one is “DLL API”, and I have imported D4100_usb.dll successfully by the shared library of LabView. However, the LabView cannot control the DMD. What should I do to connect the DMD to LabView?

 

Thanks

 

 

Wang Xi

  • Wang Xi.

    Welcome to the E2E Support Forum!

    Please refer to this post for help with LabView setup.  

    The pattern you are trying to load must be the correct resolution for the DLP7000 (1024 x 768) col x row, thus the parameter 'long length' must be 1024, and the LoadData function can load up to 500 rows at a time. 

    Please let us know if you have any further questions. 

    regards,

    Gabriel

  • Dear Gabriel,

    Thank you for your response. Now, I cannot load data to DMD directly using the Loaddata function, so I load the .bin files to DMD aiming to reach a high speed. However, this approach can only be about 10Hz global pattern rate. The most import is that how I can get a 1kHz global pattern rate?

    Besides that, the LoadData function cannot work properly, and it returns a “-1” when I try to load a number as below. BUT the function should” Returns 1 if successful or 0 if unsuccessful” as the 039a.PDF described. So, the version of Discovery 4100 board may incompatible with the D4100_usb.dll library? If not, how can I upload the data to the LoadData function?

    One more thing,I don’t understand the sentence “the LoadData function can load up to 500 rows at a time”, because the 039a.PDF shows that ” This equates to 51.2 kb for the DLP7000” on section 5.2.2, and it is clearly that “51.2k÷1024=50”. The 500 is much more than 50. Can you show more details about that?

     

    Thank you very much!

    Wang Xi

  • Wang Xi,

    Please read through this post for information about achieving a higher pattern rate. I am not sure if it will be possible to achieve a 1kHz pattern rate with your current kit.

    You are correct about the LoadData row maximums, they should all be listed as 960kbits, 512kbits, and 640kbits. Thank you for bringing this to our attention. 

    I will ask my colleague with the most LabView experience to look into your issue with LoadData. In the meantime, I would recommend browsing the forum for similar issues: 827507, 830823. I think these threads may provide some insight into solving your problem. 

    Thank you for your patience.

    regards,

    Gabriel

  • Gabriel,

         Thank you for your reply. The suggestion(from issues: 827507830823) is very useful for me.

         And now, the LoadData function can work properly and returns "1", when I reconnect the DMD firmly.

        However, I am still confused with this " LoadData function" . I have tried to program as "827507" described, but unsuccessfully .

       And I have two questions:

       1. The 039a.pdf shows "RowData must be in a UCHAR array", but in the ActiveX API of LabView, the input of the LoadData function is a numerical value instead of a character. So how can I make a suitable input data for this function?

       2.  The  "827507" gives all the details, and one part of it cannot be understood as below:

       How can this code be programmed in the ActiveX API of LabView?

       And the data must be from the bin file only as explained in the code ?  If not, how I sent some numerical values or characters directly?

  • Hello Xang,

    Two clarifications.  The XGA DMD loads 384 rows per load.  It can load more, but cannot load the entire array in one load, therefore we decided to load 1/2 at a time.  (The DLP9500 loads 1/3 of the rows per load for this reason).

    Second, USB 1.1 simply does not have the bandwidth to reach 1 kHz pattern rate.  You will have to design an input system that can receive and load data at the rate you want.  If you are using the EVM, you can use the EXP connectors as input.  If you design your own board with a different processor on the front end, then you can design the input interface.

    Fizix

  • Hello Fizix,

        Thanks in advance. It seems that the data have to be load on the RAM of the FPGA board initially for a 1 kHz pattern rate. And an input interface is too complicated to design for us. Then, can you recommend some products of third parties,  which can display parterns at 1 kHz pattern rate  ?

    Regards,

    Wang Xi

  • Hello again Wang,

    Please start on this page and look at the offering for partners that have solutions for your chipset:

    https://www.ti.com/dlp-chip/advanced-light-control/optics-electronics/optics-electronics.html

    Fizix

  • Thank you again, these third party companies do have solutions.