SPRUJ27C November   2022  – November 2023 TMS320F280033 , TMS320F280034 , TMS320F280034-Q1 , TMS320F280036-Q1 , TMS320F280036C-Q1 , TMS320F280037 , TMS320F280037-Q1 , TMS320F280037C , TMS320F280037C-Q1 , TMS320F280038-Q1 , TMS320F280038C-Q1 , TMS320F280039 , TMS320F280039-Q1 , TMS320F280039C , TMS320F280039C-Q1

 

  1.   1
  2.   Trademarks
  3. 1Introduction
    1. 1.1 Reference Material
    2. 1.2 Function Listing Format
  4. 2TMS320F28003x 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 FMC 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
  5. 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_issueAsyncCommandWithAddress()
      3. 3.2.3 Fapi_issueBankEraseCommand()
      4. 3.2.4 Fapi_issueProgrammingCommand()
      5. 3.2.5 Fapi_issueProgrammingCommandForEccAddresses()
      6. 3.2.6 Fapi_issueFsmSuspendCommand()
      7. 3.2.7 Fapi_issueAsyncCommand()
      8. 3.2.8 Fapi_checkFsmForReady()
      9. 3.2.9 Fapi_getFsmStatus()
    3. 3.3 Read Functions
      1. 3.3.1 Fapi_doBlankCheck()
      2. 3.3.2 Fapi_doVerify()
      3. 3.3.3 Fapi_calculatePsa()
      4. 3.3.4 Fapi_doPsaVerify()
    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()
  6. 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
  7. 5Software Application Assumptions of Use Related to Safety
  8.   A Flash State Machine Commands
    1.     A.1 Flash State Machine Commands
  9.   B Compiler Version and Build Settings
  10.   C Object Library Function Information
    1.     C.1 TMS320F28003x Flash API Library
  11.   D Typedefs, Defines, Enumerations and Structures
    1.     D.1 Type Definitions
    2.     D.2 Defines
    3.     D.3 Enumerations
      1.      D.3.1 Fapi_FlashProgrammingCommandsType
      2.      D.3.2 Fapi_FlashBankType
      3.      D.3.3 Fapi_FlashStateCommandsType
      4.      D.3.4 Fapi_FlashReadMarginModeType
      5.      D.3.5 Fapi_StatusType
      6.      D.3.6 Fapi_ApiProductionStatusType
    4.     D.4 Structures
      1.      D.4.1 Fapi_FlashStatusWordType
      2.      D.4.2 Fapi_LibraryInfoType
  12.   E Parallel Signature Analysis (PSA) Algorithm
    1.     E.1 Function Details
  13.   F ECC Calculation Algorithm
    1.     F.1 Function Details
  14.   G Errata
  15.   Revision History

API Overview

Table 2-1 Summary of Initialization Functions
API Function Description
Fapi_initializeAPI() Initializes the API for first use or frequency change
Table 2-2 Summary of Flash State Machine (FSM) Functions
API Function Description
Fapi_setActiveFlashBank() Initializes Flash Memory Controller (FMC) and banks for an erase or program command

Fapi_issueBankEraseCommand()

Issues bank erase command to the Flash State Machine for the given bank address after applying the sector mask.

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_issueFsmSuspendCommand() Suspends FSM commands program data and erase sector
Fapi_issueAsyncCommand() Issues a command (Clear Status, Program Resume, Erase Resume, Clear_More) 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 FMSTAT status register value from the Flash memory controller
Table 2-3 Summary of Read Functions
API Function Description
Fapi_doBlankCheck() Verifies specified Flash memory range against erased state
Fapi_doVerify() Verifies specified Flash memory range against supplied values
Fapi_calculatePsa() Calculates a PSA value for the specified Flash memory range
Fapi_doPsaVerify() Verifies a specified Flash memory range against the supplied PSA value
Note:

In order to improve the flash read performance in the flash API’s read functions, the data cache in the flash wrapper (Flash Module Controller – FMC) is enabled in the read functions. Before the data cache is enabled, the read functions save the previous configuration of the data cache (as set by the user application using the flash initialization routine in the driverlib) and restore the same after the flash reads in these functions are complete.

Table 2-4 Summary of Information Functions
API Function Description
Fapi_getLibraryInfo() Returns the information specific to the compiled version of the API library
Table 2-5 Summary of Utility Functions
API Function Description
Fapi_flushPipeline() Flushes the data cache in FMC
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

Note that Fapi_getDeviceInfo() and Fapi_getBankSectors() are removed in TMS320F28003x Flash API since users can obtain this information (for example, number of banks, pin count, number of sectors, and so on) from other resources provided in the device-specific technical reference manual.

The Fapi_UserDefinedFunctions.c file is not provided anymore since the functions in that file are now merged in the Flash API Library. Review Key Facts For Flash API Usage for information about servicing the watchdog function while using Flash API.