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.

[参考译文] CCS/TMS320F28027:从 CCS 运行而不是从闪存运行时、串行通信工作

Guru**** 2578945 points
Other Parts Discussed in Thread: DRV8305, MOTORWARE, LAUNCHXL-F28027

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/904613/ccs-tms320f28027-serial-communication-works-when-running-from-ccs-but-not-from-flash

器件型号:TMS320F28027
主题中讨论的其他器件:MOTORWAREDRV8305LAUNCHXL-F28027

工具/软件:Code Composer Studio

您好!

我有一个来自在 Launchpad XL + BOOST XL DRV8305上运行的 Motorware lab4的小型程序

它通过 Launchpad 板上的 FTDI 芯片使用串行通信与我的 Mac 进行通信。  

只要我从仿真器启动代码、这就可以正常工作。

串行端口通常显示为  

/dev/cu.usbserial-FTIOS6V1

如果我翻转 DIP 开关3并从闪存运行代码、则 FTDI 芯片不会出现在 Mac /dev/dev 目录中。

嗯、有时它确实出现了、行为如下所示:

如果我为 BOOSTXL 通电、但 USB 已断开连接、则当我连接 USB 电缆时、/dev/dev 中的串行设备不会出现。

如果我然后关闭 BOOSTXL 电源、则串行端口会出现在/dev/中、但通信含义不好  

有人说,60%的人物都是正常的,但其余的是垃圾。

然后、如果我关闭 BOOSTXL 电源、这对通信没有任何影响、那么通信会继续进行、但会发生乱码。

这是否与 CPU 从 USB 和 BOOSTXL 板获取电源有关?

在 CCS 下或从闪存运行代码时是否存在任何差异、在这两种情况下、代码都从闪存运行、因此不应存在速度差异?

WBR Kusti

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

    Kusti、

    [引用用户="Kusta Nyholm"]

    嗯、有时它确实出现了、行为如下所示:

    如果我为 BOOSTXL 通电、但 USB 已断开连接、则当我连接 USB 电缆时、/dev/dev 中的串行设备不会出现。

    [/报价]

    USB 断开连接意味着仅串行终端程序、对吧?

    [引用用户="Kusta Nyholm"]

    如果我然后关闭 BOOSTXL 电源、则串行端口会出现在/dev/中、但通信含义不好  

    有人说,60%的人物都是正常的,但其余的是垃圾。

    然后、如果我关闭 BOOSTXL 电源、这对通信没有任何影响、那么通信会继续进行、但会发生乱码。

    这是否与 CPU 从 USB 和 BOOSTXL 板获取电源有关?

    [/报价]

    如果您未将调试器部分与器件本身完全隔离、这可能是原因-这通常是通过一些跳线完成的。 如果您使用的是 LAUNCHXL-F28027板、则需要移除 JP1、JP2和 JP3。  

    作为一个轶事示例、我最近遇到了一个与您非常类似的问题。 我尝试运行代码并从 BeagleBone AI 获取串行信息、而它使用其中一个手机充电器供电。 端口工作非常不可靠、我无法通过 JTAG 进行连接。  

    希望这对您有所帮助、

    拉斐尔

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

    谢谢、移除跳线使行为更具逻辑性和可重复性、但实际问题不会消失。

    但我认为我们已经解决了这个问题。

    无需详细说明在调试器或独立运行之间的区别是/是在调试器下、系统始终通电、从而提供我们的所有外设(CPU 外部)  在 CPU 启动之前从复位退出的时间、而在独立模式下、CPU 在上电后很快退出复位、因此并非所有外设都准备好执行操作、这会导致一些初始化失败、进而导致它们不响应 从而导致我们的代码中出现时序问题、从而导致串行通信问题。 在事后看来很明显、就像往常一样。