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.

[参考译文] TMS320F28334:引导模式 F28334

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1217445/tms320f28334-boot-mode-f28334

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

大家好、我对 F28334中的引导模式有一些疑问。 我要使用 UART 和 CAN 等引导模式对我的 MCU 进行编程。

我了解到、我必须使 GPIO 84、85、86、87为高电平或低电平才能使 MCU 处于适当的引导模式。

从参考手册和其他文档中、我知道我需要将闪存内核代码转储到 MCU RAM、以在 MCU 闪存中刷写应用程序。

我是第一次处理启动模式、也是自己学习。 我有一些基本问题需要在这里提出。  

1) 1)什么是闪存内核、我们为什么需要它?

2) 2)什么是闪存编程器实用程序?

3) 3)是否可以使用 UART 对 MCU 进行编程或不使用闪存内核的 CAN 引导模式?

4) 4)我们为什么需要将闪存内核放入 MCU RAM 中为什么不在闪存中?  

5) 5)是否可以将闪存内核放入 MCU 闪存?

6) 6)是否可以使用 UART 或 CAN 引导模式将应用程序放置在 RAM 中?

7) 7) C2000中给出的串行闪存编程器是否适用于 F28334?

8) 8) C2000闪存编程器实用程序中未提供 F2833x_FW_upgrade_example。 要将其用于 F28334、应进行哪些更改?

9) 9) C2000实用程序中没有 CAN 闪存编程器应该如何使用 CAN 引导模式刷写应用程序?

等待答案、让我的疑虑清晰明了。 我曾提到 F2833x 的 TRM 和 C2000串行闪存编程应用手册。 但我有这些问题。

提前感谢。

