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.

[参考译文] TMS320F2800157:CAN FD 引导模式

Guru**** 2535680 points
Other Parts Discussed in Thread: TMS320F2800157, C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1423110/tms320f2800157-can-fd-boot-mode

器件型号:TMS320F2800157
Thread 中讨论的其他器件: C2000WARE

工具与软件:

我尝试使用 CAN FD 引导模式将 RAM BTLD 刷写到控制器中。

我按如下所示配置了引导模式表和引导模式引脚、并确保它们被正确写入 OTP 中、如图所示

其中  Z1_GPREG1应如下表所示
 

电流 添加注释
31:24. 0x5A 密钥。 指示 vaild 寄存器
23:16 0xFF 禁用 BMSP2
15:8 0x18 BMSP1 = GPIO24
7:0 0x20 BMSP0 = GPIO32

Z1_GPREG3应如下表所示

电流 添加注释
31:24.  0x03 闪存引导选项0
23:16 0x08 CANFD 引导选项0
15:8  0x03 闪存引导选项0
7:0  0x03 闪存引导选项0


 我将我的独木舟设置配置为与1MB (标称波特率)和2MB (数据波特率)通信(如参考手册中所述)、但我在将 AA 08发送到控制器时收到填充位错误


  

我还确保使用示波器正确设置引脚。

我的问题是:

由于参考手册中没有提到这一点、是否有应该修改的波特率特定采样点?

另请注意、当我的应用程序可以从闪存启动时、在 CAN 总线和到我的控制器的连接方面、一切都运行正常。

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

    我发现尽管正确设置了引脚、但控制器未进入 CAN FD 引导模式、因此我也执行了复位

    GPIO32设置为0

    GPIO24设置为1

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

    您好、Kirollous、  

    我需要更多时间来查看您的问题、并将在今天下午晚些时候提供回复。

    此致!

    Matt  

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

    谢谢你。 我期待您的回答、因为这个问题对我们非常重要、阻碍了发展。

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

    尊敬的 Kirollous:

    同时、   如果您还没有看过、我可以为您推荐我们的 CAN 闪存编程指南、特别是第7节。

    我还会注意到、 PEAK CAN-FD 分析仪的运行 CAN-FD 时钟范围是20MHz 至80MHz。 器件的 MCANxBIT 时钟必须与 PEAK 工具的 CAN-FD 时钟频率相匹配才能发送帧。 现在您已将其设置为80 MHz。 您能否验证这是否与 TMS320F2800157匹配?  

    此致!

    Matt

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

    Matt、您好!

    如问题描述中所述、我将使用独木舟设置来发送帧。

    目前、该问题与波特率或器件时钟无关、因为即使我按预期设置了 PIN 值并配置了 OTP、我甚至也无法在 CANFD 模式下启动。

    我无法验证控制器的时钟、因为它在 TI 提供的 BootROM 中。

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

    在数据表中、GPIO0和 GPIO1的 CANFD 引导模式的 BootDef Table 的值为 0x28 如下所示

    而 TMS320F280015X 参考手册中有 0x08 那么、哪个值正确

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

    您好!

    感谢您指出这一差异、我已确保将在下一个修订版中更新此差异。  

    如果它没有最终以 CAN-FD 引导模式结束、那么它将进入哪种引导模式? 请在 CCS 中加载符号以帮助调试。

    要加载符号:

    您可以通过将引导 ROM 符号(.out 文件)加载到器件来单步执行器件引导 ROM。  此选项会添加生成的项目".out"文件中提供的符号以进行调试、而不是通过 CCS 将实际的".out"程序加载到内核中-这也是您可以将此方法与引导 ROM/内 置引导加载程序一起使用以进行调试和获得可见性的原因。

    1. 将 CCS 打开到工作区
    2. 点击"View">"目标配置":
    3. 您可以将此器件的工程导入 CCS 并使用该工程连接到器件、或在此窗口中将原始目标配置从 C2000Ware 复制到"用户定义的"目标配置。 无论通过哪种方式、均可查找器件目标配置(下面的 F28377D 示例)并启动:
    4. 当它打开调试窗口时、选择器件 CPU 并连接到目标:
    5. 导航至工具栏并单击按钮至"LOAD symbols"(加载符号)
    6. 加载 bootrom .out 文件。 对于该器件、它应该位于中  
      1. C:\ti\c2000\C2000Ware_5_02_00_00\libraries\boot_rom\f280013x\RevB\rom_sources\ccs_files\cpu\Release
      2. 如果弹出一个窗口、表明找不到源文件、可以选择"Locate File"并在 C2000Ware 中找到它
        1. 通常在此处为 C:\ti\c2000\C2000Ware_5_02_00_00\libraries\boot_rom\f280013x\RevB\rom_sources\F280013x_rom\bootROM\source
    7. 该文件应打开以显示您所在的 Bootrom 位置、而您可以单步执行/调试

    此致、

    Matt

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

    感谢您的回复、我将在 Bootrom 代码中调试、并了解这方面的帮助。

    但是、CAN FD 引导模式的正确值是什么?  

    因为数据表和技术参考存在冲突的值。  

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

    您好!

    很抱歉、我应该澄清一下--请参考技术参考手册中的数值。

    此致!

    Matt

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

    另一个问题是、我如何在 Bootrom 代码中进行调试、以弄清它的引导位置、因为这种引导模式将被视为仿真引导模式、因此我无法以 CAN FD 引导模式进行引导。

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

    尊敬的 Kirollous:

    您可以配置仿真引导寄存器、 以准确地为独立模式对 OTP 存储器进行编程(请参阅下面的技术参考手册表)。 您可以在 CCS 的 内存浏览器中 的地址"0xD00"处找到这些仿真引导寄存器。 然后、您可以调试和单步执行引导 ROM 代码、此代码将显示 您是否输入了 CAN-FD 引导函数。  

    此致!
    Matt