the TMS570LS0714 FEE issue of Fapi_initializeFlashBanks function

Other Parts Discussed in Thread: TMS570LS0714, HALCOGEN

Hi TI,

when I fulfill the FEE module, I has stopped by the function of Fapi_initializeFlashBanks((uint32)TI_FEE_OPERATING_FREQUENCY), which TI_FEE_OPERATING_FREQUENCY=180.

The initialization can't pass the function of Fapi_initializeFlashBanks function. And the function is blong to TI F021 Flash Library, so I can't see more detail information of the function.

So,could you tell me something about this function and help me with this issue?

Thanks and regards,

  • Hello Zhenzhen,

    The TMS570LS0714 device has two packages: 144-pin PGE package and 100-pin PZ package. The 144-pin PGE package supports up to 160MHz system clock, but the maximum system clock frequency of the 100-pin PZ package is 100MHz.

    180Mhz is beyond this limitation.

    The wait state for FEE should be programmed correctly. If the system clock is 160MHz, the EWAIT be 9.

    Please refer to the device datasheet: SPNS226E

  • Hi Mr. Wang,

    The "180" is coming from Ti's document named FEE_Driver_userguide.pdf.

    Please check this document, maybe this "180" doesn't mean the system clock frequency.

    Besides, except this value, does any other variable could affected the returen value of this Fapi_initializeFlashBanks function? FEE_Driver_userguide.pdf

  • If right package is selected correctly, the FeeOperatingFrequency will become 100MHz. The wait states should be programmed correctly.

  • Hi Mr. Wang,

    We have tried 180, 160,100, they all stopped by Fapi_initializeFlashBanks function.

    So,could you give us another material to resolve this problem?

  • Hello Zhenzhen,

    EWAIT is not configured inside FEE EBTresos. It should be configured in customers startup code. If HALCoGen is used as startup code, it's configured in setupFlash( ) API in system.c file.
    FeeOperatingFrequency in EB GUI is not updated automatically using the PLL settings. You need to type a correct value manually. 
  • We have resolved the issue of Fapi_initializeFlashBanks function by fixing the bug of Ti's Mcal. Now we have a new issue of TI_Fee_Read.

    When we call the "TI_Fee_Read", it shows"TI_Fee_GlobalVariables[u8EEPIndex].Fee_u16JobResult = BLOCK_INVALID;", and we have been stopped by this snetence. At the same time the register value looks fine, so we don't know what's the root cause.

    There are two pics I want to post, but your new website is not allowed us to upload the pics, so I have send them to you by email.

  • Hi Zhenzhen,

    Is it possible for you to share the Bank7 data. Save it as coff file using CCS memory window, Save memory option.

    BTW, can you tell me how did you fix the bug in MCAL driver?

  • Hi QJ,

    We have saved Bank7 data and saved it as

    This is the screenshot of memory. 

    This is the start code of FEE. .

    For “bug fix in MCAL driver”, we just use the Halcogen to generate the code about flash and compare the code with the MCAL, then you can find something.

  • Hello Zhenzhen,

    The virtual sector is empty. Did you call Fee_Init(NULL_PTR) and Fee_MainFunction() before reading and writing?

  • Hi QJ,

    Fee_Init() is setted according to FEE mcal recomanded configuration, Fee_MainFunction() is period called back, FEE reading and writing periord is 1s.

  • After Fee_Init(), Fee_WriteAsync(), and Fee_ReadAsync(), the Fee_MainFunction() has to be called to complete the data operation. 

    If Fee_mainFunction() is not called after issue Fee_WriteAsync() command, the data is not updated onto the EEPROM, and Fee_readAsync() doesn't return the correct data.

    After you call Fee_Init(), the FEE global variables will be updated, but the header of the virtual sector are not completely updated (only 1st 64-bit is updated) without running Fee_MainFunction().