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.

[参考译文] TMS570LS3137:关于 EEPROM 访问

Guru**** 1083210 points
Other Parts Discussed in Thread: HALCOGEN, TMS570LC4357, TMS570LS3137
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1194544/tms570ls3137-regarding-eeprom-access

器件型号:TMS570LS3137
主题中讨论的其他器件:HALCOGENTMS570LC4357

你好。

IAM 正在处理 EEPROM 读取示例。我的配置如下

1.虚拟扇区的数目为2

2.块数为1

块大小为8字节  

IAM 尝试仅存储一个整数值、即压力值到存储器中、但它同时存储压力和温度。、

请帮助您爱上它。

谢谢  

注:示例和存储器布局位于下图中  

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

    您好 Surya、

    如果只想存储一个整数的数据、则必须将块大小保持为4字节、声明两个块来存储温度和压力、并将块-1用于存储温度、而块-2用于存储压力。 您可以调用相应的块来存储相应参数的数据。

    --

    谢谢、此致、
    Jagadish。

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

    非常感谢您的回复。

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

    尊敬的先生:  

    当 IAM 将压力值再次写入块时,它将到达该行。如果块已满,我们是否需要编写一些函数来覆盖块中的数据。,或者它将自动覆盖数据?


    TI_fee_WriteAsync (BlockNumber、&presse_value);
    操作

    TI_fee_MainFunction();
    delay();
    STATUS=TI_FEE _GetStatus (0);

    while (状态!=空闲);
    BlockNumber = 0x2;
    TI_fee_WriteAsync (BlockNumber、&temp_value);
    操作

    TI_fee_MainFunction();
    delay();
    STATUS=TI_FEE _GetStatus (0);

    while (状态!=空闲);
    presse_value = 120;
    BlockNumber = 0x1U;
    TI_fee_WriteAsync (BlockNumber、&presse_value);    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 此处是编译器结构  


    操作

    TI_fee_MainFunction();
    delay();
    STATUS=TI_FEE _GetStatus (0);

    while (状态!=空闲);

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

    我不了解存储器位置,前32个字节用于虚拟扇区标头,后24个字节用于数据块标头,但在存储器中,它首先显示数据标头旁边的数据? 其中有什么问题,请您解释一下吗?

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

    您好 Surya、

    您的数据看起来令人困惑、我在此处附上我的代码、请仔细检查一下、并使用我的参考代码验证您的配置和代码。

    e2e.ti.com/.../FEE_5F00_TEST_5F00_LC4357.zip

    我还在上面的代码中添加了两个读取函数、除了剩余的所有内容都与您的代码相匹配、

    使用上述代码、我将以下数据写入闪存组7

    在上面的数据中、黄色表示虚拟扇区标头、蓝色表示压力传感器数据、如块1、红色表示温度传感器数据、如块2。

    我怀疑您第一次错误地进行了配置是不是吗? 您是否在修改配置和代码后完全擦除闪存?

    如果不是、请确保在对  HALCoGen 中的 FEE 块或扇区立即执行新配置后、首次擦除整个闪存。

    这是擦除整个闪存的选项

    注意:我在 TMS570LC4357上创建了项目、而不是 在 TMS570LS3137中创建了项目。

    --

    谢谢、此致、
    Jagadish。  

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

    尊敬的先生:  

    仔细检查您的代码并进行必要的更改、我在存储器中获得了与您的样本相同的数据、之后 IAM 尝试覆盖块值中的数据、即、 压力值设为“其他”,但为什么它不覆盖块1中的数据,为什么要将数据存储在另一个位置,如下所示?

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

    您好 Surya、

    [引用 userid="551680" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1194544/tms570ls3137-regarding-eeprom-access/4505527 #4505527"]向其他方推压值,但为什么它不覆盖块1中的数据,为什么它存储在下面所示的其他位置?

    不要混淆、这只是预期行为。 它不是实际的 EEPROM、而是闪存仿真的 EEPROM。 这里的数据不会被覆盖、这里的最小擦除大小仅为扇区。 因此、在这里、当您向块写入一些新数据时、它将再次存储在新的存储器位置、而不是覆盖旧的存储器位置、 但是 、写入的数据 将被标记为无效数据、新数据将被标记为有效数据、因此每当您再次请求获取某个数据块时、FEE 驱动器将仅向您提供最新的有效数据。

    请使用块编号验证读取函数、以清楚了解上述行为。

    写入一定数量后、虚拟扇区将完全填充、此时所有之前的有效数据将被复制到新的虚拟扇区中、旧的虚拟扇区将标记为擦除操作。

    我希望这澄清了你的疑问。

    --

    谢谢、此致、
    Jagadish。

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

    非常感谢 您的回复。  

    我现在了解一切