SPRADL4 January   2025 F29H850DM , F29H850TU , F29H859TU-Q1 , F29P329SM-Q1 , F29P589DM-Q1 , F29P589DU-Q1

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. 1 Introduction
  5. 2 Differences Between EEPROM and On-Chip Flash
  6. 3 Overview
    1. 3.1 Basic Concepts
    2. 3.2 Single-Unit Method
    3. 3.3 Ping-Pong Method
    4. 3.4 Creating EEPROM Sections (Pages) and Page Identification
  7. 4 Software Description
    1. 4.1 Software Functionality and Flow
  8. 5 Single-Unit Emulation
    1. 5.1 User Configuration
      1. 5.1.1 EEPROM_Config.h
      2. 5.1.2 F29H85x_EEPROM.c
    2. 5.2 EEPROM Functions
      1. 5.2.1 Initialization and Setup Functions
        1. 5.2.1.1 Configure_Device
        2. 5.2.1.2 EEPROM_Config_Check
      2. 5.2.2 Page Mode Functions
        1. 5.2.2.1 EEPROM_GetValidBank
        2. 5.2.2.2 EEPROM_UpdateBankStatus
        3. 5.2.2.3 EEPROM_UpdatePageStatus
        4. 5.2.2.4 EEPROM_UpdatePageData
        5. 5.2.2.5 EEPROM_Write_Page
      3. 5.2.3 64-Bit Mode Functions
        1. 5.2.3.1 EEPROM_64_Bit_Mode_Check_EOS
        2. 5.2.3.2 EEPROM_Write_64_Bits
      4. 5.2.4 Functions Used in Both Modes
        1. 5.2.4.1 EEPROM_Erase
        2. 5.2.4.2 EEPROM_Read
      5. 5.2.5 Utility Functions
        1. 5.2.5.1 EEPROM_Write_Buffer
        2. 5.2.5.2 Erase_Bank
        3. 5.2.5.3 Set_Protection_Masks
        4. 5.2.5.4 Configure_Protection_Masks
        5. 5.2.5.5 Fill_Buffer
        6. 5.2.5.6 ClearFSMStatus
    3. 5.3 Testing Example
  9. 6 Ping-Pong Emulation
    1. 6.1 User-Configuration
      1. 6.1.1 EEPROM_PingPong_Config.h
      2. 6.1.2 F29H85x_EEPROM_PingPong.c
    2. 6.2 EEPROM Functions
      1. 6.2.1 Initialization and Setup Functions
        1. 6.2.1.1 Configure_Device
        2. 6.2.1.2 EEPROM_Config_Check
      2. 6.2.2 Page Mode Functions
        1. 6.2.2.1 EEPROM_GetValidBank
        2. 6.2.2.2 EEPROM_UpdateBankStatus
        3. 6.2.2.3 EEPROM_UpdatePageStatus
        4. 6.2.2.4 EEPROM_UpdatePageData
        5. 6.2.2.5 EEPROM_Write_Page
      3. 6.2.3 64-Bit Mode Functions
        1. 6.2.3.1 EEPROM_64_Bit_Mode_Check_EOS
        2. 6.2.3.2 EEPROM_Write_64_Bits
      4. 6.2.4 Functions Used in Both Modes
        1. 6.2.4.1 EEPROM_Erase_Inactive_Unit
        2. 6.2.4.2 EEPROM_Read
        3. 6.2.4.3 EEPROM_Erase_All
      5. 6.2.5 Utility Functions
        1. 6.2.5.1 EEPROM_Write_Buffer
        2. 6.2.5.2 Erase_Bank
        3. 6.2.5.3 Configure_Protection_Masks
        4. 6.2.5.4 Set_Protection_Masks
        5. 6.2.5.5 Fill_Buffer
        6. 6.2.5.6 ClearFSMStatus
    3. 6.3 Testing Example
  10. 7 Application Integration
  11. 8 Flash API
    1. 8.1 Flash API Checklist
      1. 8.1.1 Flash API Do's and Do Not's
  12. 9 Source File Listing
  13. 10Troubleshooting
    1. 10.1 General
  14. 11Conclusion
  15. 12References

EEPROM Functions

Listed below are all functions required for the implementations. They are found in the F29H85x_EEPROM_PingPong.c or F29H85x_EEPROM_PingPong_Example.c files.

Initialization and Setup Functions

  • Configure_Device()
  • EEPROM_Config_Check()

Page Mode Functions

  • EEPROM_GetValidBank(uint8_t ReadFlag)
  • EEPROM_UpdateBankStatus()
  • EEPROM_UpdatePageStatus()
  • EEPROM_UpdatePageData(uint8_t* Write_Buffer)
  • EEPROM_Write_Page(uint8_t* Write_Buffer)

64-bit Mode Functions

  • EEPROM_64_Bit_Mode_Check_EOS()
  • EEPROM_Write_64_Bits(uint8_t Num_Bytes, uint8_t* Write_Buffer)

Used in Both

  • EEPROM_Erase_Inactive_Unit()
  • EEPROM_Read()
  • EEPROM_Erase_All()

Utility Functions

  • EEPROM_Write_Buffer(uint8_t* address, uint8_t* write_buffer)
  • Erase_Bank()
  • Configure_Protection_Masks(uint32_t* Sector_Numbers, uint32_t Num_EEPROM_Sectors)
  • Set_Protection_Masks()
  • Fill_Buffer()
  • ClearFSMStatus(uint32_t u32StartAddress, uint32_t u32UserFlashConfig)

The description of each of these functions is discussed in detail in the subsequent sections.