DLPLCRC410EVM: DLL API problems with DLPLCRC410EVM

Part Number: DLPLCRC410EVM
Other Parts Discussed in Thread: DLPC410, DLPLCR70EVM

Tool/software:

Hi,

I've written a Python script using the DLP 4100 DLL API to upload a custom .bin file to my DLPLCRC410EVM board by calling the program_fpga method. However, the device returns a "0", which indicates that the upload was not successful. I've trying diagnose the cause of this issue. This happens even when I try to upload the default D4100_GUI_FPGA.bin file, which is the .bin file that the GUI is using. The Discover 41000 Explorer GUI is working normally, so this seems to be an issue with my code or how I've set up my dependencies.

Calling GetNumDev returns "1", which shows that the device is detected (otherwise it would return "-1"), but the methods for checking information regarding the USB connection (GetFirmwareRev and GetDriverRev) both return "-1".

I've also noticed that some methods (e.g. changing the TPGE status) can be only successfully called when the Discovery 4100 Explorer GUI is opened. The DLL version is 2.1, the DLPC410 version is 7, and the APPSFPGA code version is 13.3.2.

  • Hello Pete,

    Please let me know if this device has SPI PROM or is it one of the slightly older boards that has a Xilinx XCF16 PROM (48 uBGA)?

    If it is the one with the SPI prom then using USB to load a bit file over USB will NOT work.

    Fizix

  • This what shows up when I run a Boundary Scan in ISE iMPACT with the device connected:

    If it's not possible to upload via USB through using the SPI PROM file, would it be possible to receive a copy of the XCF16 PROM file? 

  • Hello again Pete,

    This is showing the SPI PROM.  You should be able to use the Impact JTAG interface to load your custom *.bit file to the APPS_FPGA.

    Once you have  it working the way you want, you should be able to build an MCS file to target your PROM and load it.

    NOTE:  I very strongly advise using the Impact Tool to read and save the preloaded content of the APPS_FPGA for later reference.

    The reason it will not use the USB pathway is that when SPI was implemented, the configuration clock source was changed to be the FPGA rather than the XCF16 PROM.  Since the SPI PROM cannot be the source.

    However using the USB interface to load a bin file was done by having the Cypress chip act as the clock source to send the *.bin configuration to the FPGA.

    Fizix

  • Hi,

    Thank you so much for your help! I'm not familiar with how to set up the PROM, so I just wanted to check if I'm configuring the MCS file correctly. After selecting "Create PROM File" (see screenshot below), what do I select for Storage Device Type? Should I select Xilinx Flash/PROM as the Storage Device Type and then xcf16p for Device (bits)? Will doing so allow me to use the USB pathway later on? Or should I use SPI or BPI Flash? And if so, what should I set for Storage Device (bits)?

    And in Step 3, are the default settings fine or do I need to change anything? 

  • Hello Peter,

    Do you have access to the MySecure area for this?  There are instructions there.  You will need to use SPI/BPI.  For device bits that will depend on the particular PROM you are using.  If yours is not there sometimes you can choose something that has the same parameters.

    Fizix

  • I don't have access to MySecure. Would it be possible to message me with the documentation? And for the Storage Device (Bytes) setting using SPI Flash (with Configure Single FPGA?), how do I determine which one is necessary for my PROM? Thank you.

  • Hi Pete,

    Just filling in for Fizix over the weekend.

    For mySecure, all you will need to do is message Fizix your email address associated with your TI account.

    He can then use that email to grant you access to a TI.com private link that you can open for around 1000 days' time. TI is unfortunately unable to send these documents out to customers without the mysecure link, which requires your confirmation to view the material.

    mySecure access normally takes up to 30 minutes from the time the TI user grants access to the time the user is able to access the page.

    Regards,
    Michael Ly

  • Please accept my friend request so I can send you a private message.

  • Hi,

    I accepted your request earlier this week and sent you a message. 

  • Good morning

    Fizix is currently out of office and will be returning on July 2nd (this upcoming Wednesday). 

    Once he is back in the office he should be able to respond back to your private message. 

    Thank you and Best Regards, 

    Tristan Bottone

  • Peter,

    I have sent you a direct email.  Please reply back to it, so that I know the connection is working.

    Fizix

  • Hi,

    I have been following along with the instructions in the PDF. When I try programming the apps FPGA (LX50), I'm getting a "Program Failed" error message with the console reporting that "'2': Errors encountered while loading microprogram. INFO:iMPACT - Failed to query common flash interface." I'm getting the same error message regardless of which MCS/*.bit file that I use. I also get the "Verify Failed" error message when trying to verify the program.

    Best,

    Peter 

  • Hello Peter,

    I assume you are defining the PROM as a SPI PROM.  Does the LX30 program fine?

    Fizix

  • Yes, I'm defining the PROM as a SPI PROM. For the controller FPGA (LX30), I don't believe I have the bit/mcs file to test whether I can program the LX30. Is it possible to request that from TI? In the tutorial, it mentions a ddc4100.bit/dlp010c_ddc410_64Mb.mcs file for the LX30 files. The mySecure portal only included the ddc4100_Apps-FPGA.bit/ddc4100_Apps-FPGA.mcs file, which are for the LX50 (apps FPGA).

    Also, are there any hardware changes that I need to make before programming the FPGA? I'm currently using a Xilinx Platform Cable USB II connected via JTAG to the board with the DMD module unconnected. I bought the DLPLCRC410EVM board directly from TI and have made no modifications to the board. Is there anything that needs to be soldered on or any dip switches that need to be set before programming the FPGA? 

  • Hello again Peter,

    The MySecure area also has the *.mcs file for the DLPC410 controller (LX30).

    If you are using an older board that had the XCF16 PROM then the mode pins will need to be changed to program from the SPI PROM.  If the board is even older, then there is no pad and traces for the SPI PROM and a newer DLPCLCRC410EVM would need to be purchased to use a SPI prom with the Controller LX30 FPGA.

    Fizix

  • Thank you! I was able to find the LX30 files. When I attempt to program the DLPC410, I'm getting an error message: "INFO:iMPACT - SPI Device not found. INFO:iMPACT:2488 - The operation did not complete successfully. INFO:iMPACT - '4': Flash was not programmed successfully." When I reach the "Select Attached SPI/BPI" window, which PROM should I be selecting for the DLPLCRC410EVM board (see attached screenshot below)? I've tried using S25FL064P and S25FL032P so far (which were mentioned in the guide), but should I be using one of the other options? Where is the flash memory located on the DLPLCRC410EVM board so I can verify this directly?


  • Hello again Pete,

    It depends on the SPI PROM you are using.  Did you try the part of the instructions that turns off the ID check for the PROM?

    You will need to look at the particular specifications of the PROM you are using and find a supported PROM that has equivalent parameters.  I know that it is getting harder since older/smaller PROMs are becoming obsolete.

    Fizix

  • Yes, I tried turning off the ID check for the PROM by changing the environment variables. The programming of the FPGA does initialize, but it eventually errors out with a "Device has exceeded the allocated time" message. The D2 LED indicator is now red, which I believe indicates that the PROM has been corrupted. Furthermore, when I try connecting the DLPLCR70EVM to the DLPLCRC410EVM, the DMD is no longer detected (previously this was working fine). What should my next step be?

    Also, I have a question as to why I see two xcf16p devices appearing in the TDI chain after running the boundary scan? In the manual, it seems that only the xc5vlx50/xc5vlx30 are shown in the TDI chain?

  • Hello Pete,

    By default only the LX50 and it's PROM is in the chain.  If you add the LX30 (DLPC410) to the chain it shows up with it's PROM also.

    It sounds like the LX50 PROM did not program correctly.  Try connecting with JTAG again and use the file for the APPS_FPGA in the MySecure site.

    Fizix

  • Hi,

    I've reconnected the JTAG and tried reprogramming the LX50 with the ddc4100_Apps-FPGA.bit file, following the instructions in the manual. Programming the flash terminates at around 9% with the error message "ERROR:iMPACT:2525 - '2': Device has exceeded the allocated time." I've also tried generating my own .mcs file using the .bit file, but get the same error. I've attached a screenshot of the console below.

    I also get an "exceeded the allocated time" error message during the step when it was erasing the device. 

  • Pete,

    Which version of the Impact tool are you using and what platform cable are you using?  This sounds like an issue with a driver or software version.

    I also notice there is an item labeled "FLASH" attached to the LX50.  This is not the usual configuration of a DLPLCRC410EVM board.  I have never seen that before.

    Fizix

  • The Impact version I'm using is part of ISE 14.7, which I'm running on a virtual machine. For the platform cable, I'm using a Xilinx Platform Cable USB II (manufacturer #HW-USB-II-G). I'm surprised to hear that the box label "FLASH" attached to the LX50 is unexpected behavior. On page 13 of the "Programming Instructions DLPC410 EVM SPI PROM" manual, it instructs right clicking on the item labeled "FLASH" and then selecting Program. Is this the wrong procedure for the DLPLCRC410EVM board?

  • Pete,

    If your picture is correct, you do not have SPI PROMs but two XCF15 secure PROMs.  Do not use that box.  It is only if you have SPI PROMs on the board.

    I also suggest 14.1 if you get no joy with 14.7.  We have had mixed results with 14.7.

    Fizix