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

Allowed Programming Ranges for All Modes

Note: FOTA ranges are read only. To program them, configure the Flash API using the FOTA_Image parameter and pass in the active region addresses. The Flash API internally translates the address into the correct destination. For more information, see the F29H85x and F29P58x Real-Time Microcontrollers Data Sheet and F29H85x and F29P58x Real-Time Microcontrollers Technical Reference Manual.
Table 5-1 Main Array Ranges
Bank Mode Region CPU1 Flash Address Range CPU3 Flash Address Range
Mode 0 Active 0x1000 0000 - 0x1040 0000 N/A
FOTA N/A N/A
Mode 1 Active 0x1000 0000 - 0x1020 0000 N/A
FOTA 0x1060 0000 - 0x1080 0000 N/A
Mode 2 Active 0x1000 0000 - 0x1020 0000 0x1040 0000 - 0x1060 0000
FOTA N/A N/A
Mode 3 Active 0x1000 0000 - 0x1010 0000 0x1040 0000 - 0x1050 0000
FOTA 0x1000 0000 - 0x1010 0000 0x1040 0000 - 0x1050 0000
Table 5-2 BANKMGMT Programming Ranges
Bank Mode FLC1 BANKMGMT Range FLC2 BANKMGMT Range
Mode 0 0x10D8 0000 - 0x10D80 0FFF N/A
Mode 1 0x10D8 0000 - 0x10D80 0FFF N/A
Mode 2 0x10D8 0000 - 0x10D80 0FFF N/A
Mode 3 0x10D8 0000 - 0x10D80 0FFF 0x10D9 0000 - 0x10D9 0FFF
Table 5-3 SECCFG Programming Ranges
Bank Mode CPUxSWAP Region CPU1/CPU2 Bank FLC1 Address Range CPU3 Bank FLC2 Address Range
Mode 0 Alternate FLC1.B2/B3 0x10D8 5000 -0x10D8 5FFF FLC2.B2/B3 0x10D8 C000 - 0x10D8 CFFF
Mode 1 SWAP = 0 Alternate FLC1.B2/B3 0x10D9 9000 - 0x10D9 9FFF FLC2.B2/B3 0x10D8
SWAP = 1 Alternate FLC1.B0/B1 0x10D9 9000 - 0x10D9 9FFF FLC2.B0/B1 N/A
Mode 2 Alternate FLC1.B2/B3 0x10D8 5000 -0x10D8 5FFF FLC2.B2/B3 0x10D9 5000 - 0x10D9 5FFF
Mode 3 SWAP = 0 Alternate FLC1.B2/B3 0x10D9 9000- 0x10D9 9FFF FLC2.B2/B3 0x10D9 D000 -0x10D9 DFFF
SWAP = 1 Alternate FLC1.B0/B1 0x10D9 9000 - 0x10D9 9FFF FLC2.B0/B1 0x10D9 D000 -0x10D9 DFFF