你好
运行 MCUXpresso IDE 25.06 和用于 LPC5536 的 SDK 25.06。我使用配置工具来配置通过"新项目向导" 创建的新项目的硬件接口。
我首先使用时钟 工具将 CPU 时钟配置为 100 MHz。
接下来,我使用外设工具将 Flexcom0 配置为 USART(CMSIS 通用驱动程序)。当我添加该接口时,配置页面正确显示了一个错误:"clock source is not configured" 。 它还快速提示我可以启用 FXCOM0 时钟:
danielholala_0-1754310083584.png
我选择"启用 FXCOM0 时钟" ,然后错误指示灯就消失了。
我点击"更新代码" 。然后关闭 "外设 "窗口,返回 "显影 "视图。
现在我打开 Clocks Tool(时钟工具),以更改 FXCOM0 时钟的路由。
可以看到"FXCOMCLK0" 时钟已启用:
danielholala_1-1754313214496.png
在这里,我将 FCCCLKSEL0 从"main_clk" 改为"system_pll_divided_clock。这将禁用 FXCOMCLK0。
danielholala_2-1754313407176.png
点击"更新代码" 后,我再次打开外设工具。
在那里,我看到了与之前相同的错误指示器,即断言 Flexcom0 时钟未配置(正确)。
现在,我再次使用之前的"快速修复" ,让外设工具为我启用时钟。
我打开时钟工具,发现时钟路径上的一些元器件现在已启用,但以前曾被禁用:
danielholala_3-1754313896562.png
和以前一样,我不想使用"main_clk" 的时钟路由,而是使用"pll_clk_div" 的时钟路由。
当切换到"pll_clk_div" 时,FXCOMCLK0 会再次禁用。Arrrgghh.
我到此为止。这显然不是将时钟路由到硬件接口的有效工作流程。在不同的配置工具之间来回切换需要太多的麻烦。
因此,我从振荡器开始为时钟布线。这在我按下 PLLDIV 之前一直有效。
danielholala_4-1754314347373.png
该元素已禁用,我不知道如何启用它。我尝试双击它、名称、分频器、" 处于非活动状态的 " 文本,但无济于事。
最后,我右键单击元素,选择"编辑设置:PLLDIV" 。在这里,我尝试输入"PLLDIV Frequency" ,但弹出的错误窗口称该元素已禁用。我绝望地点击了 " 暂停分频器计数器 " 然后选择了 " 启用分频器计数器 "。
你能相信吗?🤷
时钟工具在这方面确实很不方便,也不直观。它应该提供 " 快速修复 " 以轻松启用任何元器件。这将很有帮助。
真聪明非常感谢你花时间写出如此详细和全面的回答。我非常欣赏你的深入研究。
在我的下一个项目中,我一定会尝试你描述的步骤。
致以最诚挚的问候,
Daniel
我检查了您的使用案例和您报告的问题。外设工具中提供的启用 FXCOM0 时钟功能只是时钟工具的快捷方式。时钟工具为时钟图中的每个电平输出提供相同的功能:
marek_neuzil_13-1755261021160.png
您的用例可以在时钟工具中处理,无需切换工具。每个电平输出的快捷菜单都包含 “启用” 命令。此功能只是通过启用时钟路径上的时钟门、分频器和其他元件来启用时钟。您的特定要求必须通过手动选择时钟源和选择 PLL 模式、配置外部时钟源(还必须根据板的连接手动指定外部时钟源/晶体)来处理。
例如,如果您想使用启用 FXCOM0 时钟命令,可以这样做:
选择 FCCLKSEL0 的main_clk时,选择系统 PLL 分频 ,然后点击启用 FXCOM0 时钟。
marek_neuzil_1-1755260860701.png
然后选择main_clk(因为这是 FRGCLKSEL0 的唯一有效时钟源),然后必须选择pll_clk_div ,因为要使用 PLL 输出。
再次处理启用 FXCOM0 时钟命令时,请参阅下文:
marek_neuzil_2-1755260860732.png
PLLDIV 分频器已启用:
marek_neuzil_3-1755260860738.png
请注意,PLL 本身不使用,PLL 被旁路,因为 PLL 未配置。它提供两种功能模式和其他必须指定的设置。
marek_neuzil_4-1755260860752.png
例如,选择 "正常 "模式时,将启用 PLL 并设置 384 MHz 频率。
marek_neuzil_5-1755260860763.png
如果板使用晶体,例如 16 MHz,则必须在 XTAL 时钟源详细信息设置中将其设置为包括电容和工作模式:
marek_neuzil_6-1755260860786.png
您可以为 PLL 选择外部时钟源和源时钟:
时钟门是禁用的,因此您可以在 "细节 "视图设置中手动启用它(单击元素)。
marek_neuzil_7-1755260860830.png
选择启用和时钟值:
marek_neuzil_8-1755260860844.png
您还可以在时钟图中指定输出频率:
marek_neuzil_9-1755260860854.png
时钟工具会选择可能的时钟分频器并提供满足要求的设置:
marek_neuzil_10-1755260860863.png
选择所需频率也会导致频率输出锁定(图中频率附近的锁定图标)。
如果您需要的频率无法通过现有时钟路径实现(例如 FXCOMCLK2 的 30 MHz),则可以使用 FXCOM2 时钟的高级解析器:
marek_neuzil_11-1755260860886.png
它对可能的时钟路径进行了更复杂的分析,并尝试为所有要求和锁定设置找到可能的解决方案。在这种情况下,它会更改主时钟和 PLL 频率的设置:
marek_neuzil_12-1755260860938.png
时钟工具为现代 MCU 的复杂时钟模型提供高级支持,这些模型为所有外设和系统模块提供多种时钟路径设置,有时还需要更高级的用户配置以满足特定要求。
如果您还发现任何问题或需要改进,请随时与我联系。我们仍在开发新功能,并在下一版配置工具中为客户做出改进。
顺祝商祺!
马雷克-诺伊齐尔
@danielholala 你好、
我使用的是 MCUXpresso IDE 最新版本的 ConfigTools,即 25.6.136。
尽管如此,我会将您的信息作为宝贵建议转发给 ConfigTools 团队。
亲爱的 EdwinHz,感谢您的回复。
你的时钟工具版本和我的不一样吗?禁用 CTIMER4CLKDIV 时无法启用 CTIMER4 时钟。这对我来说是有感知的。我认为将时钟从源(振荡器)路由到目标元器件(例如 CTIMER4 时钟)是一种很好的做法。大图中,从左到右依次为
我坚信,当我为时钟分频器选择频率或更改 " Clocks 图 " 中的分频器值后自动启用时钟分频器时,用户体验可以得到明显而关键的改善。
希望您能将我的建议转达给 ConfigTools 团队。
谢谢。
丹尼尔
@danielholala 你好、
在这种特殊情况下,需要先启用 CTIMER4 时钟,才能修改 CTIMER4CLKDIV 的值:
EdwinHz_0-1754499954754.png
考虑到分频器的输出直接是 CTIMER4 时钟,正如你所提到的,也许它还应该从 CTIMER4CLKDIV 的配置中启用它。我将把这一请求转达给 ConfigTools 团队,以便他们对实施情况进行评估。
BR,
Edwin.
亲爱的@EdwinHz、
你建议输入一个频率来启用分频器。这很直观,我同意。
我试过这个,但对我不起作用。如果我输入频率,会弹出一个警告窗口,告诉我分频器已禁用,请参见屏幕截图:
danielholala_0-1754471403192.png
我认为在我输入频率或修改分频器值时启用分频器会很直观(例如,只需点击文本 " /1 " 上的元素下方)。
我希望配置工具团队能在今后的更新中解决这个问题。
@danielholala 你好、
当点击这些分频器中的任何一个方块时,你会看到右边的 " Details " 窗口将发生变化,以反映该方块可能发生的变化。因此,编辑过程是点击区块,然后通过在"Details" 窗口设置频率来启用它:
EdwinHz_1-1754419559520.png
此外,您还可以右键单击程序块,然后选择"编辑其设置:在这种情况下,PLDIV" ,就像你之前在帖子中提到的那样。这样,就会出现一个弹出窗口,其中的所有设置与之前的 "详细信息 "窗口相同:
EdwinHz_3-1754419684747.png
BR,
Edwin
谢谢@EdwinHz 的回复。我知道"quick fix" 无法知道我要使用哪个时钟源。因此,这不是我的主要不满。
我的主要抱怨是关于启用时钟分频器,例如PLLDIV:
danielholala_0-1754377935924.png
我找不到用鼠标在时钟图上启用它的方法。这是一次令人沮丧的经历。
有没有办法通过鼠标操作来启用它?
如果没有,我建议添加一个。
谢谢
Daniel
@danielholala 你好、
我理解 ConfigTools 带来的挫败感,有时,当"修补" 某个东西时,可能会"破坏" 其他东西。问题是,在这种情况下,使用 ConfigTools 提示的"快速修复" 选项就能快速、轻松地解决时钟初始化问题。我知道您不希望在这种情况下使用主 CPU 时钟,但在这种情况下,这是 ConfigTools 可以提供的最快速、最简单的修复方法。如果要进行更细微的配置,则需要手动设置。
BR,
Edwin.