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.

[参考译文] TMS320F28388D:XF28388DZWTS — 使用第三方编程器对器件进行编程

Guru**** 2576215 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1560519/tms320f28388d-xf28388dzwts---programming-the-device-using-third-party-programmer

器件型号:TMS320F28388D
主题:C2000WARE 中讨论的其他器件

工具/软件:

您好、  

您能否分享有关如何对器件的闪存和 OTP 进行编程的指南?

我看了 CCS 示例文件、 我看到它适用于 176 QFP 封装。 有没有针对 337 BGA 封装的单独认证、

我不熟悉此设备。 您能否介绍一下 使用第三方编程器对器件闪存和 OTP 进行编程的步骤。 谢谢!

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

    尊敬的 Vigita:

    使用第三方编程器对器件的闪存和 OTP 进行编程的步骤会因使用的第三方编程器而异。 您希望继续使用哪个第三方编程器?  

    谢谢。此致、

    Charles

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

    BPM Microsystem 的编程器

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

    尊敬的 Vigita:

    我已经查看了 BPM Microsystem 器件搜索 、结果显示支持 TMS320F28386DPTPQ 器件。 如果您使用的是 F28388D 器件型号、则其应该能够以类似的方式进行编程。  编程器快速入门指南 详细介绍了如何 将编程器用于 2,900,2900L 和 19000 器件。

    谢谢。此致、

    Charles

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

    是的、我们知道可以支持 176QFP 器件、但 BGA 模块设计与 QFP 设计略有不同、QFP 是旧支持、但我们无法找到有关如何支持该器件的说明。 请帮助我们。

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

    尊敬的 Vigita:

    请与我的团队核实。

    谢谢。此致、

    Charles

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

    尊敬的 Vigita:

    您能详细解释一下 QFP 和 BGA 设计与您的编程用法之间的差异吗? 它们应使用相同的裸片。 另外、您尝试使用什么特定的 BPM Microsystems 编程器?

    谢谢。此致、

    Charles

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

    我们需要支持第 8 代和第 9 代。

    我看到、我们已经支持的 QFP 封装使用并行引导 IO 并使用前 8 个 GPIO 引脚进行通信。

    由于我们已经支持 QFP 封装、因此计划通过使用 BGA 器件的等效引脚、使用为该器件编写的引导代码。

    现在、完成的 BGA 模块设计略有不同。 在当前的 BGA 模块设计中、我没有看到对前 8 个 GPIO 引脚的访问。

    现在、我无法使用已有的引导代码。

    我找到了支持的 QFP 封装的 flashapi_ex1_programming 文件夹。 我把它附在这里。  

    现在、当我尝试在 CCS 中构建此文件夹以查看.S19 输出是否与算法中使用的相同时、我会看到构建失败。

    我有点卡在这一步、需要您的指导。 如果我们缺少任何步骤、请协助我们并向我们解释。 谢谢!

    e2e.ti.com/.../flashapi_5F00_ex1_5F00_programming_2D00_20250915T071135Z_2D00_1_2D00_001.zip

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

    尊敬的 Vigita:

    我认为给定闪存 API 示例的构建结构发生了变化。 您能否下载最新版本的 C2000Ware 并尝试为此器件生成工程?

    谢谢。此致、
    Charles

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

    我有 CCS 20.2.0。 我在本地创建了文件夹。 已添加到工作区中。

    然后转到“File"->"Import Project"“ Project"。“。</s>“ 浏览

    这是正确的路径“C:\ti\c2000\C2000Ware_6_00_00\driverlib\f2838x\examples\c28x\flash\ccs“吗?

    选择这条路径后、我会看到加载了三个工程。 我是否只需要选择 flashapi_ex1_programming?

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

    尊敬的 Vigita:

    是的、您只需选择  flashapi_ex1_programming 示例并将该工程导入工作区。

    谢谢。此致、

    Charles

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

    好的。 已完成。 下一步是什么?

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

    下一步是配置 为此工程生成的输出。 这可以通过转到来完成:

    1.在 CCS 中右键点击工程并转至 Properties 选项卡。

     2.启用 C2000 Hex Utility。

    3.转至 C2000 Hex Utility Output Format Options(C2000 十六进制实用程序输出格式选项) 、然后选择 Motorola S hex 选项以生成 .S19 记录输出文件。

    需要这种 .S19 格式的算法在 BPM Programmer 软件中?

    谢谢、

    Charles

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

    好的。 这就是我所做的。

    我导入了 flashapi_ex1_programming

    我选择了 Motorola m3 格式

    我没有更改文件中的任何内容

    然后我进行了构建。

    我没有看到任何.S19 生成。

    ‘s我更新了“指定输出文件名“

    我又做了一次构建。 我在设备文件夹中看到.S19 文件

    这就是我现在所理解的。

    我将 gpio72 和 gpio84 设置为低..并行引导模式

    然后使用 GPIO 89 90 58 59 60 61 62 88 将引导代码发送到器件。 我将使用 GPIO 91 和 92 作为我的编程器和器件之间的通信信号。

    请告诉我我我的理解是否正确。 谢谢!

    接下来的步骤是什么。

    如何编写代码来擦除、编程、读取闪存? 我应该发送什么命令、以及我应该使用哪些引脚来与闪存进行发送和接收?

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

    尊敬的 Vigita:

    很高兴您能够生成.S19  记录格式。  该闪存 API 示例介绍了闪存 API 用于擦除和编程的可能操作。

    >我将 gpio72 和 gpio84 设置为低..并行引导模式。  然后使用 GPIO 89 90 58 59 60 61 62 88 将引导代码发送到器件。 我将使用 GPIO 91 和 92 作为我的编程器和器件之间的通信信号。

    因此、您是使用并行引导模式和 BPM 编程器将闪存 API 示例发送到器件? 第 9 代 BPM 编程器指南 未明确说明所需的器件引导模式。  我以前没有使用过这个编程器、但可以详细了解它。 如果您能够查看并确认发送的代码、则这可能是正确的方法。  

    >如何执行此代码以擦除或编程或读取闪存? 我应该发送什么命令、以及我应该使用哪些引脚来与闪存进行发送和接收?

    您可以参阅 F28388D 器件的闪存 API 指南 、了解有关闪存编程命令的更多信息。

    您还声明、希望使用引脚在闪存之间发送和接收数据。 您是否打算将其用作并行引导通信上的闪存内核? 如果是、则是否需要通过所用的相同并行引导 GPIO 发送数据? 如果是、该内核是否会与 BPM 软件编程器通信? 此处需要做一些澄清。

    谢谢。此致、

    Charles

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

    让我解释一下在我们已经支持的 QFP 封装的 ALGO 下可以看到的内容。  

    有一个.S19 文件被转换为数组(我假设这是引导代码)。

    使用我们的编程器、我看到我们在编程器端执行以下操作、  

    1.  gpio72 gpio84 设置为低电平

    2. gpio91 悬空。 gpio92 较高。

    3.对于每一个词:

    3.1.对于 LSB 字节、我们检查来自器件的 gpio91 是否为低电平。 如果为低电平、我们通过  GPIO 89 90 58 59 60 61 62 88 引脚发送字节并将 gpio92 设置为低电平。  然后检查 gpio91 是否为高电平、如果为高电平、我们将 gpio92 设置为高电平。  

    3.2.对于 MSB 字节、我们检查 gpio91 是否为低电平。 如果为低电平、我们通过 GPIO 89 90 58 59 60 61 62 88 引脚发送字节并将 gpio92 设置为低电平。  然后检查 gpio91 是否为 高电平、如果 为高电平、我们将 gpio92 设置为高电平。  

    4.重复步骤 3、直到整个 BootCode 数组被发送到设备。

    在此之前、我认为应该是正确的、因为我在参考手册中看到了这一点。

    我不明白这之后发生了什么情况在 ALGO 已经为 QFP 器件写了.

    例如、让我解释一下我在读取操作中看到的内容:

    发送引导代码后、GPIO72 和 GPIO66 设置为高电平。 给出了短延迟。

    2. GPIO66 设为低电平。 检查 GPIO69 是否为低电平。 当为低电平时、从 GPIO0-GPIO7 引脚读取数据。 则 GPIO66 再次设置为高电平。  检查 GPIO69 是否为高电平。 从 GPIO0-GPIO7 读回的预期数据为 0x00

    步骤 2 再次重复、现在预期读回的数据为 0xFF

    4.再次重复步骤 2、现在预期读回的数据为 0x55。

    我假设这些是之前从事此工作的工程师在 CCS 的.c 中编写的。 我想知道如何做到这一点、或者 CCS 中的示例代码是否已经具备了一些无需编写复杂代码即可使用的功能。 或者、如果我提供我的要求(例如, 如果我向器件发送数据 0x16,我想擦除闪存)、您能否为我编写可以使用的必要代码。

    如果可能,你可以安排一个谷歌会议. 这款设备对我来说很新。 谢谢!

    我同意

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

    您好、

    明天我就能看到更多关于这个问题的信息。 我认为应该为此安排一次会议、可能是下周的某个时间。 已接受您的朋友请求。 感谢您对此问题的耐心等待。

    此致、

    Charles

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

    您好 Charles。

    如果我们能 在明天 或星期三(2025 年 10 月 7 日或 10 月 8 日)见面、请告诉我。 我在 IST 时区。 谢谢!

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

    尊敬的 Vigita:

    经过进一步分析,这个项目似乎需要 BPM Microsystems 程序员的内部知识,因此无法继续开会。

    如果感觉这需要 TI 方面提供更多意见、请随时创建另一个主题。

    谢谢。此致、

    Charles

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

    尊敬的 Charles:

    您能解释为什么 需要 BPM Microsystems 程序员的内部知识来认可我们吗?

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

    您好 Vigita、您的问题似乎更多地涉及移植您的前代产品的 BPM 实现、而不是有关我们的器件、软件或工具的特定问题。  我们无法直接为您的应用程序的实施或开发做出贡献。  如果您对我们的器件、软件或工具有任何具体问题、我们可随时为您解答。  很抱歉、我们无法在这里做更多工作、但我们的专业知识与 TI 产品相关、无法深入研究 BPM 应用。

    此致、

    Joe