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.

DLPC350 Programming

Other Parts Discussed in Thread: DLPC350, DLPR350, DLP4500NIR

I'm making an IR laser beam-width adjustment system and I'm trying to make my own board for DLPC350 and DLP4500NIRFQE.

1) Is using urJTAG the only way to load the firmware into an empty flash memory using an USB so far?

2) Can I store my patterns and load them from the flash memory? because for simplicity I don't want to use a host processor to control the DLPC. I only want to program it straight from my PC through an USB.

3) If I want the DLPC to repeat a series of patterns over and over again. How can that be done? would I need a host processor or can itself be programmed or run a program to do that? Say a series of patterns might be I want the DMD to turn on each 10 columns consecutively and turn off the previous 10 columns while turning on the next 10 columns each time.  

  • Hello dc,

    Welcome to the LightCrafter 4500 development area.  I am going to answer your questions the way they were received to give you as much clarity for each question that I can.

     

    1) The DLPC350 Controller requires firmware to operate and initialize the USB port.  If the flash memory has never been programmed with the DLPR350 firmware found here: http://www.ti.com/tool/dlpr350 then you have 2 methods to get the firmware onto the memory: JTAG boundary scan port or an EEPROM programmer of your choice.  The JTAG flash programming utility found on the DLPC350 page is not used through the USB port.  The fastest method to program the firmware is with an EEPROM programmer, but this can't be done with the memory module inserted.

     

    2) Yes you can store up to 64 24-bit images in the flash memory and retrieve them.  Keep in mind that each bitplane can be retrieved and displayed individually from the 24-bit images.  This means you get to upload and utilize 1536 (64x24) 1140x912 1-bit patterns.  No host processor is necessary to control the DLPC350 once it is programmed through your PC.

     

    3) The DLPC350 is capable of displaying a sequence of patterns of your choosing on boot up.  In order to do this, the patterns should be loaded into flash memory along with a solution file that can be created through the LightCrafter 4500 GUI found on this page: http://www.ti.com/tool/dlplcr4500evm

    It sounds like your solution will use the Pattern Sequence mode of operation to control the DMD.  The GUI will allow you to create 24-bit images out of 1-bit images and solution files that contain your desired settings and pattern sequences.  You can then insert those images and solution file into your own firmware file, program it to the flash memory, and let the DLPC350 run without a host processor.  The only time a host PC would be necessary is to modify your sequence in any way.

     

    Threads on the creation of images from patterns, and the creation of solution files, can be found in this forum.  Good luck.

     

  • Hi Rob

    Thanks for your help.

    I think the EEPROM programmer would suit my need since it's once off (it'll only be needed when the flash is empty) and after that I can program the flash through USB.

    1) I know that not all flash chips that work for DLPC350 are supported by the lightcrafter PC software. The only flash I know it supports is the M29W128GL70N6E from 4500 lightcrafter reference design. Can you give me an idea on which flash the software supports?

    Here is a list of the supported flash for the MiniPro TL866 Universal programmer I found (http://www.autoelectric.cn/minipro/MiniProSupportList.txt). Can you pick a few that are supported by the lightcrafter PC software? It seems the programmer doesn't support 128Mb but they do support some 64Mb but it is more than enough for my need since I only just have a few 1 bit patterns.

    2) Is there any other EEPROM programmer you would recommend me to use with a corresponding flash? 

    3) So the pattern sequence mode can repeat a set of patterns forever? Say if I just have 10 patterns and I want it to keep repeating one pattern after another in sequence and goes back to the first pattern after the 10th. 

    4) I'm also looking to use one of the GPIO pin to send a constant PWM for pulsing my IR laser while repeating the set of patterns on DMD. Is it achievable without the use of a host processor?

  • dc,

     

    The EEPROM programmer is much faster for the first load by far.  Keep the JTAG flash programmer in mind though if your flash memory is on the board but your firmware becomes corrupted.  This could happen during programming via the GUI if there is a power interruption or the USB is disconnected during the process.

     

    1) There are 2 memory modules supported by the LightCrafter 4500 GUI: M29W128GL70N6E, and S29GL032A.  You can see these two modules in the "FlashDeviceParameters.txt" file in the GUI installation path.

     

    With a little work, you could insert your own device parameters for flash memory you wish to try out.  From the file you can see that you'd need to identify the device manufacturer ID and the device ID, your EEPROM programmer should be able to read this for you.  You'd also need to determine the start addresses for each sector.

     

    There are 3 constraints on your flash memory selection: minimum size, maximum addressable size, and timing.  The DLPR350 firmware is about 6 MB when bundled with 14 24-bit images containing 336 patterns.  I would not recommend selecting a flash memory unit below 10 MB so that the distributed firmware can be loaded to verify your DLPC350 functions properly.  The maximum addressable size of a single flash memory unit attached to the DLPC350 is 128 Mb.  There are 2 chip select lines and this yields a total permissible size of 512 Mb or 64 MB on 4 discrete memory pieces.  The last constraint is timing.  As it is programmed, the DLPC350 can interact with flash memory with access times of 100 ns or less.  Memory selection is up to you if you meet these 3 criteria and modify the parameter file accordingly.

     

    2) You should be fine with any EEPROM programmer that can handle the memory module of your choice.  You'll have to look through your list of supported memory.

     

    3) Yes, the pattern sequence can be repeated indefinitely.  On boot up, it will take a moment to initialize the DLPC350 and during that time the image loaded in index 0 will display.  You can choose to advance the patterns via internal clock or external trigger.  Read about that in the DLPC350 Programmer's Guide here: http://www.ti.com/lit/pdf/dlpu010

     

    4) At this time it is not possible to set up PWM in the solution file in order to automatically configure the GPIO pins to PWM mode on boot up.  Some of the GPIO pins can be configured to output a PWM signal.  You can read about setting them up in section 2.3.8 GPIO Control in the DLPC350 Programmer's Guide. 

  • Hi Rob

    I've just noticed that the DLP LightCrafter 4500 JTAG Flash Programmer software has been released recently.

    Can I just use that to program the flash on my own board?

    I've read about DLP350 JTAG Flash programming here - http://unaligned.org/dlpc350/

    It talks about that ICTSEN must be connected with TRSTZ to ground through a 3.3k resistor to prevent DLPC from controlling the flash pins but I don't see that in the 4500 lightcrafter reference design.

    Do I still need to connect ICTSEN with TRSTZ to ground through a 3.3k resistor if I use UM232H USB-to-serial adapter and DLP LightCrafter 4500 JTAG Flash Programmer software, as outlined in the 4500 flash programming guide, to program my own board?

  • Hi again dc,

     

    Yes, the JTAG Flash Programming tool has been released and you can use it to program the parallel flash on your board.  It requires flash memory module identification in the same way that the LightCrafter 4500 GUI does.  Look in the install path for the "FlashDeviceParameters.txt" file to see what devices already exist in there.

     

    To answer your question simply about the pull down resistor tied to ICTSEN and TRSTZ, yes.  These two lines should be tied together and pulled down using a resistor.

     

    The reason you don't see the pull down on TRSTZ in the reference design schematic is that TRSTZ is pulled down using another IC.  ICTSEN isn't connected to TRSTZ because no other devices exist with the DLPC350 and the tri-state for the other lines isn't necessary.  For a generic design, something other than the specific LCr 4500, ICTSEN and TRSTZ should be tied together.

  • Hi Rob

    1) Just out of curiosity, Can I actually use other micro-controller instead of DLPC350 to control each mirror in DLP4500NIR?

    Since I'm only going to do simple tasks such as setting the beam-width of a laser beam through the DMD and pattern sequencing. There is no dynamic control, so just static, everything will be set in the beginning and fixed throughout the usage. 

    The DLPC350 has more functions that I'll never use for my project.

    If so, is there a programmer guide or any helpful material on this?

    2) Furthermore, is the source code of DLPC350's firmware open sourced? If so, where can I get its source code?

  • Hi dc,

    1)  No, the interface between the DLPC350 and the DMDs it controls is not released.  This is to make sure that the DMDs operate efficiently and provide the best performance possible, while staying within operating conditions.

     

    2) No again, the DLPC350 firmware source is not open source.  There is an API for interfacing with DLPC350 through USB.  You can find that API in the LightCrafter 4500 GUI install directory in a .zip file called "DLPLCR4500_v***_SourceFiles.zip".

     

    Really the combination of DMD and Controller should be seen as a complete chipset/sub-system that can't be separated but can be interfaced with.

     

     

  • Dear Rob,

    you wrote "1) There are 2 memory modules supported by the LightCrafter 4500 GUI: M29W128GL70N6E, and S29GL032A.  You can see these two modules in the "FlashDeviceParameters.txt" file in the GUI installation path."

    but M29W128 is not listed in the "FlashDeviceParameters.txt". Do you have a new version, which include the parameters for M29W128.

    Regards,

    Farzad

  • Hi Farzad,

     

    You can find more modules in the "FlashDeviceParameters_all.txt" file in the LightCrafter 4500 2.0 GUI source files.

     

    Grab the GUI from this location: http://www.ti.com/dlplcr4500gui-v2

     

    Install the GUI where you desire, then look in this path for the above named file: ../LightCrafter4500_source/GUI/Flash/

     

    I found the M29W128GL in there.

     

    Regards,

  • Hi, Rob, 

    1) The DLPC350 Controller requires firmware to operate and initialize the USB port.  If the flash memory has never been programmed with the DLPR350 firmware found here: http://www.ti.com/tool/dlpr350 then you have 2 methods to get the firmware onto the memory: JTAG boundary scan port or an EEPROM programmer of your choice.  The JTAG flash programming utility found on the DLPC350 page is not used through the USB port.  The fastest method to program the firmware is with an EEPROM programmer, but this can't be done with the memory module inserted.

     

         I find firmware DLPR350PROM from this linkhttp://www.ti.com/tool/dlpr350   . which can be write into the controller chip DLPC350 through USB cable.

        But where can I find "JTAG flash programming utility" ?   I need a method to programmer the empty flash.

     

       We are designning our board with one flash M29DW128GL, and we are considering the programming interface. There is a question, in ref design of 0.45 DLP chipset, there are two jtag interface, "MULTI - ICE JTAG I/F", and "JTAG BOUNDARY SCAN", Is the former not needed for me? and the only needed programmer line is only four(TDI, TDO, TCK, TMS )?

     

      Great Thanks!

  • Hi Bob,
    Could you help me with my problem?
    e2e.ti.com/.../501125
    In NIRscan EVM, LCr 4500, ICTSEN and TRSTZ should be tied together? Right?
    Thank u!