This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320F28388D: Compatibility of EEPROM Emulation Code from C2000Ware 5.02.00.00 with C2000Ware 4.00.00.00 Drivers

Part Number: TMS320F28388D
Other Parts Discussed in Thread: C2000WARE

Tool/software:

Hello Team, 

 and 

We want to add the EEPROM emulation feature to our application but we are currently using C2000Ware 4.00.00.00. The example code for EEPROM emulation is available in C2000Ware 5.02.00.00 at below path. 

1. Can we copy the EEPROM library and code from C2000Ware 5.02.00.00 and use them with the drivers from C2000Ware 4.00.00.00? Will there be any compatibility issues?

2. We are using the F28388D microcontroller for our application development. If we want to port the example code to the F28388D microcontroller, which example should we use for reference: F28P65x_EEPROM_Example or F28003x_EEPROM_Example?

3. In addition to the configuration file, there are a few more changes in the driver files. If you could suggest which example code to refer to, it would be helpful.

4. As per the document, Flash Bank 0 cannot be used for EEPROM emulation. However, the F28388D microcontroller has only one flash bank for each CPU (one for CPU1 and one for CPU2). Multiple places in the library example files check for Flash Bank 0, 2, etc. which causes compilation errors.

5. Where will I get FAPI_F2838xx.lib file.

Related Post: TMS320F28388D: TMS320F28388D - How to use onboard Flash memory as EEPROM? - C2000 microcontrollers forum - C2000Tm︎ microcontrollers - TI E2E support forums

Thanks, 

Vikram Tathe

  • Hi Vikram,

    I recommend installing the most recent version of C2000Ware (5.02.00.00) to use these examples. There will be compatibility issues if you just copy and paste them (support for F28P65x was added in 5.00.00.00).

    When porting the EEPROM Emulation examples over to F2838x, there isn't a significant advantage in referring to the F28P65x example or F28003x example. I recommend looking at the Flash Memory Map in the datasheet to see what device configuration/checks need to be modified for F2838x. You will have to adjust parameters such as Flash sector size, number of flash sectors per bank, etc. As you noted, there is only one flash bank on the F2838x so you will have to use RAM build configuration. The Flash API cannot be run from the same flash bank that it is programming/erasing. 

    Kind regards,

    Skyler

  • Hello 

    Thank you for your response.

    1. When I use C2000Ware_5_02_00_00\libraries\flash_api\f28003x\lib\FAPI_F28003x_EABI_v1.58.10.lib with the F2838x microcontroller, the code compiles successfully. However, if I use C2000Ware_5_02_00_00\libraries\flash_api\f2838x\c28x\lib\F2838x_C28x_FlashAPI.lib, it throws errors indicating that a few functions are undefined (e.g., Fapi_issueBankEraseCommand). The below declaration is missing in F021.h file.

    extern Fapi_StatusType Fapi_issueBankEraseCommand(
                                              uint32 *pu32StartAddress,
                                              uint16 oSectorMask										  
                                              );

    Can I use FAPI_F28003x_EABI_v1.58.10.lib and F021.h files with the F2838x microcontroller? If not, could you please help me generate the FAPI_F2838x_EABI_v1.58.10.lib file for EEPROM emulation?

    Could you please help us to find what needs to be added or deleted in the linker file (Especially RAM linker file) to use EEPROM emulation? If you have a document guide, could you please share it?

    Regards,

    Vikram Tathe

  • Hi Vikram,

    There is no Fapi_issueBankEraseCommand in the F2838x Flash API. You should use the Flash API that corresponds to the device, so you cannot use the F28003x Flash API to implement EEPROM Emulation on F2838x. Please refer to the Flash API Guide to see which functions are supported by the F2838x Flash API, and adapt the example to use only these functions. 

    You should use one of the linker files available in C2000Ware to start. They can be found at C2000Ware_5_02_00_00\device_support\f2838x\common\cmd

    Kind regards,

    Skyler

  • Hello

    Thank you for your response.