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

API Overview

Table 2-1 Summary of Initialization Functions
API FunctionDescription
Fapi_initializeAPI()Initializes the API for first use or frequency change
Table 2-2 Summary of Flash State Machine (FSM) Functions
API Function DescriptionDescription
Fapi_setActiveFlashBank()Initializes Flash Wrapper and bank for an erase or program command
Fapi_setupBankSectorEnable()Configures the Write/Erase protection for the sectors.
Fapi_issueBankEraseCommand()Issues bank erase command to the Flash State Machine for the given bank address.
Fapi_issueAsyncCommandWithAddress()Issues an erase sector command to FSM for the given address
Fapi_issueProgrammingCommand()Sets up the required registers for programming and issues the command to the FSM

Note: Maximum 128-bits (8 16-bit words) can be programed at once.

Fapi_issueProgrammingCommandForEccAddress()Remaps an ECC address to the main data space and then call Fapi_issueProgrammingCommand() to program ECC
Fapi_issueAutoEcc512ProgrammingCommand()

Sets up the required registers for 512-bit (32 16-bit words) programming with AutoECC generation mode and issues the command to the FSM

Fapi_issueDataAndEcc512ProgrammingCommand()

Sets up the required registers for 512-bit (32 16-bit words) programming with user provided flash data and ECC, and issues the command to the FSM

Fapi_issueDataOnly512ProgrammingCommand()

Sets up the required registers for 512-bit (32 16-bit words) programming with user provided flash data and issues the command to the FSM

Fapi_issueEccOnly64ProgrammingCommand()

Sets up the required registers for 64-bit (4 16-bit words) ECC programming with user provided ECC data and issues the command to the FSM

Fapi_issueAsyncCommand()Issues a command (Clear Status) to FSM for operations that do not require an address
Fapi_checkFsmForReady()Returns whether or not the Flash state machine (FSM) is ready or busy
Fapi_getFsmStatus()Returns the STATCMD status register value from the Flash Wrapper
Table 2-3 Summary of Read Functions
API FunctionDescription
Fapi_doBlankCheck()Verifies specified Flash memory range against erased state
Fapi_doVerify()Verifies specified Flash memory range against supplied values
Note: Fapi_calculatePsa() and Fapi_doPsaVerify() are deprecated.
Table 2-4 Summary of Information Functions
API FunctionDescription
Fapi_getLibraryInfo()Returns the information specific to the compiled version of the API library
Table 2-5 Summary of Utility Functions
API FunctionDescription
Fapi_flushPipeline()Flushes the data cache in Flash Wrapper
Fapi_calculateEcc()Calculates the ECC for the supplied address and 64-bit word
Fapi_isAddressEcc()Determines if the address falls in ECC ranges
Fapi_remapEccAddress()Remaps an ECC address to corresponding main address
Fapi_calculateFletcherChecksum()Function calculates a Fletcher checksum for the memory range specified. Fapi_calculateFletcherChecksum() will be deprecated in future device.