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.

TMS320F28375S: EEPROM-Read process

Part Number: TMS320F28375S

Hi,

       I am using TMS320F28375S controller ,  Writing My data on SectorC (0x84000) its working fine . In memory correct values are  placed at correct location while i am seeing  memory browser . When i

am reading back , few of values are wrong . below i have attached memory browser vs Expression windows for your reference.

 

  • Values are get changed based on values stored in memory .... wont get  wrong values in repeated locations ....In above picture 7th,15th ,51th ,63rd position are wrong ...

  • In above picture 9th,18th,32rd positions are wrong .......

  • using Uint16 as data type to retrieve data from memory ..

  • Code which i have used to read data from memory 

void EEPROM_Read()
{


 Uint16 i;

 RESET_BANK_POINTER; // Reset Bank Pointer to enable search for current Bank
 
 for(i=0;i<64;i++)
 Read_Buffer[i] = *(Bank_Pointer++);

}

 Regards,

Rani

  • Martinez,

    I am using flash memory to store my data....

  • Rani,

    Before reading the flash in your code, did you configure the wait states correctly as per the operating frequency?

    Before reading the flash in your code, please enable ECC check and see if you get any ECC errors while reading flash.

    Also, please try closing any memory windows, expression windows open to flash/OTP and then execute your flash read code and see if that makes a difference.

    Thanks and regards,
    Vamsi

  • Vamsi,

    Before reading the flash in your code, did you configure the wait states correctly as per the operating frequency?

                   added the line  RWAIT=3;

    Waitdelay is also added and checked.

    Before reading the flash in your code, please enable ECC check and see if you get any ECC errors while reading flash.

                 Enabled the ECC, But there is no error .Getting  Fapi_Status_Success.

    please try closing any memory windows, expression windows open to flash/OTP and then execute your flash read code and see if that makes a difference.

                    Done this but no difference in output.

    Thanks &Regards,

    Rani

  • Rani,

    Thank you for the update.

    Are you reading flash from the code executing from flash?  This is allowed- but want to know for further analysis.  Note that RWAIT should be configured only from RAM and not from flash.

    I see that the expressions window is showing incorrect data - how about when you verify the value after program?  Does it pass fine?   

    When you enable ECC, can you check the ECC registers to know if there is an ECC error?

    Thanks and regards,
    Vamsi

  • Vamsi,

         

    Are you reading flash from the code executing from flash? 

                sorry ,couldn't understand the question  what you mean here... Actually executing code from flash ..

    Note that RWAIT should be configured only from RAM and not from flash.

                To provide a wait state given this in F2837xS_SysCtrl.c , so i have just tried this .

    how about when you verify the value after program? 

                 After that also incorrect only. Try to make LED as glow  . Beacuse i am storing in Read_buffer[18]=50.

    Window shows 16437.

    When you enable ECC, can you check the ECC registers to know if there is an ECC error?

             

       Yes its show at 84004 as error .

    Upper 64 bit single bit error address,Lower 64 bit uncorrectable  Error address

    ERROR POSITION

    ERROR INTERRUPT FLAG

    1.This is for next Set of values : storing from 0(Zero ) to  64.

        Incorrect data are 5,9 ,17,33,53,57.....

                               

    2. When Random values are stored at memory ,

        Incorrect data are at 9,18,32...

               

    one more point , before and after reading the value memory window show correct data ... while reading memory window show incorrect data for short time ....

    Thanks & Regards,

    Rani

  • Rani,

    It tells that ECC is programmed incorrectly.  Please fix the ECC issue.

    Let me know if you have any questions on that.

    Thanks and regards,

    Vamsi

  • Vamsi,

       

    It tells that ECC is programmed incorrectly.  Please fix the ECC issue.

             I  am not using ECC while writing on EEPROM EMULATION flash sector .As per your earlier guidance using DATAONLY mode to write operation . Not using ECC ... Then how its shows ECC error .

       How can i rectify that

  • Vamsi,

       

    It tells that ECC is programmed incorrectly.  Please fix the ECC issue.

             I  am not using ECC while writing on EEPROM EMULATION flash sector .As per your earlier guidance using dataonly mode to write operation . 

    How to rectify this ? Please guide me to clear the ECC error....

    Thanks & Regards,

         Rani

      

  • Rani,

    Ok, you are using Data only mode.  

    When you saw the original problem that you mentioned at the start of this thread, is ECC check (ECC_ENABLE register) enabled or disabled?

    Thanks and regards,
    Vamsi

  • Vamsi,

         Actually ECC is disabled while reading and writing . In previous post you have asked to check the ECC register once enable the ECC. So that I have enabled ECC.

    When I am disable and enable at both the time getting wrong data .

    Thanks & Regards,

    Rani

  • Rani,

    Is this reproducible in multiple devices?

    Also, could you confirm whether or not you configured the flash wait-states from RAM using flash initialization function?

    You mentioned verify after program did not succeed.  What is the FMSTAT value after program operation?

    Thanks and regards,

    Vamsi

  • Vamsi,

           Thank you for your valuable guidance .

         Its my mistake ,  Missed the  function (InitFlash_Bank0();) calling in my code.

         When i added  this function calling its works fine.

    Thanks & Regards,

    Rani

  • Rani,

    Glad it is working now.  Please make sure to call the initialization function for both flash banks.

    Thanks and regards,

    Vamsi