ZHCAEX4 January   2025 F29H850DM , F29H850TU , F29H859TU-Q1 , F29P589DM-Q1 , F29P589DU-Q1

 

  1.   1
  2.   摘要
  3.   商标
  4. 1 简介
  5. 2 EEPROM 与片上闪存的区别
  6. 3 概述
    1. 3.1 基本概念
    2. 3.2 单存储单元方法
    3. 3.3 乒乓方法
    4. 3.4 创建 EEPROM 节(页)和页标识
  7. 4 软件说明
    1. 4.1 软件功能和流程
  8. 5 单存储单元仿真
    1. 5.1 用户配置
      1. 5.1.1 EEPROM_Config.h
      2. 5.1.2 F29H85x_EEPROM.c
    2. 5.2 EEPROM 函数
      1. 5.2.1 初始化和设置函数
        1. 5.2.1.1 Configure_Device
        2. 5.2.1.2 EEPROM_Config_Check
      2. 5.2.2 页面模式函数
        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 位模式函数
        1. 5.2.3.1 EEPROM_64_Bit_Mode_Check_EOS
        2. 5.2.3.2 EEPROM_Write_64_Bits
      4. 5.2.4 两种模式下使用的函数
        1. 5.2.4.1 EEPROM_Erase
        2. 5.2.4.2 EEPROM_Read
      5. 5.2.5 实用功能
        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 测试示例
  9. 6 乒乓仿真
    1. 6.1 用户配置
      1. 6.1.1 EEPROM_PingPong_Config.h
      2. 6.1.2 F29H85x_EEPROM_PingPong.c
    2. 6.2 EEPROM 函数
      1. 6.2.1 初始化和设置函数
        1. 6.2.1.1 Configure_Device
        2. 6.2.1.2 EEPROM_Config_Check
      2. 6.2.2 页面模式函数
        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 位模式函数
        1. 6.2.3.1 EEPROM_64_Bit_Mode_Check_EOS
        2. 6.2.3.2 EEPROM_Write_64_Bits
      4. 6.2.4 两种模式下使用的函数
        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 实用功能
        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 测试示例
  10. 7 应用集成
  11. 8 闪存 API
    1. 8.1 闪存 API 检查清单
      1. 8.1.1 使用闪存 API 时的注意事项
  12. 9 源文件清单
  13. 10故障排除
    1. 10.1 一般
  14. 11结语
  15. 12参考资料

创建 EEPROM 节(页)和页标识

为了支持具有不同数据大小(大于 64 位)的 EEPROM 仿真,选择用于仿真的闪存扇区被分为称为 EEPROM 组(不要与闪存组相混淆)和页面的格式。对于单存储单元和乒乓实现,仿真的这一方面是相同的。

为仿真所选的闪存扇区被细分为 EEPROM 组,然后分成页面。如图 3-3 所示。

使用该格式,应用能够:

  • 从在之前保存期间写入的页面中读回数据
  • 将最新数据写入新页面
  • 在应用需要时,从之前存储的任何数据读取
 组分区图 3-3 组分区

应用通过状态代码跟踪正在使用的组和页面。有关更多信息,请参阅节 5.2.2.1。

为了跟踪 EEPROM 组的状态(空、当前或已满),需要保留每个组的前 16 个字节(128 位)。切换到新组时,之前和新 EEPROM 组的状态都会更新以反映新状态。

页面以类似的方式进行处理:保留每页的前 16 个字节(128 位),以确定状态是空、当前还是已使用。每当新数据写入页面时,前一页和新页的状态都会更新。

要将 EEPROM 组或页面标记为当前组或页面,可以向首个 64 位写入适当的状态代码。要将 EEPROM 组或页面标记为已满组或页面,可以向第二个 64 位写入适当的状态代码。

如页面布局中所示,所有页面都包含八字页面状态和可配置的数据空间量。第 0 页略有不同,因为该页面还包含 EEPROM 组状态。尽管仅显示了第 0 页和第 1 页,但应注意第 2 页至第 (N-1) 页与第 1 页相同。

 页布局图 3-4 页布局