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.

FLASH APIs for TMS320F28075?

Other Parts Discussed in Thread: TMS320F28069, TMS320F28075, CONTROLSUITE

I am using the TMS320F28075 and I am trying to find the FLASH APIs used for erase/program/verify.  I have used the TMS320F28069 in the past and in the folders under ControlSuite, the FLASH APIs (file called Flash2806x_API_Library.h and Flash2806x_API_Config.h) are there in the folllowing path.  (although I admit that the actual APIs aren't there, just the function prototypes and some #defines to help with portability).

C:\ti\controlSUITE\device_support\f2806x\v141\F2806x_common\include

When I look in that path under the 28075 device in ControlSuite, there are no such files.

Does anyone have any idea of how to get the FLASH APIs for the TMS320F28075?  Or should I use the ones for the 28069?  

Thanks,

Justin

  • Justin,

    1) You can find the Flash API libraries for F2807x at C:\ti\controlSUITE\device_support\F2807x\v190\F2807x_common\lib.
    F021_API_F2837xD_FPU32.lib can be used for F2807x.

    2) You can find the corresponding header files at C:\ti\controlSUITE\device_support\F2807x\v190\F2807x_common\include\FlashAPI.

    3) You can find an example fro Flash API usage at C:\ti\controlSUITE\device_support\F2807x\v190\F2807x_examples_Cpu1\flash_programming.

    Thanks and regards,
    Vamsi
  • Hi Vamsi,

    I only have folders that go as high as v150 in the F2807x folder, so I don't have v190.

    There doesn't seem to be a Flash2807x_API_Library.h file in there. The F021_API_F2837xD_FPU32.lib file isn't human readable so I don't know what's in there. In the 28069 project that I've worked on, all of the function prototypes and #defines for the flash APIs were in the Texas Instruments-supplied Flash2806x_API_library.h file. I'm talking about functions such as:

    Flash2806x_erase(a,b)
    Flash2806x_Program(a,b,c,d)
    Flash2806x_Verify(a,b,c,d)

    I am trying to save values to the flash memory to be used by the program and I must have access to those APIs. I'm hoping you can tell me how to find them.

    Thanks,
    Justin
  • Hi Justin,

    I would suggest you to update your ControlSuite to get the latest F2807x device support.

    Flash technology used in F2806x is different than that of F2807x devices and hence you need to use a different Flash API.  

    Flash technology used in F2807x allows 0-wait state up to 50MHz.  In F2807x Flash, erase and program takes less time compared to that of F2806x.  F2807x Flash supports ECC as well for error correction and detection.

    Please take a look at the Flash programming example available at C:\ti\controlSUITE\device_support\F2807x\v150\F2807x_examples_Cpu1\flash_programming.  However, I would suggest you to move to V190.

    In the above example, you will notice below functions for erase, program and verify respectively:

    1) Erase:  Fapi_issueAsyncCommandWithAddress(Fapi_EraseSector, (uint32 *)Sector_StartAddress);

    2) Program:  Fapi_issueProgrammingCommand();

    3) Verify:  Fapi_doVerify();

    Note that Fapi_initializeAPI() function and Fapi_setActiveFlashBank(Fapi_FlashBank0) functions should be called before calling any of the other Flash API functions.

    Please refer to chapter 2.12 Flash and OTP Memory of the TRM (http://www.ti.com/lit/ug/spruhm9b/spruhm9b.pdf) for more details on the F2807x Flash module.

    Also, refer to the Flash API reference guide available at C:\ti\controlSUITE\device_support\F2807x\v150\doc\FlashAPI_Doc.

    Prototypes for all the functions in the Flash API library are provided in C:\ti\controlSUITE\device_support\F2807x\v150\F2807x_common\include\FlashAPI\F021.h.

    F021_API_F2837xD_FPU32.lib is a compiled library file which you can link to your application in order to use the functions available in Flash API.  Linker command file (C:\ti\controlSUITE\device_support\F2807x\v150\F2807x_examples_Cpu1\flash_programming\cpu01\flash_programming_cpu1_FLASH.cmd) provided in the above example folder maps this Flash API library to Flash for load and RAM for execution as shown below:  

    GROUP
    {
    ramfuncs
    { -l F021_API_F2837xD_FPU32.lib}

    } LOAD = FLASHD,
    RUN = RAMLS03,
    LOAD_START(_RamfuncsLoadStart),
    LOAD_SIZE(_RamfuncsLoadSize),
    LOAD_END(_RamfuncsLoadEnd),
    RUN_START(_RamfuncsRunStart),
    RUN_SIZE(_RamfuncsRunSize),
    RUN_END(_RamfuncsRunEnd),
    PAGE = 0

    Let me know if you have any questions.

    Thanks and regards,
    Vamsi