主题:C2000WARE 中讨论的其他器件
工具/软件:
您好、
您能否分享有关如何对器件的闪存和 OTP 进行编程的指南?
我看了 CCS 示例文件、 我看到它适用于 176 QFP 封装。 有没有针对 337 BGA 封装的单独认证、
我不熟悉此设备。 您能否介绍一下 使用第三方编程器对器件闪存和 OTP 进行编程的步骤。 谢谢!
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.
工具/软件:
您好、
您能否分享有关如何对器件的闪存和 OTP 进行编程的指南?
我看了 CCS 示例文件、 我看到它适用于 176 QFP 封装。 有没有针对 337 BGA 封装的单独认证、
我不熟悉此设备。 您能否介绍一下 使用第三方编程器对器件闪存和 OTP 进行编程的步骤。 谢谢!
尊敬的 Vigita:
我已经查看了 BPM Microsystem 器件搜索 、结果显示支持 TMS320F28386DPTPQ 器件。 如果您使用的是 F28388D 器件型号、则其应该能够以类似的方式进行编程。 编程器快速入门指南 详细介绍了如何 将编程器用于 2,900,2900L 和 19000 器件。
谢谢。此致、
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
我有 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?

下一步是配置 为此工程生成的输出。 这可以通过转到来完成:
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,我想擦除闪存)、您能否为我编写可以使用的必要代码。
如果可能,你可以安排一个谷歌会议. 这款设备对我来说很新。 谢谢!
我同意