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.

Uploading Application Code and Boot Information

Other Parts Discussed in Thread: TMS320C6743, PCM3060

Hello,

My name is Anthony Tricarichi, I am a student at Stony Brook University. I am working on a small personal design of my own and had a few questions about the TI DSP  chip I plan to use. I am used to producing designs built around PIC and AVR micro controllers but this is the first time I am using a TI part, of such specific functionality.

My design is  a homebrew DSP platform based around a "guitar pedal" platform, I would like to make the hardware open enough that a hobbyist can acquire my kit, and start developing DSP code for their pedal. At the heart of the device is a TMS320C6743 DSP processor and a PCM3060 stereo 24-bit 96KHZ audio codec. This, plus other peripherals (midi/sd card/usb) are meant to fit into a standard guitar pedal.

I hope that providing a very fast processor combined with a high quality codec should allow a hobbyist to implement almost any DSP design. So far i've done most of the schematic and layout but, I have a few problems I have to sort out before i move onto signal routing.

 My biggest problem right now is understanding how to upload application code to the processor and the exact function of the JTAG port. In the datasheet for the processor it mentions 16 boot pins that must be pulled up/down to get the desired boot parameters, it refers to appnote: sprab04g to get the exact parameters to get a certain boot option. This appnote focuses mostly on the OMAP-L1x7 series of processor (similar to mine but with an arm core tacked on). However, this document only described the function of 4 out my 16 boot pins. The purpose of the other 12 aren't mentioned in either document (or i have missed it).

My other question is, what is the exact function of JTAG other than in circuit debugging? I've often seen TI evaluation boards take advantage of JTAG emulators and even some using JTAG - USB adapters. In the reference appnote, majority of it describes using an AIS utility to program various parameters and even upload application code. It shows that using a PC and a USB - UART adapter you can use a TI windows application to program the chip and define various operating parameters.I currently have a FT232 USB - UART adapter on the board connected to UART port 2 (pins 7 and 8). Can this be used to program the chip? If so, what external boot resistors do i need?

I've often seen TI evaluation boards take advantage of JTAG emulators and even some using JTAG - USB adapters (again, from FTDI). What is the easiest way to program and store application code for this device? I haven't really been able to find a solid answer in the various technical documents and evaluation board schematics; it seems many different approaches are used.

The only other chip i used that had external non-volatile storage for application code was the Parallax propeller, programming was done with this chip through a USB - UART adapter and an externally connected EEPROM on a I2C bus. I'm hoping i can get similar functionality with my setup.

Sorry if this is a simple of mundane question, i've used TI hardware in my class, but i've never developed for a TI product before, I would like to verify my design before I begin prototyping .

I can provide schematics if need be, Thank you very much for your time! I cant wait to move forward with this project!

 -Anthony Tricarichi

  • Anthony,

    Welcome to the TI E2E forum. I hope you will find many good answers here and in the TI.com documents and in the TI Wiki Pages. Be sure to search those for helpful information and to browse for the questions others may have asked on similar topics.

    I am not sure what your two questions are, especially when compared with the subject of your post, "Uploading Application Code and Boot Information". The second question is stated "what is the exact function of JTAG...", but that would only be answered by selling you the JTAG design documentation which is not what you are looking for.

    The TI Wiki Pages that I mentioned above has a lot of material to help you along this learning path. For general information that you should start with, I recommend you search for "C6000 workshop" (no quotes, use the custom Google search). The C6000 Embedded Design Workshop is the best place to get an intro to the tools and capabilities, and also loading and running an application. It will also help us all get on the same page of terms and questions that you ask next.

    Another search for "Emulation" (no quotes, use the custom Google search) will get you some more in-depth material on JTAG emulation, starting on the Category:Emulation page..

    Also, AIS will get some good articles that may be more detailed than what you were looking for, but I am not real sure about that one way or another.

    The datasheet and the Bootloader Application Report are the best for learning about the available boot modes and how to use them, but the Wiki articles from the AIS search will do a lot to broaden that information.

    Regards,
    RandyP

  • Thank you for your response, let me see if i can reword my question(s), 

    On a typical micro controller (say an AVR). The micro has on board flash where the program resides, you use a programmer to load you .hex into program memory and then on boot, the micro does whatever it has to to load/read the application code. 

    With the TMS320C6743 obviously there is no onboard flash and therefore it must load the program/app code from some external source, from my understanding, there are 4 bot pins that must be externally tied high/low to get the processor to load application code from a specific external source. Is this correct?  

    Lets assume this external source is an EEPROM chip connected to the i2C bus assigned address 0, one of the boot modes is through the i2c bus, therefore setting the appropriate boot pins will load application code from this external EEPROM into program ram where it begins execution. Is this correct?

    Now, one of my major questions is how, the application code gets from your PC to the EEPROM. Is this done through a flash programmer, JTAG, AIS?

    One chip I use, that also needs external flash, is the Parallax Propeller. By connecting the micro from it's UART port to a PC using a USB - UART converter, you can select to either program the RAM directly, and run your program, or you can choose to upload your program to an externally connected EEPROM. Part of the boot order is looking for an external EEPROM, if it finds one, it will load application code form there into RAM. In this case, no programmer is needed as programming the EEPROM is done though the parallax propeller. From what i can tell, the AIS utility functions in a similar way. Is this correct?

    Now, if programming CAN be done through the AIS utility to an externally connected EEPROM using JUST a usb - uart connection. What function does JTAG perform? In this case, is it strictly for debugging and emulation, or, am i missing something and JTAG is essential for programming?  

    I hope this makes my questions a little more clear. I've been looking around online, but these questions i haven't found an answer to, and its mostly due to my lack of experience with this type of chip. 

    I will defiantly check out the resources you provided!

    Thank you again for your time and helping me find a solution. 

    -Anthony Tricarichi

    www.mcuplace.com

  • Anthony,

    Anthony Tricarichi said:
    I will defiantly check out the resources you provided!

    This is the right way to go. This is why we put the training online and wrote all the articles, so you will have access to all of this information.

    And I will defiantly recommend that you purchase a C6748 DSP Experimenter Kit so you can learn what you will be able to do in terms of all your questions, plus do a mock-up of your project rather than building it before finding out it needs to be done differently. It will be well worth the small investment.

    Regards,
    RandyP