I need some example of the DLP compile functions.
The API manual say that,
"The Flash Compile APIs are used when converting a batchfile (produced by the LOGIC application SW)into binary data. This binary data can then be stored in the parallel (="user") flash for power-upconfiguration of the DLP Controller Chip. It should be noted, that normally a configuration batchfile sendscommands to the DLP Controller Chip across USB or SPI, but in this context, these comm packets can be’compiled’ into binary data, then stored in parallel flash and used to configure the Controller on power-up."
I understood compile function is used for sending batchfile or making BIN file.
but I dont understood where is stored BIN file with compile enable.
1. void DLP_FlashCompile_SetCommPacketCallback (void(*)(UINT8 *packetBuffer, UINT16 nBufBytes) pf)2. DLP_FlashCompile_FlushCommPacketBuffer ();
I need some example for use these compile APIs.
Help me plz ^^;
Hi Jeon,
The FlashCompile APIs intended for generating the binary equivalent of a batchfile. So instead of directly sending them to DLPC200 the binary generated commands can be stored in non-volatile memory or can be hardcoded into another embedded processor/controller memory for sending to DLPC200 at later point of time.
The BIN file needs to be created in your application, after you install the callback function via DLP_FlashCompile_SetCommPacketCallback API, whenever the command packet is ready it will call the 'callback function' where you need to create a binary file and start appending at the end everytime the callback function is called.
I have created VC project0246.BuildFlashImage.zip showing how these APIs can be used. Download and install DLPR200APP from TI website. This contatins the sample projects showing APIs usage. You can add the attached project in this solution then compile and run. Note that in the project i am reading a hardcoded 'status.bf' and the finally generated .bin file is dumped in the same directory where the .exe of project is generated. You can edit .c file as required.
Another note, you should understand difference in the 'user' flash generation via DLP LightCommander(TM) Control GUI. The binary file generated via GUI menu option 'Execute->Build Flash Image' does more functionality than the what is done with the Flash Compile APIs. Like from the GUI you can have 'N' number of Solutions in a Project, so when a build flash image option is called, it will basically generate a single binary file that includes ALL the Solutions (.bf files) configuration and then adds a 'flash header' at the top. In otherwords the GUI build flash image option uses flash compile APIs in addition there is hidden functionality that is used to build final 'user' flash image. At present there is no plan to expose how the parallel flash header and configuration information is added in the binary file.
So if the plan is to build 'User (a.k. parallel) flash image' we strognly suggest to use the DLP LightCommander(TM) GUI control 'Build Flash Image' option to get the parallel flash binary.
To parse a 'single' batchfile and get the binary file you can use flash comile APIs. At later point of time you can simple open this binary file and read 512 bytes at a time and send directly to DLPC200 by avoiding the parsing step.
Let me know if there are any question.
Regards,
Sanjeev
Hi Sanjeev,
Thank you for your answer.
The Compile example was very helpful. Can I request andother Example?
I want "Image Transfer APIs" and "Resister and LUT Read/Write APIs".
Jeon
The "Image Transfer APIs" are explained in the __SampleApps solution which is available on the TI network. http://www.ti.com/tool/dlpr200 and DLPR200APP component project name DownloadImagesDriverC.
The Register and LUT Read/Write APIs are straight forward and explained in http://www.ti.com/lit/an/dlpa024b/dlpa024b.pdf document. For this DLP_RegIO_WriteImageOrderLu API example is provided in the description. For the DLP_RegIO_WriteRegisterField (UINT16 addr, UINT32 value , UINT8 full_reg_LSB_bitnum0b, UINT8 full_reg_MSB_bitnum0b) the recommended way is to always use the data as 32bit content i.e., by referring to the generated batch file use this API as DLP_RegIO_WriteRegisterField (UINT16 addr, UINT32 value , UINT8 0, UINT8 31) .
Let me know if there anything not clear.
Regards,Sanjeev