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.

CCS/TMS320F28035: TMS320F28035:Need to add external memory

Part Number: TMS320F28035
Other Parts Discussed in Thread: CONTROLSUITE

Tool/software: Code Composer Studio

Hi,

I have two control cards, F28035 and F28335. I am currently using the TMS320F28035 control card and TMDSHVMTRPFCKIT for induction motor control. Because of the experimental settings, it is necessary to collect long-term data (more than 1 hour).

The way to store data is to write the program in .c file, and decide the parameters to be stored and the number of samples and sampling time to set the parameters. When I run the full body experiment in the disassembly window, I will use the "Save memory" of this window. "To access the data of the .dat file. In the past, I have tried changing the memory allocation to increase the number of data received, but there is still no way to solve the problem.

How to increase external memory in TMDSHVMTRPFCKIT?

Thank you

  • Hi there,

    How much memory are you attempting to allocate? The method you are currently using is definitely feasible, but if your program is large, you are limited on data storage space as you have found.

    Have you considered adding an SD card to store data? You can use the FATFS file system on the sd card and store data to be read later.
    Alternately, you can use the Channel B UART (SCI) through the debug probe to dump a raw data stream from your background loop directly to a PC or other serial monitor.

    Unfortunately with the kit and devices that you have chosen, there are no "off the shelf" ways to expand the memory. I think the most straightforward is to dump the real time data to a serial monitor. If you can get a one-way data stream going, You can actually expand the usage and control motor values in real time without JTAG which could aid in your experimentation.

    Regards,
    Mark
  • Hi,

    Thanks for your reply!

    A1:

    I used the memory map of F28035 to do memory allocation, and made changes to the dataRAM and progRAM two-part memory space.

    The original internal settings are:

    progRAM : origin = 0x008000, length = 0x001800.

    dataRAM : origin = 0x009800, length = 0x000800

    The following is the adjusted .cmd file after adjustment. However, after adjustment, there is no way to meet the number of data I need, and the size of the data I need is about 36,000 or more (accessed by 1 second sampling time):

    MEMORY

    {

    PAGE 0 :

    /* Note that the memory allocation below does not create sections as necessary for

      the CLA on the F2803x.

    */

    BEGIN   : origin = 0x000000, length = 0x000002

    BOOT_RSVD   : origin = 0x000002, length = 0x00004E            

    RAMM0   : origin = 0x000050, length = 0x0003B0

    progRAM   : origin = 0x008000, length = 0x001050

    IQTABLES       : origin = 0x3FE000, length = 0x000B50    /* IQ Math Tables in Boot ROM */

    IQTABLES2      : origin = 0x3FEB50, length = 0x00008C    /* IQ Math Tables in Boot ROM */

    IQTABLES3      : origin = 0x3FEBDC, length = 0x0000AA /* IQ Math Tables in Boot ROM */

    RESET          : origin = 0x3FFFC0, length = 0x000002

    BOOTROM        : origin = 0x3FF27C, length = 0x000D44              

    PAGE 1 :

    RAMM1   : origin = 0x000480, length = 0x000380

    dataRAM   : origin = 0x009050, length = 0x000FB0     /* change memory range*/

    CLA_CPU_MSGRAM : origin = 0x001480, length = 0x000080

    CPU_CLA_MSGRAM : origin = 0x001500, length = 0x000080

    }

    SECTIONS

    {

      codestart        : > BEGIN,      PAGE = 0

      ramfuncs         : > RAMM0,      PAGE = 0  

      .text            : > progRAM,    PAGE = 0

      .cinit           : > RAMM0,      PAGE = 0

      .pinit           : > RAMM0,      PAGE = 0

      .switch          : > RAMM0,      PAGE = 0

      .reset           : > RESET,      PAGE = 0, TYPE = DSECT

      .stack           : > RAMM1,      PAGE = 1

      .ebss            : > dataRAM,    PAGE = 1

      .econst          : > dataRAM,    PAGE = 1      

      .esysmem         : > RAMM1,      PAGE = 1

      IQmath           : > progRAM,    PAGE = 0

      IQmathTables     : > IQTABLES, PAGE = 0, TYPE = NOLOAD

      Cla1ToCpuMsgRAM  : > CLA_CPU_MSGRAM, PAGE = 1

      CpuToCla1MsgRAM  : > CPU_CLA_MSGRAM, PAGE = 1

    }

    A2:

    As far as I am concerned, I don't see any part that supports SD card on the TMDSHVMTRPFCKIT development board I use.

    But now I want to use the RS232-TLL conversion module to transmit signals to the computer, but I still don't know how to convert the SPI signal into the data I need.

    Is my method the same as the one you proposed?

    Best regards,

    David

  • David,

    Yeah, it looks like you will definitely need to find a way to store the data off-chip.

    You are correct about any SD card hardware not being off-the-shelf compatible with this kit. IT looks like there is a header with SPI-A signals - H2. You could potentially wire something up. 

    For RS232, do you mean to say TTL and SCI? I will mention again that there is a second channel on the XDS100 debug probe that is specifically a serial-to-USB converter. Meaning, with just the already built in USB connection for JTAG you can access the SCI (UART). You do not need additional hardware. You would only need some a serial terminal (such as Putty, or HyperTerm, RealTerm) to access the data stream. Also, with something like Python, you can quickly create a serial monitor and data logger on your machine. This would also give you the ability for real-time viewing.  I recommend this route as the connection is isolated from the High Voltage of the motor controller, and gives you the real-time viewing ability.

    -Mark

  • Mark,

    Do you mean I need to write a program in CCS project to make uart output the signal I want to the serial monitor in the computer?

    If it is the same as yours, is there any case to help me to implement it?

    Then can I perform V/f control in controlSUITE at TMDSHVMTRPFCKIT and use MATLAB Simulink Embedded Coder for data collection at the same time?

    Thank you for your reply!

    David

  • David, 

    That is one approach. controlSUITE includes a few SCI examples that initialize and use the channel. You will need to manipulate them to work with your application.I know that there are others who have posted before here on E2E who have done the same thing. Please search for similar threads, you may gain insight and tips from there. I can provide guidance if you have specific questions.

    If you are using Embedded coder, you should also look on their site for similar examples. They do have an SCI support package: https://www.mathworks.com/help/supportpkg/texasinstrumentsc2000/ref/c28xscitransmit.html . Perhaps there are already datalogger tools available as well.

    Regards,
    Mark