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 读取过程

Guru**** 2539500 points
Other Parts Discussed in Thread: TMS320F28375S

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/988539/tms320f28375s-eeprom-read-process

器件型号:TMS320F28375S

您好!

    我正在使用 TMS320F28375S 控制器, 在 SectorC (0x84000)上写入我的数据,其工作正常。 在内存  中,当我看到内存浏览器时,将正确的值放置在正确的位置。 当我

正在读回,很少有值是错误的。 下面我附加了内存浏览器与表达式窗口供您参考。

 

  • 值根据存储在内存中的值进行更改....  在重复的位置不会得到错误的值……在上面的图片中,第7,15,51,63位置是错误的……

  • 在上图第9、18、32个位置错误.........

  • 使用 uint16作为数据类型从内存检索数据.

  • 我用于从存储器读取数据的代码  

空 EEPROM_READ ()



 uint16 i;

 RESET_BANK_POINTER; // 重置 组 指针 以 启用 搜索  当前 组
 
 for (i=0;i<64;i++)
 Read_Buffer[i] = *(Bank_Pointer++);

 此致、

Rani

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [已删除]
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    马丁内斯

    我正在使用闪存存储数据....

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Rani、

    在读取代码中的闪存之前、您是否根据工作频率正确配置了等待状态?

    在读取代码中的闪存之前、请启用 ECC 检查、并查看在读取闪存时是否遇到任何 ECC 错误。

    此外、请尝试关闭任何存储器窗口、表达式窗口打开至闪存/ OTP、然后执行您的闪存读取代码、看看这是否会产生影响。

    谢谢、此致、
    Vamsi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Vamsi、

    [引用 userid="16728" URL"~/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/988539/tms320f28375s-eeprom-read-process/3652208 #3652208"]在读取代码中的闪存之前,您是否根据工作频率正确配置了等待状态?

                  添加了行 RWAIT=3;

    还会添加并检查 Waitdelay。

    [引用 userid="16728" URL"~/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/988539/tms320f28375s-eeprom-read-process/3652208 #3652208"]在读取代码中的闪存之前,请启用 ECC 检查,并查看读取闪存时是否遇到任何 ECC 错误。

                已启用 ECC、但没有错误。正在获取 Fapi_Status_Success。

    [引用 userid="16728" URL"~/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/988539/tms320f28375s-eeprom-read-process/3652208 #3652208"]请尝试关闭所有存储器窗口、向闪存/OTP 打开的表达式窗口,然后执行闪存读取代码,并查看这是否会产生影响。

                   但输出没有差异。

    此致、(&H)

    Rani

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Rani、

    感谢您的更新。

    您是否正在从闪存中执行的代码中读取闪存?  这是允许的、但需要了解以进行进一步分析。  请注意、RWAIT 应该只从 RAM 而不是从闪存进行配置。

    我看到"Expressions"窗口显示的数据不正确-当您在程序后验证该值时该怎么办?  它通过了吗?   

    启用 ECC 时、能否检查 ECC 寄存器以了解是否存在 ECC 错误?

    谢谢、此致、
    Vamsi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Vamsi、

         

    [引用 userid="16728" URL"~/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/988539/tms320f28375s-eeprom-read-process/3653229 #3653229">您是否从从闪存执行的代码中读取闪存?  [/报价]

               对不起,不能理解这个问题 ,你在这里的意思是什么... 从闪存执行代码..

    [引用 userid="16728" URL"~/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/988539/tms320f28375s-eeprom-read-process/3653229 #3653229"]请注意,RWAIT 应仅从 RAM 而不是从闪存进行配置。

               为了在 F2837xS_SYSCTRL.c 中提供给定的等待状态,我刚刚尝试过这种情况。

    [引用 userid="16728" URL"~/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/988539/tms320f28375s-eeprom-read-process/3653229 #3653229">在您完成编程后如何验证该值?  [/报价]

                之后也是错误的。 尝试将 LED 设置为发光 。 Beacuse 我存储在 READ_BUFFER[18]=50中。

    窗口显示16437。

    [引用 userid="16728" URL"~/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/988539/tms320f28375s-eeprom-read-process/3653229 #3653229"]启用 ECC 时,是否可以检查 ECC 寄存器以了解是否存在 ECC 错误?

             

      是的,它在84004显示为错误。

    高64位单位错误地址、低64位不可纠正 的错误地址

    错误位置

    错误中断标志

    用于下一组值:从0 (零)存储到  64.

       不正确的数据是5,9,17,33,53,57.....

                               

    2.当随机值存储在内存中时,

       错误数据为9、18、32...

               

    在读取 Value Memory 窗口之前和之后,还有一个点显示正确的数据... 在读取内存窗口时,在短时间内显示不正确的数据....

    谢谢、此致、

    Rani

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Rani、

    它指示 ECC 编程不正确。  请修复 ECC 问题。

    如果您对此有任何疑问、请告诉我。

    谢谢、此致、

    Vamsi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Vamsi、

       

    [引用 userid="16728" URL"~/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/988539/tms320f28375s-eeprom-read-process/3654543 #3654543"]它会告知 ECC 编程错误。  请修复 ECC 问题。[/quot]

             根据您之前的指导,在 EEPROM 仿真闪存扇区写入操作时,我没有使用 ECC。使用 DATAONLY 模式写入操作。 未使用 ECC ... 然后它如何显示 ECC 错误。

      我如何纠正这种情况

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Vamsi、

       

    [引用 userid="16728" URL"~/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/988539/tms320f28375s-eeprom-read-process/3654543 #3654543"]它会告知 ECC 编程错误。  请修复 ECC 问题。[/quot]

             根据您之前的指导,在 EEPROM 仿真闪存扇区写入操作时,我没有使用 ECC。使用数据仅模式写入操作。  

    如何纠正此问题? 请指导我清除 ECC 错误...

    谢谢、此致、

        Rani

      

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Rani、

    好的、您使用的是"仅数据"模式。   

    当您在该线程开始时看到您提到的原始问题时、ECC 检查(ECC_ENABLE 寄存器)是启用还是禁用?

    谢谢、此致、
    Vamsi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Vamsi、

        实际上,ECC 在读取和写入时被禁用。 在上一帖子中、您已要求在启用 ECC 后检查 ECC 寄存器。 以便我启用 ECC。

    当我同时禁用和启用了错误的数据时。

    谢谢、此致、

    Rani

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Rani、

    这是否可在多个器件中重现?

    此外、您能否确认是否使用闪存初始化函数从 RAM 配置了闪存等待状态?

    您提到了在程序失败后进行验证。  程序操作后的 FMSTAT 值是多少?

    谢谢、此致、

    Vamsi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Vamsi、

          感谢您的宝贵指导。

        这是我的错误, 错过 了代码中调用的函数(InitFlash_BANK0();)。

        我添加 了这个函数、调用它的工作正常。

    谢谢、此致、

    Rani

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Rani、

    很高兴它现在在工作。  请确保调用两个闪存组的初始化函数。

    谢谢、此致、

    Vamsi