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.

TMS320 C672x questions from a beginner.

Other Parts Discussed in Thread: OMAP-L138, OMAP-L137

Hello!
I am a beginner developer.
Though I plan to be engaged in it further, it is my first experience in the field. Now i work with TMS320 C672x (sprs370e)
I read many appnotes and other useful info, but i don't understand some things. I am unsure about right understanding some things.
My problem that the information is devoted either to hardware, or software, instead of how to provide interaction of one with another.
There are information about hardware and configuration registers in SPRA/SPRU/SPRS. There are information about CCS, debugging and the same things in CCS help.
I find /* do data I/O */  in the example of program in CCS tutorial instead data I/O command.

There is a big scheme. It is needed to create a new part of the scheme - digital signal processing block. My target - to connect AVR32 as a master with C6726B as a slave, run C6726B, to receive some data and transmit the results of calculations to AVR32.

I have a PCB, an algorithm for data processing. But i don't know how to force them to work together.

I ask some question right below. If you know something, or see mistake in my statement or can give useful advice, answer me, please.

1) How to start my program?
I cannot write
program in DSP internal RAM and therefore DSP cannot load it from internal ROM. DSP can load program only from external ROM/devices.
I think, that i can use SPI Slave boot mode (
sprs370e,SPRU718B,SPRAA69D). I have to place *.OUT file in AVR memory with AVR program. After reset AVR setup boot pin in needed condition, initiate a session and send *.OUT as it defined in SPRAA69D. After this DSP load received program and started this program. Is this statement correct?

2) How to receive data?

I think that McASP (spru878b) is the best choice for it. I read that McASP have DMA and good speed.
But i cannot find, how to work with
McASP from program. I have to configurate McASP by setup registers. How to work with McASP after this?
As I understand,
McASP can receive data using DMA without program participation. Or not? How to make so that in array АААA the received data block contained? Where i can read about it?

3) How to transmit calculation data to master?

I use SPI (SPRU718B) for this. After start i have to configurate SPI registers. Problem is the same as problem in question 2. I have variable BBBB. How to send it to master?

I know that it is simple problems, but I have not found till now the information on it. If you think, that there are documents, where i can find my problem solution, write here, where i can find it, please.

  • Since you already have a PCB, you will be doing your work with the AVR32 + C6726B. But in the future, you may want to consider moving to the OMAP-L137 or OMAP-L138, either of which give you BOTH an ARM9 core AND a C674x floating-point DSP core, both on one chip.

    The main place you should start for your study of the C6726B and how to use it is the C6726B Product Folder. You have probably seen many of these documents already, but let me point to a few items in particular.

    The datasheet has the details on available boot modes and the list of peripherals available. From the hardware perspective, this is the primary place to look, but for software it is a summary of the components you will be able to use.

    The Bootloader App Note will help you understand the ways you can start your program from reset.

    The dMAX User's Guide will explain the capabilities of the DMA engine in the C6726B. This powerful tool allows the DSP to continue operating while the dMAX is moving data that has been processed or new data to be processed. Using dMAX instead of CPU copies will give you a lot more CPU MIPS available for processing, if needed. This document includes examples to show you how to program it to do different types of transfers.

    Under Tools & Software, be sure to download both the System Libraries and the Chip Support Library. You will find example programs here. In the CSL folders, there is an examples folder that includes examples for using the dMAX, McASP, and other peripherals of the C672x family. This may be the closest to what you are ultimately looking for as starter code.

    MegaDocent said:
    1) How to start my program?

    The datasheet lists the available boot modes and the app note above explains how to make use of each one. Since your application has a host processor to drive the DSP as a co-processor, it is very common to use the UHPI for bootloading the DSP and also for communicating by writing data to and reading data from the DSP. The UHPI port is a slave port on the DSP - it cannot push or pull data through the port but relies on the host processor to supply data and to read the results when they are ready.

    The SPI boot will also work, but there are speed advantages to using the UHPI port for communications. You can also boot from a Flash memory, if that would be convenient.

    MegaDocent said:
    2) How to receive data?

    Many of the peripherals can be used for this. If the AVR32 has a serial port that is compatible with the McASP, then that could work well for you. The dMAX can be setup to take care of all data transfers - the DSP just programs the dMAX and then the dMAX handles the data transfers until it is ready to send an interrupt to the DSP for it to do something new.

    And I would again recommend the UHPI for this purpose. It might be more complicated, or could end up being easier to use.

    MegaDocent said:
    3) How to transmit calculation data to master?

    Exactly as you have stated, the problem is the same as for question 2. The peripheral's User's Guide explains how the peripheral works, and there may be a CSL example to show you how to get data to move across the interface.

    You can use GPIO signals to communicate with the AVR32 to tell it when data is ready. In response, it could pull results across over the UHPI. I keep going back to this, because it is a good and intended use for the UHPI.

  • Thank you for your answer.

    The development started a some months ago. I didn't know about new DSP. Probably i will use new DSP in my next development.

    1) I already have the datasheet. I read datasheets and appnotes, i mentioned sprs370e,SPRU718B,SPRAA69D in my 1st message.
    UHPI is available only on the C6727B. But C6727B has 256-Terminal PBGA (GDH) / 256-Terminal Green PBGA (ZDH) package.
    I need RFP package and therefore use C6726B with 144-Pin PowerPAD. There is not UHPI on this chip. It's not a problem, i think. As i wrote, i use SPI to connect master-slave.

    I want to know whether I understand what is written in datasheet and what i have to do. I'm just not sure I understood everything correctly.

    I have 1.OUT file in my project's directory. I have to place 1.OUT file in AVR memory. AVR initiate a session and send this 1.OUT using SPI as it defined in SPRAA69D. After this DSP run received program automatically. Is this statement correct?

    2), 3) Thank you for mentioning the Chip Support Library examples. I found prc223.zip with examples. It will be useful.





  • Sorry for my confusion over the available peripherals. You have studied this very well.

    MegaDocent said:
    I have 1.OUT file in my project's directory. I have to place 1.OUT file in AVR memory. AVR initiate a session and send this 1.OUT using SPI as it defined in SPRAA69D. After this DSP run received program automatically. Is this statement correct?

    The information in the 1.OUT file is what needs to be loaded into the C6727B through the SPI and bootloading process. But the exact sequence can be handled differently depending on what utilities you want to use or write. The 1.OUT file can be parsed by your own reader, but you will have to become closely aware of the contents of that file. You can find some descriptions in the Assembly Language Tools Reference Guide for this device.

    Or you can run the hex6x.exe utility to convert the 1.OUT file into an ASCII or binary file that may be easier to parse.

    Or you can use the ofd6x.exe utility to convert the 1.OUT file to an .xml file that you can easily parse with any program method, especially PERL for which we provide library components to help that happen.