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.

[参考译文] MSPM0G3507:无法使用 SYSPLL 为 CPU 计时

Guru**** 2595805 points
Other Parts Discussed in Thread: MSPM0G3507, SYSCONFIG, SEGGER

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1207774/mspm0g3507-unable-to-use-syspll-to-clock-cpu

器件型号:MSPM0G3507
主题中讨论的其他器件: SysConfigSEGGER

我正在使用"uart_tx_multibyte_fifo_dma_interrupts_lp_MSPM0G3507_nortos_ticlang"项目示例、使用 DMA 评估我的 UART 应用。 我使用了 UART3而不是 UART0。 使用以下配置时、运行情况非常好(我可以看到数据从 UART Tx 线路输出)。

  CPU 时钟源:SYSOSS (CPU、MCLK、ULPCLK - 32MHz)

  CPU 时钟频率- 32MHz

  UART3、波特率4Mbps、过采样8.

  我将使用 J-Link 加调试探针对微控制器进行编程。  

当我更改时钟配置并启用 SYSPLL2X 以为 CPU 计时(现在为 CPU、MCLK、ULPCLK - 40MHz)时、然后我的代码 卡在下面、while 循环中的例程 SYSCFG_DL_SYSCTL_init ()

/*配置前检查 SYSPLL 是否被禁用*/
while ((DL_SYSCTL_getClockStatus ()和(DL_SYSCTL_CLK_STATUS_SYSPLL_OFF))
!=(DL_SYSCTL_CLK_STATUS_SYSPLL_OFF)


}

不知道发生了什么。 我尝试断开调试连接并重新启动微控制器单元。 Tx 线仍然没有任何输出。 我漏掉了什么吗?

我们将非常感谢您提供任何帮助。

谢谢、此致

Vijaya

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

    Vijaya、您好!

    我已经在 SYSPLLCLK2x 设置为40MHz 并源自 MCLK 的情况下测试了您的设置、采用 UART3:4Mbps、8倍过采样、并使用 uart_tx_multibyte_fifo_dma_interrupts 示例。

    请启用 SYSCTL 中的"检查时钟稳定度"设置。 如果未启用此功能、程序将等待 while (false =gDMADone)。

    此致、

    Luke

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

    Luke、您好!

    非常感谢您快速检查这一点。

    我启用了"检查时钟稳定"。 但从 Tx 线发出的数据不正确。 大多数情况下、它是一些具有帧错误的垃圾数据。 在进行测试时、您是否有机会验证从 Tx 发出的数据?  

    我没有看到勘误表中报告的任何与 PLL 相关的问题。 这是我要测试的第4个样本。 但总的来说、我认为在使用 PLL 时、系统不稳定、结果也不一致。

    谢谢、此致

    Vijaya

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

    Vijaya、您好!

    我当时使用逻辑分析仪来验证数据、下面是示波器的屏幕截图。 我已经在2个不同的 LaunchPad 上进行了测试、其中 UART3用于 PA25和 PA26。 时钟稳定检查被用来验证时钟系统是稳定和一致的。

    1. 您要将哪些引脚用于 UART?
      1. 确认未组装任何与引脚关联的跳线、例如、如果您使用 PA26、请确保 J3未组装在电路板底部。 还要验证分析仪上的字长、奇偶校验、停止位、波特率和有效位是否与 MSPM0相同。
    2. 您能否发送 TX 数据和.syscfg 文件的屏幕截图? 我想看看您会得到什么结果、并再次检查我们的设置是否相同。
    3. 您正在使用哪个 SDK 版本?

    此致、

    Luke

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

    Luke、您好!

    请在下面查看我的答复。 如何在此论坛中共享 SysConfig 文件? 已尝试使用 insert->image/video/file。 但无法上传。

    1) 1)我未使用 Launch Pad。 我们获取了 MSPM03507 (LQFP-64)样片、并使用这些 IC 制作分离板、意图在我们的目标板中使用它们。 我将引脚6 (Rx)和7 (Tx)用于 UART3。  我正在通过两种方式测试分母板:分别为其供电或将其连接到最终硬件。

     我将使用 J-Link Plus 调试器连接到 SWD 接口。

    2)  在工作和非工作情况下、附加逻辑分析仪捕获的屏幕截图。 (在爬虫程序情况下、逻辑分析仪设置相同)

     

         工作案例(无 SYSPLL、 CPU 时钟- 32MHz、4Mbps 波特率、过采样8)

         故障情况(SYSPLL2x 已启用、CPU 时钟-40MHz、 4Mbps 波特率、过采样8)

    代码与示例  "uart_tx_multibyte_fifo_dma_interrupts_lp_MSPM0G3507_nortos_ticlang"中使用的代码完全相同、但对 UART3引用的更改除外。

    3) 3)我使用的 是 mspm0_SDK_0_56_00_01_eng SDK。

    如果您需要更多详细信息、请告诉我。

    谢谢、此致

    Vijaya

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

    Vijaya、您好!

    看起来波特率已关闭、采用40MHz 时钟时、速度更快。 您使用的似乎是 Saleae、如果您想查看发送的波特率、应该会进行自动波特率检测。

    我使用4Mbps 的引脚6和7以及40MHz 的 MCLK、ULPCLK 将我的项目与 UART3连接。 您是否可以导入并运行该文件?

    使用插入->图像/视频/文件、然后点击上传按钮、应该会加载您的文件浏览器、从那里导航到工程并选择.syscfg 文件。

    此致、

    Luke

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

    Luke、您好!

    我在 Saleae 中找不到自动波特率设置、因此我手动计算了波特率(Saleae 建议采用此方法)。 它的传输速率为4.762Mbps。 使用此波特率 设置时、数据会正确显示在逻辑分析仪上。 我想、出于某种原因、UART 在设定的波特率下不工作。

    到目前为止、我 无法使用您 发送的项目。 不知何故、在将调试器连接更改为'Segger J-Link Emulator'后、我仍然无法下载到目标文件。 我需要深入了解这一点。 但快速看一下.syscfg、即在我的项目中、我使用时钟树配置时钟设置并启用了"使用时钟树"。 您做时钟设置时采用了不同的方式。  

    我随附了我在这里使用的项目。   

    如果您需要更多详细信息、请告诉我。

    谢谢、此致

    Vijaya

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

    Luke、

    我使用了您在我的项目中共享的.syscfg 文件、一切开始运作了。 UART 正在以设定的波特率传输数据。

    如上所述、唯一的区别是我使用时 钟树配置时钟、并选中了 SYSCTL 下的"使用时钟树"。 其中与您共享的.syscfg 一样、 相同的时钟设置直接在 SYSCTL 中完成。 时钟设置明智、我在这两种情况下都看不到任何差异。 但当我使用时钟树时、情况是不稳定的。

    谢谢、此致

    Vijaya

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

    Luke、

    即使通过 SYSCTL 和时钟树配置时、时钟设置相同、但生成的代码会有何不同。 当我使用时钟树时、SYSPLL 不稳定。  使用时钟树是否有问题?

    我将从示例代码移动到我的实际应用代码。  最后总结一下、如果 时钟树有问题、我将 在程序中不使用它。 如果 PLL 本身有问题、我将在不使用 PLL 的情况下坚持使用内部/外部时钟。 还是漏掉了任何东西?

    谢谢、此致

    Vijaya

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

    Vijaya、您好!

    您说得对时钟树会生成错误的代码集、我们将在将来的更新中修复此问题。 使用 SYSCTRL 目前将是您的开发的理想之选。

    此致、

    Luke