SPRUJE7A January   2025  – July 2025 F29H850TU , F29H859TU-Q1

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. 1Introduction
    1. 1.1 Differences From C28x
    2. 1.2 Function Listing Format
  5. 2F29H85x 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 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_issueAutoEcc512ProgrammingCommand()
      7. 3.2.7  Fapi_issueDataAndEcc512ProgrammingCommand()
      8. 3.2.8  Fapi_issueDataOnly512ProgrammingCommand()
      9. 3.2.9  Fapi_issueEccOnly64ProgrammingCommand()
      10. 3.2.10 Fapi_issueAsyncCommand()
      11. 3.2.11 Fapi_checkFsmForReady()
      12. 3.2.12 Fapi_getFsmStatus()
    3. 3.3 Read Functions
      1. 3.3.1 Fapi_doBlankCheck()
      2. 3.3.2 Fapi_doVerify()
      3. 3.3.3 Fapi_doVerifyByByte()
    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_getUserConfiguration()
      5. 3.5.5 Fapi_setFlashCPUConfiguration()
      6. 3.5.6 Fapi_issueProgBankMode()
  7. 4SECCFG and BANKMGMT Programming Using the Flash API
    1. 4.1 BANKMGMT Programming
    2. 4.2 SECCFG Programming
  8. 5Allowed Programming Ranges for All Modes
  9. 6Recommended FSM Flows
    1. 6.1 New Devices From Factory
    2. 6.2 Recommended Erase Flow
    3. 6.3 Recommended Bank Erase Flow
    4. 6.4 Recommended Program Flow
  10. 7References
  11.   A Flash State Machine Commands
  12.   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
      6.      B.3.6 Fapi_BankID
      7.      B.3.7 Fapi_FLCID
      8.      B.3.8 Fapi_BankMode
      9.      B.3.9 Fapi_CPU1BankSwap
      10.      B.3.10 Fapi_CPU3BankSwap
      11.      B.3.11 Fapi_FOTAStatus
      12.      B.3.12 Fapi_SECVALID
      13.      B.3.13 Fapi_BankMgmtAddress
    4.     B.4 Structures
      1.      B.4.1 Fapi_FlashStatusWordType
      2.      B.4.2 Fapi_LibraryInfoType
  13.   Revision History

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.

Deprecated.

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 (64 byte) programming with AutoECC generation mode and issues the command to the FSM
Fapi_issueDataAndEcc512ProgrammingCommand()Sets up the required registers for 512-bit (64 byte) 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 (64 byte) programming with user provided flash data and issues the command to the FSM
Fapi_issueEccOnly64ProgrammingCommand()Sets up the required registers for 64-bit (8 byte) 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
Fapi_doVerifyByByte()Verifies specified Flash memory range against supplied values by byte
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_getUserConfiguration()Calculates the value for u32UserFlashConfig given the desired configuration parameters.
Fapi_setUserConfiguration()Commits the u32UserFlashConfig value