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.

[参考译文] TMS320F280049C:将 SCI 引导加载程序转换为 CAN 引导加载程序

Guru**** 2529560 points
Other Parts Discussed in Thread: SYSCONFIG, TMS320F280049C, C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1549454/tms320f280049c-converting-sci-bootloader-to-can-bootloader

器件型号:TMS320F280049C
主题中讨论的其他器件:SysConfigC2000WARE

工具/软件:


我们使用 TMS320F280049C-56RSH 微控制器。 我们可以访问两个 GPIO 引脚:

  • GPIO12  –连接至两者  SCIB_TX  &  CANB_TX

  • GPIO13  –连接至两者  SCIB_RX  &  CANB_RX

我们使用的是  flashapi_ex2_sci_kernel  flashapi_ex3_live_firmware_update SCI 引导加载的示例应用。 这些示例基于 F280049C 的 100 引脚 LaunchPad 版本并使用的示例  SCIA  默认设置。

由于 SysConfig 工具不可用、我们正在手动配置所有内容。

我有以下问题:

  1. 如何通过将当前的 SCI 引导加载程序转换为用于 56 RSH 引脚的基于 CAN 的引导加载程序实现 CAN 引导加载?
    请指导我们如何ex2  ex3使用修改示例代码(和)以支持基于 CAN 的引导加载  CANB  连接到 GPIO12 和 GPIO13。

  2. 如果您有有关 F28004x 转换过程的有用数据表、请分享此链接
    我希望能尽快收到您的回复!!

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

    您好、Nibesh、

    我们没有任何指导您将 SCI 引导加载程序转换为基于 CAN 的引导加载程序的文档。 我建议您首先在一个简单示例中使用 CANB 配置 CAN 连接、然后缓慢地将该代码移植到固件更新示例。 我们提供了一些示例、可帮助您在 F28004x 上的以下位置 (Ware_Install C2000\driverlib\f28004x\examples\can) 配置 CAN。 一旦您拥有能够与主机通信的 CAN 配置、就可以开始使用 CAN 将引导加载程序工程中的所有 SCI 数据接收函数替换为等效函数。  

    您是否坚持使用此流程的特定部分? 提供更多细节、我可以提供更详细的帮助。

    此致、

    Skyler

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

    您好、Skyler、

    非常感谢您的支持。
    我将遵循您提到的要点。

    首先、我将配置 CAN 通信并尝试在引导加载程序中实现 SCI 数据接收。

    如果在此过程中有任何疑问、我将与您联系、并将我的项目文件附在此处。

    谢谢。此致、
    nibesh

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

    您好、 Skyler Bauler 

    能否请查看我目前正在开发的基于 CAN 的引导加载程序代码?
    我在读写阻塞方面遇到了一些挑战。
    您能仔细查看一下并提供您的反馈吗?

    我希望能尽快收到您的回复。

    谢谢。此致、
    nibesh




    e2e.ti.com/.../4540.CAN_5F00_flashapi_5F00_ex2_5F00_sci_5F00_kernel2_5F00_V1.zip

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

    您好、Nibesh、

    我可以在接下来的几天里看看这一点。 同时、您能否提供更多有关您所看到行为的背景信息? “你在担心什么?“

    此致、

    Skyler

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

    您好、Skyler、

    希望您做得好。

    我想澄清一些关于SCI_readCharBlockingNonFIFOSCI_writeCharBlockingNonFIFO的用法。 如您所知、这些函数用于在阻塞非 FIFO 模式下通过 SCI 协议发送 1 个字节的数据。

    我 对 CAN 实施了类似的配置。 此外、我还更改了引导模式和其中的其他各种功能。 然而,我对如何 阻止非 FIFO 根据我当前的实施情况、行为在 CAN 的背景下转化。

    您能仔细回顾一下我的方法并提供您的反馈吗?

    谢谢。此致、
    nibesh

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

    您好、 Skyler Bauler 

    您有时间查看我的代码吗?
    如果你能花一些时间,那将是对我的 Skyler。


    谢谢。此致、
    nibesh  

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

    器件型号:TMS320F280049C

    工具/软件:

    您好团队:

    我目前正在使用flashapi_ex2_sci_kernel用于 F28004x 系列的 SCI 内核代码 ()。 我正在将通信接口从 SCI 转换为 CAN。

    到目前为止、我已删除了自动波特率功能、并注释掉了通过控制台获取用户命令的部分:
    命令= sciGetPacket (&length、data);

    我 还修改了其他与 SCI 相关的数据传输代码以改用 CAN。

    您能否回顾一下代码并告诉我是否有任何错误或需要改进的方面?

    期待您的反馈。

    谢谢。此致、
    nibesh

    e2e.ti.com/.../CAN_5F00_flashapi_5F00_ex2_5F00_sci_5F00_kernel2_5F00_V2.zip

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

    您好、Nibesh、

    您是否有任何具体的问题?

    谢谢、

    Charles

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

    尊敬的 Charles:

    我目前面临将 SCI 转换为 CAN 的问题。 目前、我没有任何其他具体问题。

    如果我遇到任何其他问题、我将再次与您联系。

    谢谢。此致、
    nibesh

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

    您好、Nibesh、

    如果您在将 SCI 内核转换为 CAN 内核时遇到问题、您是否引用了我们现有的 CAN 闪存内核之一?  C2000 微控制器的 CAN 闪存编程 应用手册中列出了这些示例。

    谢谢。此致、

    Charles

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

    您好、Nibesh、

    抱歉、我已经快速查看了代码、但您能提供一些有关您看到的行为的更详细信息吗? 您提到过您对非 FIFO 行为有一些疑问、但在尝试通过 CAN 与此代码进行交互时、您会看到什么行为?

    此致、
    Skyler

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

    您好、Skyler、

    别担心。

    实际上、我正在尝试使用 CAN 对 SCI 的相同工作方法进行仿真。 但是、我注意到它没有按预期运行。

    我的主要关注点是复制 SCI 仅仅用 CAN 取代 SCI 所遵循的确切工作方法。

    我希望你能为这项工作提供一些指导或建议。

    期待尽快收到您的答复。

    谢谢。此致、
    nibesh

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

    尊敬的 Charles:

    我已经很久以前查看过您随附的数据表了。
    但是、提供的示例代码适用于不同的控制器、我没有。 我正在使用 F280049C。

    我已经在该控制器上成功测试了 SCI 引导加载、这对我来说是合适的。 现在、我正在尝试使用 CAN 复制相同的引导加载过程、但它没有按预期工作。

    您能帮我解决这个问题吗?


    谢谢。此致、
    nibesh

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

    您好、Nibesh、

    查看您提供的示例后、建议您使用为 DCAN 初始化提供的函数、并按照为提供的类似示例操作  F28003x  器件 (C2000Ware_6_00_00_00\driverlib\f28003x\examples\flashflash_ex5_dcan_flash_kernel)。

    在示例开始时、您会初始化器件和 GPIO、但随后应该遵循 DCAN_Boot () 函数流程、该流程可在此处找到:

    C2000Ware_6_00_00_00\libraries\boot_rom\f28004x\RevB\ROM_Sources\F28004x_ROM\bootROM\source\DCAN_Boot.c

    谢谢、

    Charles

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

    您好 Charles、

    我想澄清一下、F28004x 系列不支持 DCAN。

    我已根据您的建议实施了该解决方案。 但是、我仍然遇到一些问题。 您能看一下代码并帮助识别问题吗?

    感谢您的帮助。

    此致、
    Nibesh Khulal


    e2e.ti.com/.../CAN-Bootloader.zip

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

    您好、Nibesh、

    如前所述、问题在于需要对 F28004x 器件使用 DCAN_BOOT 函数、该函数可以在器件的 bootROM 源文件以及 F28003x 闪存 DCAN 内核的类似示例中找到。 该器件具有 器件数据表 和 技术参考手册中指定的 DCAN 支持。   

    我已通读您的代码、最好使用 F28003x  flash_kernel_ex5_dcan_flash_kernel 工程作为该器件的移植基础。

    谢谢。此致、

    Charles

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

    谢谢、Charles。

    我将检查并尝试移植它。
    如果我遇到任何问题、我会在此处发布这些问题。

    此致、
    nibesh

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

    尊敬的 Charles:

    我当时正在查看DCAN_Boot.c BootROM 源文件夹内的源文件。
    我有疑问:这是主文件吗?
    即使添加了支持库、它仍然会给出编译错误。

    问题可能是什么?
    我们是否需要手动映射内存?


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

    您好、Nibesh、

    这是 ROM 引导加载程序的主支持文件、但对于您的工程、它不应仅用作主文件、而是用作参考。 如果我们查看  flash_kernel_ex5_dcan_flash_kernel 工程、您可以看到此文件包含在工程编译的一部分中、但使用的主源文件称为  flash_kernel_ex5_dcan_flash_kernel.c。 您能否给出编译错误的图像?

    存储器映射应由工程的链接器命令文件处理、并且可能也需要修改。

    谢谢。此致、

    Charles

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

    您好 Charles、

    我附上了代码和图像以供您参考。
    您能否查看并提供任何必要的更新?

    此致、
    nibesh





     




    e2e.ti.com/.../1682.CAN_5F00_01_5F00_09_5F00_2025.zip

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

    您好 Charles、

    您有时间查看我的代码了吗?
    我希望能尽快收到您的回复。

    感谢和尊敬、
    nibesh

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

    您好、Nibesh、

    对延迟表示歉意、我们的专家目前已离职、应在下周初做出答复。

    此致、

    Alex

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

    您好、Nibesh、

    在首次导入和重新编译工程时、会针对“_bankSelect"符号“符号未定义给出以下错误:

    此外、在代码中、我看到许多使用“OTP 补丁迂回点“的行。 此功能应主要由 bootROM 源使用、而不应添加到 CAN 闪存内核中。

    我建议此工程的源代码在结构方面更接近 F28003x 闪存 DCAN 内核示例。

    谢谢。此致、

    Charles