ZHCAEZ9A February   2025  – August 2025 MSPM0C1103 , MSPM0C1103-Q1 , MSPM0C1104 , MSPM0C1104-Q1 , MSPM0C1105 , MSPM0C1106 , MSPM0C1106-Q1 , MSPM0G1105 , MSPM0G1106 , MSPM0G1107 , MSPM0G1505 , MSPM0G1506 , MSPM0G1507 , MSPM0G1518 , MSPM0G1519 , MSPM0G3105 , MSPM0G3105-Q1 , MSPM0G3106 , MSPM0G3106-Q1 , MSPM0G3107 , MSPM0G3107-Q1 , MSPM0G3505 , MSPM0G3505-Q1 , MSPM0G3506 , MSPM0G3506-Q1 , MSPM0G3507 , MSPM0G3507-Q1 , MSPM0G3518 , MSPM0G3518-Q1 , MSPM0G3519 , MSPM0G3519-Q1 , MSPM0H3216 , MSPM0H3216-Q1 , MSPM0L1105 , MSPM0L1106 , MSPM0L1116 , MSPM0L1117 , MSPM0L1227 , MSPM0L1227-Q1 , MSPM0L1228 , MSPM0L1228-Q1 , MSPM0L1303 , MSPM0L1304 , MSPM0L1304-Q1 , MSPM0L1305 , MSPM0L1305-Q1 , MSPM0L1306 , MSPM0L1306-Q1 , MSPM0L1343 , MSPM0L1344 , MSPM0L1345 , MSPM0L1346 , MSPM0L2227 , MSPM0L2227-Q1 , MSPM0L2228 , MSPM0L2228-Q1

 

  1.   1
  2. 1说明
  3. 2所需外设
  4. 3设计步骤
  5. 4设计注意事项
  6. 5软件流程图
  7. 6应用代码
  8. 7其他资源
  9. 8修订历史记录
  10.   商标

设计步骤

  1. 添加 EEPROM 仿真库。MSPM0 软件开发套件 (SDK) 包含 EEPROM 仿真库。
    注: EEPROM 仿真库基于闪存 API,因此也需要 SDK 中的 drivelib
    对于 B 型,需要包含以下文件:
    1. eeprom_emulation_type_b.c
    2. eeprom_emulation_type_b.h
    MSPM0L1306, MSPM0G3507, MSPM0C1104 EEPROM
                            仿真文件图 3-1 EEPROM 仿真文件
  2. 在 eeprom_emulation_type_b.h 代码中添加包含路径。MSPM0L1306, MSPM0G3507, MSPM0C1104

    用户可以修改 eeprom_emulation_type_b.h 中的起始地址、组数(至少两个)和一个组中的扇区数(至少一个)。用于 EEPROM 仿真的默认闪存地址为 0x00001400,默认使用六个扇区(分三组,每组两个扇区),因此占用 0x00001400-0x00002bff。

    1. #define EEPROM_EMULATION_ADDRESS (0x00001400)
    2. #define EEPROM_EMULATION_GROUP_ACCOUNT (3)
    3. #define EEPROM_EMULATION_SECTOR_INGROUP_ACCOUNT (2)
  3. 添加 initialize 函数(在 main() 开头),通常在 SYSCFG_DL_init() 之后。这样就可以正确格式化相关的闪存区域并正确分配全局变量,以跟踪活动组和最新数据项。
    • EEPROMEmulationState = EEPROM_TypeB_init();
    MSPM0L1306, MSPM0G3507, MSPM0C1104 EEPROM
                            仿真初始化图 3-2 EEPROM 仿真初始化
  4. 使用 EEPROM_TypeB_write 通过 16 位标识符写入 32 位数据。
    • EEPROMEmulationState = EEPROM_TypeB_write(var_id, var_data);
    MSPM0L1306, MSPM0G3507, MSPM0C1104 EEPROM
                            仿真写入图 3-3 EEPROM 仿真写入
  5. 使用 EEPROM_TypeB_readDataItem 根据输入标识符读取数据。
    • var_data_read = EEPROM_TypeB_readDataItem(var_id);
    MSPM0L1306, MSPM0G3507, MSPM0C1104 EEPROM
                            仿真读取图 3-4 EEPROM 仿真读取
  6. 根据 gEEPROMTypeBEraseFlag 添加擦除函数。再次写入数据之前需要擦除闪存,擦除的最小单位为扇区。对于 EEPROM 仿真 B 型,在一个组已满后,设置 gEEPROMTypeBEraseFlag。用户可以根据标志调用 EEPROM_TypeB_eraseGroup()。例如,在步骤 4 中的 EEPROM_TypeB_write() 之后添加以下代码。用户还可以根据需要选择一个适当的时间点来擦除整个组。
    • EEPROM_TypeB_eraseGroup();
    MSPM0L1306, MSPM0G3507, MSPM0C1104 EEPROM
                            仿真擦除图 3-5 EEPROM 仿真擦除

完成步骤一到步骤后,就在应用中实现了 EEPROM 仿真 B 型。请参阅 节 5 了解流程。