SPRUJB8 April   2024

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. 1Introduction
    1. 1.1 Reference Material
    2. 1.2 Function Listing Format
  5. 2TMS320F28P65x 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 Object Library Files
        2. 2.3.2.2 Distribution Files
      3. 2.3.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.   A Flash State Machine Commands
  9.   B Typedefs, Defines, Enumerations and Structure
    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
  10.   C Summary of Changes From v3.00.01 to v3.00.02

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 FunctionDescription
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
Fapi_issueProgrammingCommandForEccAddress()Remaps an ECC address to the main data space and then call Fapi_issueProgrammingCommand() to program ECC
Fapi_issueAutoEcc512ProgrammingCommand() SSets 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.