SPRADE8A November   2023  – April 2024 TMS320F28P650DH , TMS320F28P650DK , TMS320F28P650SH , TMS320F28P650SK , TMS320F28P659DH-Q1 , TMS320F28P659DK-Q1 , TMS320F28P659SH-Q1

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. Introduction
  5. Difference Between EEPROM and On-Chip Flash
  6. Overview
    1. 3.1 Basic Concept
    2. 3.2 Single-Unit Method
    3. 3.3 Ping-Pong Method
    4. 3.4 Creating EEPROM Sections (Pages) and Page Identification
  7. Software Description
    1. 4.1 Software Functionality and Flow
  8. Ping-Pong Emulation
    1. 5.1 User-Configuration
      1. 5.1.1 EEPROM_PingPong_Config.h
      2. 5.1.2 F28P65x_EEPROM_PingPong.c
    2. 5.2 EEPROM Functions
      1. 5.2.1  EEPROM_Config_Check
      2. 5.2.2  Configure_Protection_Masks
      3. 5.2.3  EEPROM_Write
      4. 5.2.4  EEPROM_Read
      5. 5.2.5  EEPROM_Erase
        1. 5.2.5.1 Erase_Bank
      6. 5.2.6  EEPROM_GetValidBank
      7. 5.2.7  EEPROM_UpdateBankStatus
      8. 5.2.8  EEPROM_UpdatePageStatus
      9. 5.2.9  EEPROM_UpdatePageData
      10. 5.2.10 EEPROM_Get_64_Bit_Data_Address
      11. 5.2.11 EEPROM_Program_64_Bits
      12. 5.2.12 EEPROM_CheckStatus
      13. 5.2.13 ClearFSMStatus
    3. 5.3 Testing Example
  9. Single-Unit Emulation
    1. 6.1 User-Configuration
      1. 6.1.1 EEPROM_Config.h
      2. 6.1.2 F28P65x_EEPROM.c
    2. 6.2 EEPROM Functions
      1. 6.2.1  EEPROM_Config_Check
      2. 6.2.2  Configure_Protection_Masks
      3. 6.2.3  EEPROM_Write
      4. 6.2.4  EEPROM_Read
      5. 6.2.5  EEPROM_Erase
      6. 6.2.6  EEPROM_GetValidBank
      7. 6.2.7  EEPROM_Get_64_Bit_Data_Address
      8. 6.2.8  EEPROM_UpdateBankStatus
      9. 6.2.9  EEPROM_UpdatePageStatus
      10. 6.2.10 EEPROM_UpdatePageData
      11. 6.2.11 EEPROM_Get_64_Bit_Data_Address
      12. 6.2.12 EEPROM_Program_64_Bits
      13. 6.2.13 EEPROM_CheckStatus
      14. 6.2.14 ClearFSMStatus
    3. 6.3 Testing Example
  10. Application Integration
  11. Adapting to Other Gen 3 C2000 MCUs
  12. Flash API
    1. 9.1 Flash API Checklist
      1. 9.1.1 Flash API Do's and Do Not's
  13. 10Source File Listing
  14. 11Troubleshooting
    1. 11.1 General
  15. 12Conclusion
  16. 13References
  17. 14Revision History

EEPROM_Config.h

This header file contains definitions that allow the user to change various aspects of EEPROM configuration. These aspects include:

  • Define which device variant is being used. This allows EEPROM emulation in Flash Banks not common to all devices

// Un-comment appropriate definition if one of the following variants is being used
#define F28P65xDKx 1
//#define F28P65xSKx 1
//#define F28P65xSHx 1
  • Choose between Page Mode and 64-Bit Mode

//#define _64_BIT_MODE 1
#define PAGE_MODE 1
  • Choose which Flash Bank to use for emulation. The Flash API and program are stored/run from Flash Bank 0 by default, so it cannot be used for EEPROM Emulation. In general, the Flash API and program should be stored/run from a different bank than the ones used for EEPROM emulation.

#define FLASH_BANK_SELECT FlashBank1StartAddress
  • Define the Flash Sector size (unit is 16-bit words). This will vary based on the device being used, reference the appropriate data sheet for details.

#define FLASH_SECTOR_SIZE F28P65x_FLASH_SECTOR_SIZE
  • Define how many Flash sectors are in a Flash Bank. This will vary based on the device being used, reference the appropriate data sheet for details.

#define NUM_FLASH_SECTORS F28P65x_NUM_FLASH_SECTORS
  • Choose how many EEPROM Banks to emulate.

#define NUM_EEPROM_BANKS 4
  • Choose how many EEPROM Pages within each EEPROM Bank

#define NUM_EEPROM_PAGES 3
  • Choose the size of data contained within each EEPROM Page (unit is 16-bit words). Although any size can be specified, the size will be adjusted to the closest multiple of four that is greater than or equal to the size specified. For example, a specified size of 6 16-bit words per page will be programmed as 8 16-bit words per page, with the last two being treated as 0xFFFF. This is to comply with Flash requirements (8-bit ECC is programmed for every 64-bit aligned Flash memory address).

#define DATA_SIZE 64