2146227_zh-CN

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

2146227_zh-CN

2146227_zh-CN

LPC55xx:启用柔性通信接口 USART CMSIS 的时钟源

你好

运行 MCUXpresso IDE 25.06 和用于 LPC5536 的 SDK 25.06。我使用配置工具来配置通过"新项目向导" 创建的新项目的硬件接口。

我首先使用时钟 工具将 CPU 时钟配置为 100 MHz。

接下来,我使用外设工具将 Flexcom0 配置为 USART(CMSIS 通用驱动程序)。当我添加该接口时,配置页面正确显示了一个错误:"clock source is not configured" 。 它还快速提示我可以启用 FXCOM0 时钟:

danielholala_0-1754310083584.pngdanielholala_0-1754310083584.png

我选择"启用 FXCOM0 时钟" ,然后错误指示灯就消失了。

我点击"更新代码" 。然后关闭 "外设 "窗口,返回 "显影 "视图。

现在我打开 Clocks Tool(时钟工具),以更改 FXCOM0 时钟的路由。

可以看到"FXCOMCLK0" 时钟已启用:

danielholala_1-1754313214496.pngdanielholala_1-1754313214496.png


在这里,我将 FCCCLKSEL0 从"main_clk" 改为"system_pll_divided_clock。这将禁用 FXCOMCLK0。

danielholala_2-1754313407176.pngdanielholala_2-1754313407176.png

点击"更新代码" 后,我再次打开外设工具

在那里,我看到了与之前相同的错误指示器,即断言 Flexcom0 时钟未配置(正确)。

现在,我再次使用之前的"快速修复" ,让外设工具为我启用时钟。

我打开时钟工具,发现时钟路径上的一些元器件现在已启用,但以前曾被禁用:

danielholala_3-1754313896562.pngdanielholala_3-1754313896562.png

和以前一样,我不想使用"main_clk" 的时钟路由,而是使用"pll_clk_div" 的时钟路由。

当切换到"pll_clk_div" 时,FXCOMCLK0 会再次禁用。Arrrgghh.

我到此为止。这显然不是将时钟路由到硬件接口的有效工作流程。在不同的配置工具之间来回切换需要太多的麻烦。

因此,我从振荡器开始为时钟布线。这在我按下 PLLDIV 之前一直有效。

danielholala_4-1754314347373.pngdanielholala_4-1754314347373.png

该元素已禁用,我不知道如何启用它。我尝试双击它、名称、分频器、" 处于非活动状态的 " 文本,但无济于事。

最后,我右键单击元素,选择"编辑设置:PLLDIV" 。在这里,我尝试输入"PLLDIV Frequency" ,但弹出的错误窗口称该元素已禁用。我绝望地点击了 " 暂停分频器计数器 " 然后选择了 " 启用分频器计数器 "。

你能相信吗?🤷‍

时钟工具在这方面确实很不方便,也不直观。它应该提供 " 快速修复 " 以轻松启用任何元器件。这将很有帮助。







Re: LPC55xx: enable clock source for flexcomm interface USART CMSIS

你好@marek_neuzil

真聪明非常感谢你花时间写出如此详细和全面的回答。我非常欣赏你的深入研究。

在我的下一个项目中,我一定会尝试你描述的步骤。

致以最诚挚的问候,
Daniel




Re: LPC55xx: enable clock source for flexcomm interface USART CMSIS

你好@danielholala

我检查了您的使用案例和您报告的问题。外设工具中提供的启用 FXCOM0 时钟功能只是时钟工具的快捷方式。时钟工具为时钟图中的每个电平输出提供相同的功能:

marek_neuzil_13-1755261021160.pngmarek_neuzil_13-1755261021160.png


您的用例可以在时钟工具中处理,无需切换工具。每个电平输出的快捷菜单都包含 “启用” 命令。此功能只是通过启用时钟路径上的时钟门、分频器和其他元件来启用时钟。您的特定要求必须通过手动选择时钟源和选择 PLL 模式、配置外部时钟源(还必须根据板的连接手动指定外部时钟源/晶体)来处理。

例如,如果您想使用启用 FXCOM0 时钟命令,可以这样做:

选择 FCCLKSEL0 的main_clk时,选择系统 PLL 分频 ,然后点击启用 FXCOM0 时钟

marek_neuzil_1-1755260860701.pngmarek_neuzil_1-1755260860701.png


然后选择main_clk(因为这是 FRGCLKSEL0 的唯一有效时钟源),然后必须选择pll_clk_div ,因为要使用 PLL 输出。

再次处理启用 FXCOM0 时钟命令时,请参阅下文:

marek_neuzil_2-1755260860732.pngmarek_neuzil_2-1755260860732.png

PLLDIV 分频器已启用:


marek_neuzil_3-1755260860738.pngmarek_neuzil_3-1755260860738.png


请注意,PLL 本身不使用,PLL 被旁路,因为 PLL 未配置。它提供两种功能模式和其他必须指定的设置。

marek_neuzil_4-1755260860752.pngmarek_neuzil_4-1755260860752.png

例如,选择 "正常 "模式时,将启用 PLL 并设置 384 MHz 频率。

marek_neuzil_5-1755260860763.pngmarek_neuzil_5-1755260860763.png

如果板使用晶体,例如 16 MHz,则必须在 XTAL 时钟源详细信息设置中将其设置为包括电容和工作模式:

marek_neuzil_6-1755260860786.pngmarek_neuzil_6-1755260860786.png

您可以为 PLL 选择外部时钟源和源时钟:

时钟门是禁用的,因此您可以在 "细节 "视图设置中手动启用它(单击元素)。

marek_neuzil_7-1755260860830.pngmarek_neuzil_7-1755260860830.png

