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/RM57L843:RM57L843 MCU 中映射卡的初始化存在问题

Guru**** 2477705 points
Other Parts Discussed in Thread: RM57L843, HALCOGEN

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/684831/ccs-rm57l843-problem-in-initialization-of-mapclocks-in-rm57l843-mcu

器件型号:RM57L843
主题中讨论的其他器件: HALCOGEN

工具/软件:Code Composer Studio

您好!

我正在尝试在没有 HCG 的情况下初始化 RM57L843 MCU、并且在初始化时钟时遇到困难。
我使用汇编语言创建了与 HCG 相同的序列和样本值、但结果不同。

对于 HCG (它正在工作)、我得到了以下两个频率:

振荡器频率 SSW_CAPTURE_COUNT (SSWPLL2)     15.3MHz

PLL 输出频率 SSW_CLKOUT_COUNT (SSWPLL3)  293.3MHz

在新程序中、我有以下两个频率:

振荡器频率 SSW_CAPTURE_COUNT (SSWPLL2)     23.2MHz

PLL 输出频率 SSW_CLKOUT_COUNT (SSWPLL3)  436.3MHz

此外、我使用跟踪分析器 XDS560V2、当新程序结束时钟配置(Sys_PllCtl1:0xFFFFFF70 = 0x20079500)、跟踪分析器停止工作。

我可以采取什么措施来识别此问题?

感谢你的帮助

 Jerome

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

    正确的顺序:
    1.用分频器(R 分频器)最后一级的最大值配置 PLL 控制寄存器
    2.启用锁相环(PLL)
    3.修整 LPO
    4、等待主 PLL 输出变为有效。
    5.将器件时钟域映射到所需的时钟源
    6.分步减小 R 分频器的值以获得 PLL 和 PLL2的目标 PLL 输出频率。

    晶振频率是多少? 支持的最大晶振频率为20MHz。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Wang、
    非常感谢您的快速回复。
    晶振频率为16MHz。
    但是频率的微积分是错误的、因为 RTI 自由运行计数器0是错误的。
    这些值是正确的:


    振荡器频率 SSW_CAPTURE_COUNT (SSWPLL2) 15.3MHz
    PLL 输出频率 SSW_CLKOUT_COUNT (SSWPLL3) 293.3MHz


    为什么 RTI 自由运行计数器0错误?
    当程序结束时钟配置(Sys_PllCtl1:0xFFFFFF70 = 0x20079500)时、为什么跟踪分析器 XDS560V2停止工作?
    详细顺序如下:

    禁用 PLL:Sys_CSDisSet = 0x00000042
    等待 PLL 被禁用:Sys_CsDis = 0x00000042
    清除全局状态寄存器:Sys_GlbStat = 0x00000301
    配置 PLL 控制寄存器:Sys_PllCtl1 = 0x3F079500
    设置 PLL 控制寄存器2、设置扩展速率、设置带宽调整、设置内部 PLL 输出分频器、设置扩展量:Sys_PllCtl2 = 0x3FC0703D
    设置 pll2控制寄存器、在锁定前将 PLL 输出时钟分频器设置为最大值、设置参考时钟分频器、设置内部 PLL 输出分频器、设置 PLL 倍频器:SYS2_PLLCTL3 = 0x1F079500
    启用 PLL 以启动或时钟:Sys_CSDisClr = 0x00000042
    从 OTP 加载 TRIM 值:Sys_LpoMonCtl = 0x0100120D
    等待 PLL 启用:Sys_CsDis 和0x00000042 = 0
    为 HCLK 设置系统时钟分频器:SYS2_HCLK1Ctrl = 0x00000001
    禁用时钟域0xFFFFFF3C (Sys_CdDIIS)= 0x00000020
    等待时钟域被锁定
    SYS_GhvSrc = 0x01010001。 设置 GCLK、HCLK 和 VCLK 时钟源以实现正常运行、断电模式和唤醒后[0xFFFFFF74]= 0x3FC0703D
    设置 RTICLK1和 RTICLK2时钟:Sys_RclkSrc = 0x01090109
    为 AVCLK1和 AVCLK2设置异步外设时钟源:Sys_VlckASrc = 0x00000909
    为 VCLK1、VCLK2、VCLK3设置同步外设时钟分频器:Sys_ClkCntl = 0x01010100
    SYS_ClkCntl = 0x01010100
    SYS2_CLK2CNTRL = 0x00000101
    SYS2_VCLKACON1 = 0x00090009
    R 分频器(编程为0xF)。 已更改为新值:Sys_PllCtl1 = 0x20079500 ( 此时 XDS560V2 跟踪分析器停止工作)
    (SYS2_PLLCTL3)= 0x00079500
    0xFFFFFF74 (Sys_PllCtl2)= 0x3FC0703D

    感谢你的帮助。

    Jerome

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

    您好、Wang

     当 系统时钟被置位时、XDS560V2跟踪分析器必须被配置。

    在具有 HALCoGen 的空 C 项目中、调试的起点是 main.c 程序、此时映射时钟被初始化。 可以对跟踪分析器进行分析

    在空的纯汇编工程中、调试的起始点是复位矢量、此时映射时钟固定在复位低频率。 此时无法分析跟踪分析器。 因此、当时钟频率发生变化时、它停止工作:当 R 分频器(编程为0xF)更改为新值时:SYS_PllCtl1 = 0x20079500

    现在、我在 mapClock 初始化后分析跟踪分析器、一切都运行良好。

    RTI 自由运行计数器0的问题是由一个不良的 RTI 初始化序列引起的。

    此致

    Jerome

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢 Jerome 让我们了解您的解决方案。