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.

TMS320VC5501

Other Parts Discussed in Thread: TMS320VC5501

If I wanted to boot the 5501 via the SPI EEPROM Boot Mode; is there an application that would allow me to actually program the SPI EEPROM with the run-time code through the 5501? I don't want to program the EEPROM before mounting it to the board; and I don't want to add isolation circuitry to isolate the EEPROM if I need to upgrade my code. I'm planning to incorporate a JTAG interface and I am hoping there is a way to use the JTAG port to get my application code into the EEPROM.

  • When the 5501 is powered up and held in reset those pins will act as inputs.  That should allow you to externally drive the pins without the need for isolation circuitry, i.e. just hold the DSP in reset while you drive the pins to program the EEPROM.

    If you wanted to program the EEPROM through the JTAG you would need to write a small DSP utility to do it.  That is, you would load your utility over JTAG and run it.  The utility would then erase and write the EEPROM with your program.

    If you want your product to be field-upgradeable then you'll need a two-layer boot sequence.  The first layer would be a bootloader utility.  It would be capable of erasing the main application and reprogramming a new one, or else it could simply load the application that you've already loaded into RAM.

    Brad

  • Thank you for your response. I have a follow up question.

    If I interpreted your statements correctly, if I want to be field-upgradeable, I would

    1. Append my application code to the end of some homemade EEPROM Programming Utility Code,
    2. Load the one file (i.e. Homemade EEPROM Programming Utility Code with my embedded application code) into RAM using the JTAG interface,
    3. Have the Homemade EEPROM Programming Utility Code start at the correct offset in RAM that my application code starts at and sequentially program my application code into the EEPROM

    Is that right?

     

    If so, do you have any sample code for the Homemade EEPROM Programming Utility - yes would be a great answer for us, cause I would think this would be a common request.

  • gene said:

    Thank you for your response. I have a follow up question.

    If I interpreted your statements correctly, if I want to be field-upgradeable,

    How do you want to update the unit in the field?  UART?

    Make sure you read the 5501/5502 Bootloader App Note or else none of this conversation will make sense.

    FYI, if you are able to utilize the UART boot mode as described by that app note (e.g. by asserting the boot pins different when you want to update) then you could load code over the UART that updates the EEPROM with the new image.  This would eliminate the need for sectioning off a piece of your EEPROM to serve as a field update utility.

    gene said:

    I would

    1. Append my application code to the end of some homemade EEPROM Programming Utility Code,
    2. Load the one file (i.e. Homemade EEPROM Programming Utility Code with my embedded application code) into RAM using the JTAG interface,
    3. Have the Homemade EEPROM Programming Utility Code start at the correct offset in RAM that my application code starts at and sequentially program my application code into the EEPROM

    Is that right?

    When booting from the EEPROM the bootloader in the 5501 ROM is expecting your code to be formatted into a boot table.  The hex conversion utility takes your out file and coverts it to that format.  So you would take this "hex file" and burn it into the flash.  If you can make use of the UART bootmode for field updates then that will work great.  Otherwise you'll need to burn 2 things into flash:  an update utility and an application.

    gene said:

    If so, do you have any sample code for the Homemade EEPROM Programming Utility - yes would be a great answer for us, cause I would think this would be a common request.

    Sorry I don't have any sample code for this.  I agree it would be useful to others as well.  I think that would be a great topic for our wiki.  I'd have to look at what memory is on the various EVMs (5502 EVM, 5509A DSK) to see if one of those could serve as a platform for writing this kind of code.  I'm swamped right now so I can't even consider that sort of thing for probably a month.  At a minimum I can continue to answer your questions.

  • Thank you Brad,

    I need a EEPROM boot in the field with my real-time application.

    If I used the UART like you suggest for my field upgrade, would I:

    1. Write my "real-time application" code, and use the HEX55.exe conversion utility to generate a "real-time application" boot table.
    2. Generate an EEPROM Programming Utility which is written to read data over the UART and program the EEPROM with the data it received over the UART,
    3. Convert my "EEPROM Programming Utility" to a boot table using the HEX55.exe conversion utility.
    4. Select the UART boot loading pin settings on my DSP, reset the DSP,
    5. Load the "EEPROM Programming Utility" boot table (from step 3 above) into the DSP via the UART with something like Windows Hyperterminal
    6. When that is up and running in the DSP, then present my "real-time application" boot table (from step 1 above) to the UART with something like Windows Hyperterminal, and
    7. my "EEPROM Programming Utility" should program my EEPROM with the "real-time application" boot table it reads in on the UART,
    8. Remove power from the board, select the DSP jumpers for a SPI EEPROM Boot Loader
    9. Power up the DSP and it should Boot from the SPI EEPROM with my "real-time application" code.

    If this sequence is messed up, would you please identify which step(s) needs to change.

     

    Thank you.

    Gene

  • Yes, that's exactly it!

  • Thank you Brad for your patience and knowledge.

     

    Now I'm so happy.............please pass the Klennex box........

  • Brad, What SPI mode is used by the TMS320VC5501 when boot loading in the SPI EEPROM mode?

  • Sorry, I don't understand what you're asking.  Is there something that I can clarify about Section 2.3.5 "SPI EEPROM Boot Mode" in the 5501 Bootloader app note?