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.

[参考译文] TMS570LC4357:OTP 问题

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1628037/tms570lc4357-otp-questions

器件型号: TMS570LC4357

有一些问题、我在参考手册或数据表(这些都非常详细!)的这里找不到答案。

所以在此处找到示例:

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1275733/faq-tms570lc4357-examples-and-demos-for-hercules-controllers-e-g-tms570x-rm57x-and-rm46x-etc/5045583

其中、代码从 RAM 运行 — 我想这是因为 OTP 似乎实际上位于闪存(组 0 或 1)中、您无法写入到正在读取的同一个组? 不同于在银行 7 中的费用,您可以从银行 0 或 1 执行书写代码。

我知道为 AJSM 保留了前 16 个字节 (0xF0000000-0xF000000F)。 因此必须避免在此处写入。

我最不清楚的一点是、您是否可以多次写入 4K 字节的 OTP 组? 例如、在 0xF0000010 写入 8 个字节、然后在 0xF0000020 写入 8 个字节?

你能覆盖你写给的东西,以“清除它“吗? 例如、用 0 覆盖写入 0xF0000010 的 8 个字节(因此将任何 1 更改为 0)。 我怀疑这会扰乱 ECC 吗?

谢谢!

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

    相关说明中的示例中包含闪存操作后的以下内容(引导加载程序代码中也包含该操作):

            while( FAPI_CHECK_FSM_READY_BUSY == Fapi_Status_FsmBusy );
            while(FAPI_GET_FSM_STATUS != Fapi_Status_Success);

    第二个需要存在吗?

    第一个没有等到操作完成、第二个没有提供结果吗? 我们真的需要继续等待吗?

    基本上,我更希望操作失败与错误代码,而不是 while (1) 永远!

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

    您好、Paul:

    我最不清楚的一点是、您是否可以多次写入 4K 字节的 OTP 组? 例如、在 0xF0000010 写入 8 个字节、然后在 0xF0000020?
    写入 8 个字节。

    是的、您可以这样做!  

    您可以进行多种写入、如 8 个字节和另外 8 个字节等

    您能否覆盖您写给的内容以“清除它“? 例如、用 0 覆盖写入 0xF0000010 的 8 个字节(因此将任何 1 更改为 0)。 [/报价]

    您也可以执行此操作;您可以对同一位置执行第二次写入、并且可以更改一些在第一次迭代时未写入 0 的 1。

    我怀疑这会扰乱 ECC 吗?

    我想你也是对的。 ECC 可能会一团糟。 我从未实际测试过、但我认为这可能会发生。

    [引述 userid=“606822" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1628037/tms570lc4357-otp-questions/6276804

    第二个需要存在吗?

    第一个没有等到操作完成、第二个没有提供结果吗? 我们真的需要继续等待吗?

    [/报价]

    第一个与 FSM 状态机相关、第二个与确切的按操作状态相关。

    我认为这将是好的,保持两个心怀,以正确终止。

    此外、我可以看到所有示例都是相同的条件。

    --

    此致、
    Jagadish。

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

    和以往一样,许多人感谢 Jagadish。

    [引用 userid=“524805" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1628037/tms570lc4357-otp-questions/6277440

    第一个与 FSM 状态机相关、第二个与确切的按操作状态相关。

    我认为这将是好的,保持两个心怀,以正确终止。

    [/报价]

    问题当然是、如果出现问题、您将永远存在。 我想我需要改变它。 超时或训练、表示完成但失败的位数。

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

    也许可以等待 Cstat 位?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您也可以执行此操作;您可以在同一位置执行第二次写入操作、并可以更改某些 1、这些 1 在第一次迭代时未使用 0 写入。

    只是尝试了这个、但我 设置了 INVDAT(无效数据:0->1 更改)位。 我的写入值全部为 0、因此 ECC 部分必须尝试将 1 写入 0。

     这似乎是一个禁忌。

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

    您好、Paul:

    [引述 userid=“606822" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1628037/tms570lc4357-otp-questions/6277785

    只是尝试了这个、但我 设置了 INVDAT(无效数据:0->1 更改)位。 我的写入值全部为 0、因此 ECC 部分必须尝试将 1 写入 0。

     这似乎是一个禁忌。

    [/报价]

    我没有得到这个、您能告诉我 INVDAT 的确切设置位置吗? 如果你能够提供一些屏幕截图,这将更有助于理解它。

    --

    此致、

    Jagadish。

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

    尝试将 0x00000000 写入地址 0xF000024

    代码几乎就是上面提到的示例代码

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

    您好、Paul:

    我做了测试在我的结束,它工作正常。

    在我的第一次迭代我做到了这一点:

    我在位置 0xF0000020 上写入 0xFEFEFE。

    然后在我的第二次迭代中,我写了 0xFCFCFCFC 在同一个位置,它替换了我以前的数据 0xFEFEFE 如下所示:

    这意味着我也可以在 OTP 部分写入多次。

    下面是我的编写 API 代码可供您参考:

    我将附上我的完整项目供您参考:

    e2e.ti.com/.../Customer_5F00_OTP_5F00_Write_5F00_Test_5F00_RM57x.zip

    注意:这次我在 RM57x 器件上进行了测试、因为目前我没有 LC4357 板、除了一些微小的差异、这些器件之间非常接近。 因此、也请在您的器件上遵循相同的模式。

    --
    此致、
    Jagadish。