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.

[参考译文] RTOS/TMS320C6678:将时钟速率从1.0GHz 提高到1.4GHz 后、UART 输出损坏的数据

Guru**** 2589265 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/639331/rtos-tms320c6678-after-increasing-clock-rate-from-1-0ghz-to-1-4ghz-uart-outputs-corrupted-data

器件型号:TMS320C6678

工具/软件:TI-RTOS

您好!

我们设计了一个类似于基于  TMS320C6678ACYP4 DSP 的 C6678 EVM 的系统、该系统能够以高达1.4GHz 的速率运行。

 已经修改了 evmc6678l.gel 文件的下一个方法: PLL1_M=27 (默认值为39)和 PLL1_D=0 (默认值为1)、并且 CorePacs 的全速率时钟在.gel 文件的全局默认设置初始化脚本运行时从1000MHz 增加到1400MHz:

(笑声)

C66xx_0:GEL 输出:DSP @ 1400.0 MHz 的 PLL1设置。
C66xx_0:GEL 输出:SYSCLK2 = 466.66656 MHz、SYSCLK5 = 280.0 MHz。
C66xx_0:GEL 输出:SYSCLK8 = 21.875MHz。

(笑声)

但之后、我失去了正常的 UART 输出。

我也发现其他 CPU 也存在类似问题-

我已将 c:/ti/pdk_c667x_2_0_6/packages/ti/drv/uart/soc/c6678/UART_soc.c 文件中的下一行从1000000000/6更改为1400000000/6、但这也没有帮助:

UART_HwAttrs uartInitCfg[CSL_UART_PER_CNT + 1U]=


CSL_UART_regs、// UART 基址*/
OSAL_REGINT_INTVEC_EVENT_Combiner、/*默认 DSP 中断向量编号、可在 UART_socSetInitCfg () API 中设置*
92、/*默认 DSP INTC UART 事件 ID、可在 UART_socSetInitCfg() API *中设置
0、/* CIC 编号*/
CSL_INTC0_UARTINT、/* CIC UART 事件 ID *
4、/*默认 CIC 主机中断、映射到 INTC0_OUT (4+8*n)事件*/
CSL_EDMA3CC2_URXEVT、/* UART RX EDMA 事件*/
CSL_EDMA3CC2_UTXEVT、/* UART TX EDMA 事件*/
CSL_EDMA3CC2_UTXEVT、/* UART TX 传输完成代码、映射到 IPR *
CSL_EDMA3CC2_URXEVT、/* UART RX 传输完成代码、映射到 IPR *
0、
0、
1000000000/6、/*默认 UART 频率、系统时钟/6 *
0、/*版本*/
null、
True、/* dmaMode */
false,/*环回*/
True、/* enableInterrupt *
UART_RXTRIGLVL_1、/* rxTrigLevel */
1 /* txTrigLevel */
}、

0、

};

在这种情况下、请建议如何修复 UART 输出。

P.S.

目前、我正在    Code Composer Studio 7.3.0.00019 IDE 上处理来自 pdk_c667x_2_0_6的 UART_BasicExample_C6678_c66xExampleProject 示例

此致

Andranik

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    让我在 C6678 EVM 上测试这一点、看看我是否能够重现此问题。

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    此外、您能否详细说明一下您的意思:
    "但是、之后我失去了正常的 UART 输出。"
    您的观察结果是什么? 您发送的 UART 消息中缺少字节? 观察到异常示波器图(如果探测 UART_TX 和 UART_Rx 线路)? 还有事吗?

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

    Yordan、您好!

    感谢您的快速回答。

    在将 DSP 内核速度从1000MHz 更改为1400之前、当我在  电路板上运行 UART_BasicExample_C6678_c66xExampleProject 二进制文件时、我看到了下一条消息:

    UART 驱动程序和实用程序示例测试用例:
    输入16个字符或按 Esc 键

    但之后、我看到下一条消息:

    &(▒▒:▒7▒e▒▒▒▒ݨǢ▒it▒et▒1Q▒▒T

     

    此致

    Andranik

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

    我明白您的意思、我得到了相同的结果(我设法重现了您遇到的错误)。

    让我来看看 UART 驱动程序、看看我们是否可以做些什么来克服这一问题。

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    更新后、您是否重建了 UART 驱动程序和电路板库。 如果您看到用于初始化 Board_UART_stdio 的基本示例调用电路板库。 为了使更改生效、您需要确保重建 UART 和电路板库。 这很可能是您发现问题的原因。

    另请注意、更新 PLL 后、使用驱动器在 UART 模块中设置的过采样因子和分频器、UART 产生的波特率应在115200的10%裕度范围内。

    此致、
    Rahul
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢、Rahul。
    不仅可以重新编译库、还可以单独编译 UART 驱动程序、这解决了这个问题。

    此致
    Andranik