SPIU023 August   2026 TMS320F28P551SG

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. 1Introduction
    1. 1.1 Reference Material
    2. 1.2 Function Listing Format
  5. 2 TMS320F28P551x Flash API Overview
    1. 2.1 Introduction
    2. 2.2 API Overview
    3. 2.3 Using API
      1. 2.3.1 Initialization Flow
        1. 2.3.1.1 After Device Power Up
        2. 2.3.1.2 Flash Wrapper and Bank Setup
        3. 2.3.1.3 On System Frequency Change
      2. 2.3.2 Building With the API
        1. 2.3.2.1 Objects Library Files
        2. 2.3.2.2 Distribution Files
        3. 2.3.2.3 Key Facts For Flash API Usage
  6. 3API Functions
    1. 3.1 Initialization Functions
      1. 3.1.1 Fapi_initializeAPI()
    2. 3.2 Flash State Machine Functions
      1. 3.2.1  Fapi_setActiveFlashBank()
      2. 3.2.2  Fapi_setupBankSectorEnable()
      3. 3.2.3  Fapi_issueAsyncCommandWithAddress()
      4. 3.2.4  Fapi_issueBankEraseCommand()
      5. 3.2.5  Fapi_issueProgrammingCommand()
      6. 3.2.6  Fapi_issueProgrammingCommandForEccAddresses()
      7. 3.2.7  Fapi_issueAutoEcc512ProgrammingCommand()
      8. 3.2.8  Fapi_issueDataAndEcc512ProgrammingCommand()
      9. 3.2.9  Fapi_issueDataOnly512ProgrammingCommand()
      10. 3.2.10 Fapi_issueEccOnly64ProgrammingCommand()
      11. 3.2.11 Fapi_issueAsyncCommand()
      12. 3.2.12 Fapi_checkFsmForReady()
      13. 3.2.13 Fapi_getFsmStatus()
    3. 3.3 Read Functions
      1. 3.3.1 Fapi_doBlankCheck()
      2. 3.3.2 Fapi_doVerify()
    4. 3.4 Informational Functions
      1. 3.4.1 Fapi_getLibraryInfo()
    5. 3.5 Utility Functions
      1. 3.5.1 Fapi_flushPipeline()
      2. 3.5.2 Fapi_calculateEcc()
      3. 3.5.3 Fapi_isAddressEcc()
      4. 3.5.4 Fapi_remapEccAddress()
      5. 3.5.5 Fapi_calculateFletcherChecksum()
  7. 4Recommended FSM Flows
    1. 4.1 New Devices From Factory
    2. 4.2 Recommended Erase Flow
    3. 4.3 Recommended Bank Erase Flow
    4. 4.4 Recommended Program Flow
  8. 5Software Application Assumptions of Use Related to Safety
  9.   A Flash State Machine Commands
  10.   B Typedefs, Defines, Enumerations and Structures
    1.     B.1 Type Definitions
    2.     B.2 Defines
    3.     B.3 Enumerations
      1.      B.3.1 Fapi_FlashProgrammingCommandsType
      2.      B.3.2 Fapi_FlashBankType
      3.      B.3.3 Fapi_FlashStateCommandsType
      4.      B.3.4 Fapi_StatusType
      5.      B.3.5 Fapi_ApiProductionStatusType
    4.     B.4 Structures
      1.      B.4.1 Fapi_FlashStatusWordType
      2.      B.4.2 Fapi_LibraryInfoType
  11.   References

Fapi_setupBankSectorEnable()

Configures write (program) and erase protection for the sectors.

Synopsis

Fapi_StatusType Fapi_setupBankSectorEnable(
                    uint32 WEPROT_register, 
                    uint32 oSectorMask
                                          )

Parameters

Table 3-3 Fapi_setupBankSectorEnable Parameters
ParametersDescription
pu32StartAddress [in]

Register address for write and erase protection configuration.

Use FLASH_WRAPPER_PROGRAM_BASE+FLASH_O_CMDWEPROTA for the first 32 (0-31) sectors.

Use FLASH_WRAPPER_PROGRAM_BASE+FLASH_O_CMDWEPROTB for the remaining main-array (32–127) sectors.

Use FLASH_WRAPPER_PROGRAM_BASE+FLASH_O_CMDWEPROT_UO for the USER OTP.

OSectorMask [in]32-bit mask indicating which sectors to mask from the erase and program operations.

Description

On this device, all of the flash main-array sectors and the USER OTP are protected from the erase and program operations by default. The application of the user must disable the protection for the sectors that the application wants to perform erase or program (or both) operations. This function can be used to enable or disable the protection. This function is called before each erase and program command, as shown in the flash API usage example provided in the C2000Ware.

The first input parameter for this function can be the address of any of these three registers: CMDWEPROTA, CMDWEPROTB, and CMDWEPROT_UO.

The CMDWEPROTA register is used to configure the protection for the first 32 sectors (0 to 31). Each bit in this register corresponds to each sector – Example: Bit 0 of this register is used to configure the protection for Sector 0, and Bit 31 of this register is used to configure the protection for Sector 31. A 32-bit user-provided sector mask (second parameter passed to this function) indicates which sectors the user wants to mask from the erase and program operations, that is, sectors that are not meant to be erased and programmed. If a bit in the mask is 1, that particular sector is not erased or programmed.

The CMDWEPROTB register is used to configure the protection for the 32–127 sectors in the main-array flash bank. However, note that each bit in this register is used to configure protection for eight sectors together. This means, bit 0 is used to configure the protection for all of the sectors 32 to 39 together, bit 1 is used to configure the protection for all of the sectors 40 to 47 together, and so on. A 32-bit user-provided sector mask (second parameter passed to this function) indicates which sectors the user wants to mask from the erase and program operations, that is, sectors that are not meant to be erased and programmed. If a bit in the mask is 1, that particular set of sectors is not erased or programmed. If a bit in the mask is 0, that particular set of sectors is erased or programmed.

The CMDWEPROT_UO register is used to configure the protection for the USER OTP. Bit 0 in this register is used to configure the protection for the USER OTP. This means, if bit 0 is configured as 1, USER OTP is not erased or programmed. Other bits can be configured as 1s. Since USER OTP is not erasable, the CMDWEPROT_UO register protection is not applicable for erase operations. This must be configured only for the program operation as needed.

Return Value

  • Fapi_Status_Success (Success)
  • Fapi_Error_FlashRegsNotWritable (Failure: Flash register write failed. The user must verify that the API is executing from the same zone as that of the target address for the flash operation OR the user must unlock before the flash operation.)
  • Fapi_Error_FeatureNotAvailable (Failure: User requested a write to non CMDWEPROT protected registers.)

Sample Implementation

See the flash programming example provided in C2000Ware at C2000Ware_.....\driverlib\f28p551x\examples\flash\flashapi_128bit_programming.c for TMS320F28P551x.

See the flash programming example provided in C2000Ware_.....\driverlib\f28p551x\examples\flash\flashapi_512bit_programming.c for TMS320F28P551x.