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.

TMS320F28377S: programming the User configurable DCSM OTP Bank 0/1

Part Number: TMS320F28377S

Hi,

I need to program the DCSM OTP flash memories for TMS320F28377S device and I have some questions.

In the control suite example folder "controlSUITE\device_support\F2837xS\vX\F2837xS_examples_Cpu1\flash_programming" I can see in the flash_programming_cpu01.c file, the procedures which are needed to run before programing the Bank 0 and Bank 1 flash memories. Concretely this procedures are:

For Bank 0 flash:

InitFlash_Bank0();

SeizeFlashPump_Bank0(), or other pump semaphore command(eg. PUMPREQUEST = 0x5A5A0002;)

Fapi_initializeAPI(F021_CPU0_W0_BASE_ADDRESS, 194);

:Fapi_setActiveFlashBank(Fapi_FlashBank0);

For bank 1 flash:

InitFlash_Bank1();

SeizeFlashPump_Bank1(), or other pump semaphore command(eg. PUMPREQUEST = 0x5A5A0001;)

Fapi_initializeAPI(F021_CPU0_W1_BASE_ADDRESS, 200);

:Fapi_setActiveFlashBank(Fapi_FlashBank1);

My question is: which Fapi_xxx procedures is needed to run before programming the User configurable DCSM OTP Bank 0 and User configurable DCSM OTP Bank ?  Procedures for bank 0 or for bank 1? Or DCSM OTP Bank 0 belongs to the bank 0 procedures and DCSM OTP Bank 1 belongs to the bank 1 procedures?

Thanks and regards,

Tomas

  • Tomas,

    User configurable DCSM OTP Bank0 requires the same functions as that of Bank0.

    User configurable DCSM OTP Bank1 requires the same functions as that of Bank1.  However, there are no any fields in DCSM OTP Bank1 - what are you trying to program here?

    Side note:  In the functions that you listed, replace 194 with 200 in the Fapi_initializeAPI(F021_CPU0_W0_BASE_ADDRESS, 194) function.  I already filed a ticket to correct this in the example for the next revision.  

    Thanks and regards,
    Vamsi

  • Hi Vamsi,

    You wrote: However, there are no any fields in DCSM OTP Bank1 - what are you trying to program here?

    If you say, that DCSM OTP Bank1 have no meaning(don't have any fields to program), what is the purpose of this DCSM OTP Bank1 location?

    I assume that DCSM OTP Bank 0 sets the security rules for the Flash Bank 0 and DCSM OTP Bank 1 for Flash bank 1...Am I right or my assumption is wrong?

    Thanks and regards,

    Tomas

  • Hi Tomas,

    If you say, that DCSM OTP Bank1 have no meaning(don't have any fields to program), what is the purpose of this DCSM OTP Bank1 location?

    I assume that DCSM OTP Bank 0 sets the security rules for the Flash Bank 0 and DCSM OTP Bank 1 for Flash bank 1...Am I right or my assumption is wrong?

    Since there is BANK1, it has associated OTP with it though it is not used in this case because all the security settings are in BANK0 OTP only. BANK1 is considered as one sector from security point of view and settings for the same is part of BANK0 OTP only. Please refer GRABSECT definition in TRM for the same. You will find BANK1 there.

    We will plan to mark BANK1 OTP reserved in next release of document to avoid this confusion.

    Regards,

    Vivek Singh