此致。

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

    您好、Raj、

    感谢您的提问! 以下是对这些问题的一些回答:

    1)闪存内核是一个嵌入式软件、允许您将应用程序编程到器件的闪存中。 它之所以很重要、是因为如果您想在不使用 JTAG 通信方法的情况下更新器件的应用程序、则可以使用闪存内核来更新。 通过使用这些通信方法之一(SCI、CAN、I2C 等)将闪存内核 传输到器件、并允许从引导加载程序将控制传输到内核、然后它将能够为您流式传输应用并对应用程序进行编程。  

    2)闪存编程器实用程序(例如我们的串行闪存主机编程器  )允许您通过 其中一种通信方法(最常见的是 SCI 外设)将闪存内核从主机(例如 PC)下载到目标(器件)。 此外、闪存实用程序具有特定的设置来识别您正在使用的器件、以便发送到目标的数据以正确的速率发生、根据您需要执行的操作接受用户命令(例如、下载固件更新、在 CPU1上执行固件更新)、 以及将应用文件下载到器件。  

    3) 3)是的、可以使用 UART 或 CAN 对 MCU 进行编程、而无需使用闪存内核、但用户应用程序将驻留在 RAM 中。 不同通信方法的 ROM 引导加载程序只能将代码写入 RAM。 在任何其他情况下、 如果您希望应用程序转至闪存、则需要使用主机将您的应用程序下载至器件。

    4) 4)为了对闪存组进行编程、我们需要将闪存内核放置在 RAM 中。 闪存组不能同时写入和读取、因此解决方案是将闪存内核驻留在 RAM 中、以便应用程序可以写入闪存中。  

    5)可以将闪存内核放入闪存存储器,但在器件启动时,内核的部分必须加载到 RAM 中,以便它可以操作。 这是一种用于器件复位以检查是否即将进行新固件更新的好方法(如 LDFU 应用手册中所示)、可以通过在闪存中保留闪存内核并在必要时将其传输到 RAM 来节省时间。  

    6) 6)是的、可以通过使用 UART 或 CAN 将应用程序单独放置在 RAM 中。  

    7) 7)是

    8) 8)对于固件升级示例、您需要编译两个项目、即 F2833x 闪存内核和应用程序投影(例如 time_leed_blink)。 这些示例可在 C2000Ware_4_03_00_00\device_support\F2833x\examples 文件夹中找到。

    9) 9)有一个适用于 f28003x 器件的 CAN 闪存编程器。 目前没有适用于 F2833x 器件的 CAN 主机编程器。 出于您的目的 、您可以修改此 CAN 闪存编程器以便与 F2833x 器件一起使用(位速率、器件名称)。

    我希望这部分内容涵盖了您的问题、另外、此处提供了有关串行闪存主机编程器的更多链接。

    ti.com/lit/an/sprabv4e/sprabv4e.pdf

    如果有任何其他问题、请随时回复此帖子、我将相应地进行回答。

    谢谢。此致、

    查理

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

    尊敬的 Charles:  

    非常感谢你清除我的疑虑。

    这里我有一些问题要问:

    1) 1) C2000实用程序中可以存在用于 F28003x 的闪存编程器。 您能否告诉我使用此功能时需要更改哪些参数或哪些文件才能为 F2833x 刷写编程器?

    2) 2)您能告诉我通过 CAN 引导至我的器件闪存下载我的应用的整个过程吗? 如果可能、请详细告知我?

    3) 3)有一个串行闪存编程应用手册。 有没有适用于 CAN 闪存编程的文档? 如果是、让我知道在哪里可以找到它?

    4) 4)什么是 LDFU 应用手册? 如何在闪存中转储闪存内核? 如果我将闪存内核置于闪存中、应该进行哪些更改才能将应用程序下载到闪存中?

    提前感谢。

    此致。

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

    您好、Raj、

    下面是对这些问题的一些更多回答:

    1) 1)要对 CAN 闪存编程器进行更改、您需要具有 Visual Studio 的构建版本、并打开 can_flash_programmer.sln 文件。 为了方便起见、可以将器件名称参数更改为 g_bf2833x。 该文件中有一行用于更改比特率、以便与峰值 CAN-FD 分析仪配合使用。 由于与 F2833x 相比、F2833x 器件更旧、因此可能还必须对下载映像功能进行更改。

    作为替代方案、您可以考虑将某些第三方批准的 CAN 编程器用于此器件。 我将对其进行深入研究、并就其与您联系。

    2)这个问题有点长,但我会尽量缩短它。 具体流程如下:

    • 通过引导开关将器件设置为 CAN 引导模式
    • 使用主机 CAN 编程器实用程序、初始化 CAN 分析仪并打开闪存内核文件以写入 CAN 引导加载程序
    • 引导加载程序在传输整个内核文件后应延迟一个位、将控制权转移给闪存内核
    • 在主机的短暂延迟后、通过应用程序固件映像发送
    • 器件复位后、跳转到闪存中的应用

    有关更多详细信息、可以准备一个 PowerPoint (目前可能需要一些时间)。 我还  可以设置电话会议、我们可以讨论它。

    3) 3) CAN 闪存编程手册当前正在修订中、将与2023年第三季度的下一个 C2000ware 版本一起发布。

    4) LDFU 应用手册是实时器件固件更新应用手册的简写。 可在以下位置找到它: ti.com/lit/ug/spruiu8a/spruiu8a.pdf

      为了在闪存中转储闪存内核、您必须具有一个构建配置、允许您选择闪存作为内核的静止位置。 如果将闪存内核置于闪存中、则应对该器件进行的更改是实现将内核的部分内容从闪存复制到 RAM 的功能、以便稍后在应用中流式传输并对闪存组进行编程。

    谢谢。此致、

    查理

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

    尊敬的 Charles:

    我非常感谢你的帮助和回答。

    我有一个关于 PCAN 的问题、在 C2000实用程序中、曾提到 CAN 闪存编程器与 PEAK PCAN-USB Pro FD 兼容。

    但目前我有 PEAK PCAN USB 与 ME NOT PEAK PCAN-USB Pro FD 可用。

    1)峰值 PCAN USB 是否将与 CAN 闪存编程器兼容,以下载闪存内核或应用程序?

    可能还需要对下载映像功能进行更改,因为相比之下 F2833x 是较旧的设备。

    2)我不能理解你在这里说的是什么。 您能详细说明一下吗?

    正如您所说的、我们可以安排电话会议、我对此感到高兴。 我对它感兴趣、但目前我尚未准备好整个设置、因此只要我的整个设置准备就绪、我们就可以安排一个电话。 只要我准备好进行设置、我就会在消息中告诉您相关信息。

    此外、您还了解了演示文稿、请在准备就绪时进行分享。

    再次感谢您的答复。

    此致。

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

    1) 1)当前的 CAN 闪存编程器实施需要使用峰值 PCAN-USB Pro FD 器件才能运行。 但是、CAN 闪存编程器使用 PCAN-USB API 中的 FD 功能、因此可以换用为常规的 CAN 功能(例如、CAN_InitialzeFD 至 CAN_Initialize)。  

    以下是 API 文档的链接: InitializeFD - PCAN-Basic Documentation

    2) f28003x 设备的 CAN bootloader 与 f28334设备具有不同的比特率值,以及将使用哪些峰值 API 函数。  主机编程器中有包含比特率值的变量。

    演示可能需要一周时间、将与您协调。

    谢谢。

    查理

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

    尊敬的 Charles:

    目前、在定制电路板上、我采用 GPIO 18-19和 GPIO 12-13来进行 CAN 通信。 我尚未为板上的 CAN 通信拿出引脚 GPIO30-31。

    今天、我阅读了数据表和参考手册、引导加载程序用于 CAN 的引脚是 GPIO 30-31。

    那么、现在我的问题是、我可以将 GPIO 18-19用于 CAN 引导模式吗? 是否有办法做到这一点? 或者我只能使用 GPIO 30-31进行 CAN 引导?  

    我已经尝试使用 GPIO 18-19来刷写代码 CAN 引导、但代码未刷写。 我还在 CAN_init 函数中更改了闪存内核、以更改 CAN GPIO 配置。 但我的代码未刷写。

    谢谢。此致。

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

    您好、Raj、

    我看到 GPIO18/19和 GPIO30/31分别为 CANRXA/TXA 和 CANRXB/RXA。

    从适用于 F2833x 器件的 TRM 中的 GPIO 章节:

    当 GPAMUX2位都被设置为高电平时、引脚18/19上的 CAN 是可能的。 并且通过设置 GpioCtrlRegs.GPAMUX2.all 值、它无法保持? 您是否有可能在初始化时单步执行代码以查看内存位置发生的情况?

    谢谢。此致、

    查理

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

    尊敬的 Charles:

    正如您在前面的答案中建议的那样、我已经尝试在闪存内核代码中将 GPIO 18-19设置为 CAN 来配置 GPAMUX2。

    但我无法通过 CAN 引导来转储我的代码。

    这是否意味着只能像数据表中描述的那样使用 GPIO 30-31进行引导?

    此外、如果我们进行电话会议、我现在已准备好进行设置、那也是很好的选择。 请告诉我您是否可以进行电话会议。  

    我曾亲自为你搞砸了。 您能看一下吗?

    谢谢。

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

    您好、Raj、

    咨询 CAN 所有者以了解 GPIO30/31和 GPIO18/19的用法。

    将在有关呼叫的消息中告诉您。

    谢谢。
    查理