SPRUJC5 April   2024 TMS320F28P550SJ , TMS320F28P559SJ-Q1

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. 1Introduction
    1. 1.1 Reference Material
    2. 1.2 Function Listing Format
  5. 2TMS320F28P55x 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 Ojbects 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)/Erase protection for the sectors.

Synopsis

Fapi_StatusType Fapi_setupBankSectorEnable(
                    uint32 WEPROT_register, 
                    uint32 oSectorMask
                                          )

Parameters

pu32StartAddress [in]

Register address for Write/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. User application has to disable the protection for the sectors on which it wants to perform erase and/or program operations. This function can be used to enable/disable the protection. This function should be called before each erase and program command as shown in the flash API usage example provided in the C2000Ware.

First input parameter for this function can be the address of any of these three registers: CMDWEPROTA, CMDWEPROTB, CMDWEPROT_UO

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 will not be erased and programmed. If a bit in the mask is 1, that particular sector is not erased/programmed.

CMDWEPROTB register is used to configure the protection for the 32 – 127 sectors in the main-array flash bank. However, please note that each bit in this register is used to configure protection for 8 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 will not be erased and programmed. If a bit in the mask is 1, that particular set of sectors are not erased/programmed. If a bit in the mask is 0, that particular set of sectors will be erased/programmed.

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/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 should 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 should make sure that the API is executing from the same zone as that of the target address for flash operation OR the user should 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\f28p55x\examples\flash\flashapi_128bit_programming.c” for TMS320F28P55x. See the flash programming example provided in C2000Ware at “C2000Ware_.....\driverlib\f28p55x\examples\flash\flashapi_512bit_programming.c” for TMS320F28P55x.)