I have been programming the DLP LC that we have, using LogicPD's Light Commander Control Software (LLCCS) and also using APIs provided by TI.
1. I was able to load and display desired no. of images at desired frame rates using both LLCCS and APIs. But the problem is that, once the LED intensities (of RGB)are set, these settings remains the same for all these images. But i want different LEDs to be ON for different images and also different LED intensity levels for different images.
I tried calling the function (APIs) that sets these intensity levels of the three LEDs in an infinite loop, but the rate was too low.(Image frame rate desired is in the range of 500 fps but the rate of LED intensity variation that was possible by this method was in the range of 20 fps, depending upon processor's speed)
So, how can i have different LED intensity levels for different images and display these images at desired frame rate(around 500fps)?
2. i think to get such high rate of intensity changes, the only solution is to program the flash memory because serial comm can never be that fast. but we can load only the binary files created by LLCCS onto the flash memory and LLCCS doesnt convert the batch file that i have written into binary files.
So, how to program the flash memory to achieve my objective? is there any memory map for the flash memory present inside DLP LC? i thought of loading 3 to 4 batch files(converted into a binary file using LLCCS) on to flash memory and run them in a loop.. but can i do this??
i request you to please help me on this regard.
Shashanka(Student of Temkar Ruckmongathan)
Welcome to DLP&MEMS forum.
Your response to the questions below.
1. The support for enabling different LEDs for different images and applying different intensity for different images is not there in the system. However, we would like to note such requests and will use it while developing future platforms.
2. As I mentioned in (1) at 500Hz the LED driver used in the system not designed for accepting current intensity changes and also the system has no mechanism in place to synchronise the LED intensity update to image displayed. So even if you create a binary and program the flash it will not help. At present we don't have plans to expose the flash configuration map information.
Thank you for responding for my questions. It was helpful.
I had asked the same question to LogicPD's tech support team and this is what they replied,
"Depending on timing, you could use the API to switch between two or more sequences stored in flash with different patterns and different LED intensity settings."
I am not sure how to achieve this(ie, how to store more than one sequence in flash memory). Is this possible? If so, Can you please throw some light on this matter??
What they are mentioning is basically asking you to build one "Project" with several 'Solution' in it. And each solution will contain a specific LED selection and LED intensity configuration information.
For example, let us say there are 10 images and you are interested to select combination of LEDs and at a particular intensity. So this requires building 10 solutions in a project.
Upon building the "Project" (Tool menu Execute->BuildFlashImage in the GUI) it will generate single user flash binary under the project along with xml map. XML has map information of the binary file built. Look for <Record> with "soluton" name, something like this
For each solution note down the 'Start Adress'. Load the binary in the LightCommander(TM) it comes up with the default "solution" then call this API to load
the configuration using DLP_RegIO_InitFromParallelFlashOffset API.
I see one issue with this approach though, you will not be able to maintain the 500fps rate b/w the images. There will over head time of loading the solution.
Thank you for responding so soon. I ll definitely try this solution.
So, if my "Project" has many "Solution"s and then i "BuildFlashImage", and "ProgramFlash" this binary file, then the GUI creates binary files to all these "solution"s and loads them on to the Flash memory with each solution having its own starting address??
and once i load this binary file to Flash memory, will the processor display all these solutions in sequential manner? or should i use APIs to write a program that will ask the processor to execute the contents in the flash memory form the starting address specified??
The processor will NOT display all these solutions in sequential manner.You will have to provide the 'StartAdress' information to the DLPC200 then it will go to that adress and loads the configuration.
The "StartAddress" of each solution which is stored in the flash you will get from XML file. Then just call DLP_RegIO_InitFromParallelFlashOffset API to load the configuration.
Thank you again for responding. I ll try this solution and let you know what happened. (Previous Question was redundant, but i wanted to be sure.) And yes, Frame rate ll be a problem. But i ll try never the less.
Thanks a lot for all your help.
All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.
TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs andembedded processors, along with software, tools and the industry’s largest sales/support staff.