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.

[参考译文] TMS320F28075:从代码中读取器件系列或确切 PN

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1342306/tms320f28075-reading-device-family-or-exact-pn-from-codes

器件型号:TMS320F28075

尊敬的专家:

我的客户制作自己的串行闪存编程工具。 他们希望在闪存内核中读取器件系列、以确认内核在正确的器件上运行。  

通常、一个系列的闪存内核无法在其他系列的器件上正常运行、 他们想要的特性更像是失效防护、以防内核与不正确的器件发生某种程度的兼容。

如何从闪存内核中获取器件系列?

 C2000 唯一器件编号(修订版 B)(TI.com) 唯一器件编号似乎不包括该系列。

此致、

挂起。

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

    尊敬的 Hang:

    由于存在闪存内核、因此无法获取器件系列。 可以实现的方法 是在内核和主机之间进行检查、以查看  发送的器件命令是否在主机编程器和闪存内核之间匹配(如果使用的是对 SCI 闪存内核/主机编程器的修改)。 这个器件可以是一个被发送的命令、此命令包含一个系列的编号器件、如果此系列在器件上看到的器件内核中不匹配、程序应该终止。  

    相关指导、您可以查看串行闪存主机编程器数据包构造中的命令(例如 DFU CPU1)、并了解 SCI 闪存内核如何接受此命令。  

    谢谢。此致、

    查尔斯

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

    尊敬的 Charles:

    感谢您的建议。 此方法可以确保内核文件与主机编程器匹配。 不过、在另一种情况 下、器件与内核不匹配。 例如、当在主机编程器和 f2807x 内核与 app 上使用 f807x 设置时、他们抓取错误的板并将 f28p65x 连接到串行端口、通过这种方法、如果内核与 f28p65x 以某种方式兼容、主机和内核之间的检查将通过、 而 f2807x 应用程序将刷写到 f28p65x。  有没有办法防止这种情况?

    谢谢。

    挂起、

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

    尊敬的 Hang:

    您需要的是在内核在错误的器件上执行/失败之前阻止通信。 对于这种情况、在引导加载程序下载内核之前需要提供或检查 PN 代码。 SCI 闪存主机编程器与 SCI 引导加载程序连接以执行自动波特、因此防止这种情况超出 当前主机的范围。  

    谢谢。

    查尔斯  

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

    尊敬的 Charles:

     在刷写应用程序时中止闪存也是可以接受的、在内核执行/失败之前不必中止。 如果内核出现故障、没问题、因为应用程序不会刷新、可通过对主机进行一些超时检查来检测。

    简而言之、我们只需要确保在不正确的器件上刷写失败。 内核通常会在不正确的器件上发生故障、这很好、但无法100%确定、因此我们必须确保它在以后的过程中发生故障。 有什么方法可以做到这一点吗?

    此致、

    挂起

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

    尊敬的 Hang:

    正如 上面在我的原始答复中所建议的那样,在内核方面(CCS) 你可以首先编辑 SCI_GetFunction (),然后调用任何函数,以查找该器件的 UID 位置的 UID 值,并将该值放入变量中。 然后应将 UID 数据发送回主机编程器。 在在提示符处接收用户命令之前、还需要修改主机以将命令与作为命令数据包一部分的已知 UID 位置数据进行比较。 如果两者不匹配、主机可以打印错误消息(例如"不兼容的器件")并退出。

    谢谢。

    查尔斯