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.

[参考译文] TMS320F28377D:USB USB 闪存标头示例

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/958707/tms320f28377d-usb-usb-flash-kernerls-example

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

您好!

IM 从 C2000Ware_3_02_00_00运行示例 F2837xD_USB_flash_kernels_cpu01、其中 controlCARD R1.3上的 RAM 具有双构建配置。 我没有做任何更改

我对奇怪的行为感到惊讶。

当我运行之前的示例 USB_ex4_dev_bulk 时、然后在不关闭电源的情况下并且不断开 USB 电缆的情况下、我启动 F2837xD_USB_flash_kernels_cpu01、然后看到"TMS320F2837xD USB Boot Loader "、它可以正常工作
(我确保应用程序正在使用命令字段
usb_flash_programr.exe app_cpu1.dat kern_cpu2.dat app_cpu2.dat)
但是、当我在清理 RAM 后引导 F2837xD_USB_FLASH_kernels_cpu01并且未检测到非活动 CPU 器件"未知器件"时

它甚至不依赖于主机。 当我使用外部电源(不是来自 USB)重复实验时、也是如此、并在启动应用程序后插入电源线。

预加载和运行通用批量器件的操作以及更改、之后开始检测器件"TMS320F2837xD USB 引导加载程序"。
需要更改哪些内容才能在不进行此预加载的情况下完成工作。

我的最终目标是将 F2837xD_USB_FLASH_kernels_cpu01移植到闪存并创建引导加载程序。

此致

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

    我认为我找到了原因。 这些是注释行  

     ClkCfgRegs.CLKSRCCTL1.bit.OSCCLKSRCSEL = 0x0;  //使用 INTOSC2 (~10MHz)

    ClkCfgRegs.CLKSRCCTL2.bit.AUXOSCCLKSRCSEL = 0x1;


    我未对其进行注释、该示例开始运行。

    但现在只有在第二次运行 main ()(CCS 调试会话中的"Restart")后才会检测到器件。 当您在关闭电源后首次启动时、根本未检测到任何设备。 主机 PC 根本无法检测到连接。 如果您告诉我原因、我将不胜感激。 我计划检查寄存器。

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

    您好,

    代码是从 RAM 运行还是从闪存运行? 看起来代码是从 RAM 运行的,因为在关闭/打开电源后,代码不起作用/不执行。

    此致

    Siddharth

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

    我很抱歉。 我说得不正确。  

    1) 1)关闭电源并打开
    2) 2)将代码下载到 RAM
    3) 3)运行代码
    不管用! (PC 根本无法检测到器件)
    4) 4)在此调试会话中重新启动代码
    它正在工作!   (正确检测到设备)

    为什么第一次可能不起作用(3)、第二次工作(4)。

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

    我认为我找到了解决问题的方法。 如果在 USB_Boot.c 的时钟配置中添加延迟

    ClkCfgRegs.CLKSRCCTL2.bit.AUXOSCCLKSRCSEL = 0x1;  


    对于(x = 0;x < 32767;x++)

    asm (" NOP");
    asm (" NOP");


    ClkCfgRegs.AUXPLLULT.ALL = 6;  

    如果通过代码添加此延迟或通过代码添加此延迟、则示例不起作用。  但我想知道为什么需要延迟。

    我没有对代码进行任何其他更改。 这是我的 USB_Boot.c


    /cfs-file/__key/communityserver-discussions-components-files/171/5670.USB_5F00_Boot.c

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

    您好!

    很高兴您能够解决此问题。  

    此致

    Siddharth

x 出现错误。请重试或与管理员联系。