SPRADE8A November 2023 – April 2024 F29H850TU , F29H859TU-Q1 , TMS320F28P650DH , TMS320F28P650DK , TMS320F28P650SH , TMS320F28P650SK , TMS320F28P659DH-Q1 , TMS320F28P659DK-Q1 , TMS320F28P659SH-Q1
As discussed earlier in the document, this guide uses the F28P65x to demonstrate the EEPROM Emulation functionality. However, this project can be adapted to other Gen 3 C2000 MCUs by making small changes to macros and function definitions. To show this, this section discusses the changes required to use the F280013x.
First and foremost, it should be noted that F280013x only has one Flash Bank as opposed to the five within certain F28P65x devices. Thus, the CPU1_RAM Build Configuration should be used instead of the CPU1_FLASH Build Configuration. This is necessary because the Flash API cannot be executed on the same Flash Bank in which it is contained.
Additionally, the default configuration contained in the EEPROM_Config.h file uses device specific values to create definitions and macros. These should be updated to the values found in the TMS320F280013x Real-Time Microcontrollers Data Sheet. In the case of the F280013x, these values happen to be the same as the default configuration for the F28P65x, but these values should always be verified with the device-specific data sheet.
#define FLASH_BANK_SELECT 0x80000
#define FLASH_SECTOR_SIZE 0x400
#define NUM_FLASH_SECTORS 128
These values are important for error-checking within EEPROM_Config_Check as well as defining the beginning/end address of EEPROM Emulation.
Finally, the EEPROM_Config_Check() function needs to be modified when using the F280013x. By default, Flash Bank 0 is reserved for storing the Flash API, and the function will throw an error if this Flash Bank is selected for EEPROM Emulation. However, since the CPU_1_RAM Build Configuration is selected, Flash Bank 0 is now available for EEPROM Emulation. Thus, these lines should be removed or commented out in the function.
if (FLASH_BANK_SELECT == FlashBank0StartAddress)
{
return 0xFFFF;
}
While the changes required for using the F280013x are relatively simple, using other Gen 3 C2000 MCUs can require more changes. For a list of available projects, see the Troubleshooting section.