选择启用和时钟值:

marek_neuzil_8-1755260860844.pngmarek_neuzil_8-1755260860844.png

您还可以在时钟图中指定输出频率:

marek_neuzil_9-1755260860854.pngmarek_neuzil_9-1755260860854.png

时钟工具会选择可能的时钟分频器并提供满足要求的设置:

marek_neuzil_10-1755260860863.pngmarek_neuzil_10-1755260860863.png

选择所需频率也会导致频率输出锁定(图中频率附近的锁定图标)。

如果您需要的频率无法通过现有时钟路径实现(例如 FXCOMCLK2 的 30 MHz),则可以使用 FXCOM2 时钟的高级解析器:


marek_neuzil_11-1755260860886.pngmarek_neuzil_11-1755260860886.png


它对可能的时钟路径进行了更复杂的分析,并尝试为所有要求和锁定设置找到可能的解决方案。在这种情况下,它会更改主时钟和 PLL 频率的设置:


marek_neuzil_12-1755260860938.pngmarek_neuzil_12-1755260860938.png


时钟工具为现代 MCU 的复杂时钟模型提供高级支持,这些模型为所有外设和系统模块提供多种时钟路径设置,有时还需要更高级的用户配置以满足特定要求。

如果您还发现任何问题或需要改进,请随时与我联系。我们仍在开发新功能,并在下一版配置工具中为客户做出改进。

顺祝商祺!

马雷克-诺伊齐尔

Re: LPC55xx: enable clock source for flexcomm interface USART CMSIS

@danielholala 你好、

我使用的是 MCUXpresso IDE 最新版本的 ConfigTools,即 25.6.136。

尽管如此,我会将您的信息作为宝贵建议转发给 ConfigTools 团队。


Re: LPC55xx: enable clock source for flexcomm interface USART CMSIS

亲爱的 EdwinHz,感谢您的回复。

你的时钟工具版本和我的不一样吗?禁用 CTIMER4CLKDIV 时无法启用 CTIMER4 时钟。这对我来说是有感知的。我认为将时钟从源(振荡器)路由到目标元器件(例如 CTIMER4 时钟)是一种很好的做法。大图中,从左到右依次为

我坚信,当我为时钟分频器选择频率或更改 " Clocks 图 " 中的分频器值后自动启用时钟分频器时,用户体验可以得到明显而关键的改善。

希望您能将我的建议转达给 ConfigTools 团队。

谢谢。
丹尼尔


Re: LPC55xx: enable clock source for flexcomm interface USART CMSIS

@danielholala 你好、

在这种特殊情况下,需要先启用 CTIMER4 时钟,才能修改 CTIMER4CLKDIV 的值:

EdwinHz_0-1754499954754.pngEdwinHz_0-1754499954754.png

考虑到分频器的输出直接是 CTIMER4 时钟,正如你所提到的,也许它还应该从 CTIMER4CLKDIV 的配置中启用它。我将把这一请求转达给 ConfigTools 团队,以便他们对实施情况进行评估。

BR,
Edwin.

Re: LPC55xx: enable clock source for flexcomm interface USART CMSIS

亲爱的@EdwinHz

你建议输入一个频率来启用分频器。这很直观,我同意。

我试过这个,但对我不起作用。如果我输入频率,会弹出一个警告窗口,告诉我分频器已禁用,请参见屏幕截图:

danielholala_0-1754471403192.pngdanielholala_0-1754471403192.png

我认为在我输入频率或修改分频器值时启用分频器会很直观(例如,只需点击文本 " /1 " 上的元素下方)。

我希望配置工具团队能在今后的更新中解决这个问题。

Re: LPC55xx: enable clock source for flexcomm interface USART CMSIS

@danielholala 你好、

当点击这些分频器中的任何一个方块时,你会看到右边的 " Details " 窗口将发生变化,以反映该方块可能发生的变化。因此,编辑过程是点击区块,然后通过在"Details" 窗口设置频率来启用它:

EdwinHz_1-1754419559520.pngEdwinHz_1-1754419559520.png

此外,您还可以右键单击程序块,然后选择"编辑其设置:在这种情况下,PLDIV" ,就像你之前在帖子中提到的那样。这样,就会出现一个弹出窗口,其中的所有设置与之前的 "详细信息 "窗口相同:

EdwinHz_3-1754419684747.pngEdwinHz_3-1754419684747.png

BR,
Edwin


Re: LPC55xx: enable clock source for flexcomm interface USART CMSIS

谢谢@EdwinHz 的回复。我知道"quick fix" 无法知道我要使用哪个时钟源。因此,这不是我的主要不满。

我的主要抱怨是关于启用时钟分频器,例如PLLDIV:

danielholala_0-1754377935924.pngdanielholala_0-1754377935924.png

我找不到用鼠标在时钟图上启用它的方法。这是一次令人沮丧的经历。

有没有办法通过鼠标操作来启用它?

如果没有,我建议添加一个。

谢谢
Daniel



Re: LPC55xx: enable clock source for flexcomm interface USART CMSIS

@danielholala 你好、

我理解 ConfigTools 带来的挫败感,有时,当"修补" 某个东西时,可能会"破坏" 其他东西。问题是,在这种情况下,使用 ConfigTools 提示的"快速修复" 选项就能快速、轻松地解决时钟初始化问题。我知道您不希望在这种情况下使用主 CPU 时钟,但在这种情况下,这是 ConfigTools 可以提供的最快速、最简单的修复方法。如果要进行更细微的配置,则需要手动设置。

BR,
Edwin.

标记 (1)
无评分
版本历史
最后更新:
‎11-20-2025 03:39 PM
更新人: