本文介绍 MCUXpresso 配置工具中包含的“引脚工具” ,该工具用于配置引脚。有关“时钟工具”的使用说明,请参阅以下文章。
近年来,微控制器(MCU)集成了许多外围功能,导致一些MCU拥有超过200个引脚。MCU的引脚配置设计灵活,允许将多个功能(信号)分配给单个引脚。此外,同一功能还可以有多个引脚选项。虽然这种高度灵活性也使得配置变得相当复杂。
因此,决定将哪个功能分配给哪个引脚(引脚复用配置)是设计早期阶段一项重要且具有挑战性的任务。这时,MCUXpresso 配置工具中的“引脚工具”就派上了用场。
Pins Tool 允许您通过 GUI 直观地执行引脚分配和电气设置,并自动将结果生成为代码,从而避免手动配置错误和冲突。
我们将首先解释如何在 VS Code 环境中的配置工具中使用引脚工具。然后,我们将演示如何更改引脚设置和更改 LED 闪烁颜色。
本指南解释了如何在 VS Code 环境中安装 Config Tools。
*如果您尚未为 VS Code 安装 MCUXpresso,请参阅此博客文章。
启动 VS Code 后,从左侧面板中选择 MCUXpresso,然后从快速启动面板中单击“打开 MCUXpresso 安装程序”。
安装程序将启动。选择 MCUXpresso 配置工具,然后单击右上角的“安装”。
(这篇博文介绍了 MCUXpresso 配置工具 v26.03 的安装过程。)
安装开始后,系统会提示您登录 MyNXP。
登录后,将显示许可协议。请阅读并同意其内容。
*安装完成后请重启VS Code。
问:如果安装失败怎么办?
A. 请从以下网站下载适合您电脑操作系统环境的安装程序并进行尝试。
MCUXpresso 配置工具 | NXP 微控制器 (MCU) 软件开发 | NXP 半导体
安装过程中,初始屏幕上会出现以下界面。如果您没有看到任何相关信息,可以将其关闭。![]()
要从 VS Code 访问配置工具,请安装 SDK,导入示例,然后右键单击您的项目。“使用 MCUXpresso 配置工具打开”将出现;单击它。
*整个过程将在最终演示中详细解释,因此我们在此省略。
配置工具将在短时间内启动。
如果您使用的是 MCUXpresso IDE,则配置工具默认已集成,可以直接从顶部选项卡启动。
启动配置工具后,您可以使用屏幕右侧的面板在工具之间切换。
这次,我们将选择“别针”。
本节介绍图钉工具中的主要视图。
接下来,我们将仔细研究路由细节,这是设置中最重要的方面。
如果由于引脚设置错误而导致故障,问题视图将显示错误的位置和原因。其他区域也会以红色突出显示,方便您直观地识别问题区域。
在下图所示的电路中,多个外设配置在引脚 B12 上,这意味着发生了冲突。
在实际使用该工具之前,让我们先明确一下 Pins Tool 是用来配置什么的。
在 PinsTool 中
“交通信号灯从哪里来,又到哪里去?”
我们将从这个角度配置引脚设置。
这种“流程”主要有三种模式。
① 将外部信号输入到MCU(引脚⇀外设)
首先,我们来看一下输入。这涉及到通过引脚将来自外部传感器、开关或其他集成电路的信号输入到微控制器内部的外围设备中。
在“路线详情”中点击“+”按钮将添加一行,允许您直接输入数据。
下图中的示例显示,“复位按钮 SW1 的信号输入通过 F3 引脚 (RESET_B) 进入 MCU”。
② 将MCU内部信号输出到外部(外设⇀引脚)
接下来是输出。在这种情况下,信号会通过引脚从MCU内部的外设发送到外部。
下图中的示例展示了如何“将来自内部外设 (FlexSPI) 的信号 (FLEXSPI_B_DATA0) 分配给 K3 引脚,并将该信号向外输出”。
③ 内部自包含连接(外围设备⇀外围设备)
最后,还有一种情况,即一个内部外设的输出连接到另一个内部外设的输入。
在下图所示的示例中,PWM 触发信号 (PWM0_A0_TRIG0) 通过内部路由连接到 ADC0 触发输入 (TRG)。 这表明它将被用作 CH0。
在这种情况下,由于它不通过外部引脚,因此表示最左侧引脚分配的“#”为 n/a。
接下来,我们将实际更改引脚工具中的引脚设置,看看评估板上的 LED 闪烁颜色是否会发生变化。
硬件准备
本文使用的评估板是
FRDM-MCXN947
安装 SDK
在VS Code 的左侧面板中选择MCUXpresso ,然后单击“导入存储库”。
接下来,点击左侧第二个选项“远程存档”,然后在“软件包”部分搜索“ FRDM-MCXN947 ”。输入“ 947 ”后,它应该会立即出现。
您可以根据需要设置名称、位置和“创建 Git”复选框。
*对于名称和位置名称,最好只使用小写字母数字字符和下划线(_)或连字符(-) ,并避免使用符号( \、/、:、*、?、"、、| )和空格(这可能会导致程序故障)。
最后,勾选“我同意”复选框,然后点击“导入”开始安装SDK 。请稍候片刻。当屏幕右下角显示“存储库导入成功”时,安装即完成。
导入示例代码
SDK安装完成后,即可导入示例代码。
点击左侧面板中的“从存储库导入示例”。
在右侧显示的每个选项卡中,“存储库”下,选择您刚刚导入的SDK 。
请为“主板”选择FRDM-MCXN947 。
在本“模板”演示中,我们将展示如何更改LED的闪烁颜色。
尝试输入“ led ”,然后选择出现的“ driver_examples/gpio/gpio_led_output_cm33_core0 ”。
接下来,选择工具链并点击“导入” 。
打开配置工具
右键单击导入的示例,然后选择“使用 MCUXpresso 配置工具打开”。稍等片刻,配置工具将启动。
配置工具打开后,首先查看右侧面板中的概览。在本例中, “时钟”和“引脚”均显示为绿色(开启) ,表示这两个工具均已启用。
选择引脚以查看当前引脚设置。
查看“布线详情”,可以看到三个引脚(A1、B1、B12)已启用。
但是,当我们查看LED的B12 引脚组的方向时,它显示“未指定”,这意味着LED未在引脚工具中设置为输出。
那么,为什么即使没有进行配置, LED也会闪烁呢?让我们回到 VS Code,查看C源文件 (gpio_led_output.c)。
查看C源文件,引脚功能由BOARD_InitHardware()反映出来,但正如我们之前确认的那样,此时引脚 B12 并未在Pins Tool中设置为 GPIO 输出。
因此,在该示例的初始状态下, GPIO输入/输出方向取决于源代码,而不是引脚工具。
具体来说, GPIO_PinInit() 函数将引脚 B12 初始化为“GPIO 输出”,使其可以控制 LED 。
此处的目的是使用引脚工具更改引脚设置,并将这些更改反映到代码中。因此,我们将删除与GPIO初始化和控制相关的源代码部分(如下红色部分所示) 。
删除它将从任何地方移除 GPIO 输出设置,因此在构建和调试时LED将不再闪烁。
接下来,使用引脚工具配置引脚。在引脚工具中,将引脚 # B12 的GPIO0_10方向更改为输出。
这是上面 ② 的情况,其中内部MCU信号被发送到外部(外设 ⇀ 引脚)。
这样就改变了配置,使得“引脚B12 ( PIO0_10 ) 被设置为GPIO输出,并且由MCU的内部 GPIO 控制(软件控制)控制的信号通过该引脚输出到外部 ( LED_RED )。
您可以在右侧的代码预览面板中看到代码更改。
将“未指定”更改为“输出”会在pin_mux.c的底部添加GPIO初始化代码。
现在,我们将重写示例代码。首先,点击“配置工具”屏幕左上角的“更新代码” 。
此时会弹出一个窗口。在这里,您可以像在代码预览中一样看到代码更改。
返回VS Code后,您会在屏幕顶部看到三个复选框。请确保选中它们,然后单击“确定” 。稍等片刻,时钟工具中所做的更改将应用到VS Code中的示例代码。
*如果您使用的是其他 SDK 版本,则可能不会显示此内容。
完成后,在组装之前将电路板(FRDM-MCXN947)连接到您的电脑。
连接建立后,调试导入的示例(构建、编写和运行应用程序) 。
调试过程完成后,程序将在断点处停止,因此请点击屏幕顶部的“|▶”图标。
如图所示,红色LED灯将开始闪烁。
要退出程序,请点击方形图标(只要连接到电脑, LED 指示灯就会继续闪烁,但请暂时忽略这一点) 。
为什么红色LED灯会闪烁?
以下是关于红色LED 指示灯闪烁原因的一些补充信息。
在这种情况下,红色LED的闪烁由两个主要设置决定:
这两个元件使LED能够闪烁。
哪个LED正在被控制?(app.h)
在C源文件“ gpio_led_output.c ”的底部,有一个名为GPIO_PortToggle的函数:它可以反转指定GPIO引脚的输出。
在这个函数中,
这将反转指定 GPIO 引脚的输出,使 LED 闪烁。
但是,目前还不清楚哪个颜色的LED对应于这个GPIO端口和引脚。
然后,右键单击BOARD_LED_GPIO ,选择“转到定义”(或“fn + F12” )打开“ app.h ”。
如果您查看app.h中的Definitions部分,您会发现这些定义被分配给了红色LED的GPIO 引脚。这证实了操作的目标是红色LED 。然而,即使在app.h中已为红色LED指定了引脚,除非将该引脚配置为GPIO输出,否则LED 也不会亮起。
如何使用引脚(pin_mux.c)
接下来,我们将查看pin_mux.c的内容以检查引脚设置。在gpio_led_output.c文件中,您会找到 Pin、Clock 和 Debug 参数。每个控制台都有一个 BOARD_InitHardware()函数用于初始化,因此请在此处右键单击并选择“转到定义”(或“fn + F12” )以查看更多详细信息。
下一个位置是BOARD_InitPins();,其中描述了引脚设置。再次右键单击BOARD_InitPins();并选择“转到定义(或“fn + F12” )”以打开“ pin_mux.c ”。
pin_mux.c文件反映了Pins Tool中的配置,与您之前在代码预览中将红色LED设置为输出时看到的内容相同。文件底部有如下描述,表示连接到红色LED 的引脚B12被初始化为GPIO输出,初始值为0 。
这样, app.h确定“要控制哪个LED (红色LED )”,而pin_mux.c使“该引脚可用作GPIO输出”,以便可以通过GPIO_PortToggle()控制红色LED 。
更改引脚设置,将 LED 的闪烁颜色更改为蓝色。
接下来,我们将通过改变引脚设置,把LED的闪烁颜色从红色改为蓝色。
返回配置工具,如果您在引脚中搜索“ LED ”,您会发现引脚C4对应于蓝色LED (LED_BLUE) 。
检查C4引脚时,会出现如下所示的窗口。选中GPIO1:GPIO,2 (PIO1_2)并单击“完成” 。
完成这些步骤后,您添加的C4引脚将出现在“布线详情”中。
C4引脚配置为GPIO功能( PIO1_2 ),并被赋予标签“LED_BLUE ” 。这使得软件能够将此引脚视为蓝色LED 。
接下来,我们将配置引脚的输入/输出设置。在“方向”面板中,将红色LED 的设置从“输出”更改为“未指定”,将蓝色 LED 的设置从“未指定”更改为“输出”。这样,蓝色 LED 就被配置为 GPIO 输出。
您可以在代码预览中看到pin_mux.c的变化。
现在,重写示例代码。和之前一样,在配置工具中运行“更新代码” ,并在VS Code中确认更改。更改后的引脚设置将会生效。
目前, pin_mux.c已更新。
最后,更新app.h。
按照前面描述的步骤打开app.h ,并将LED_RED更改为LED_BLUE 。
通过更改此定义,您可以将GPIO控制目标从红色LED切换到蓝色LED 。
完成这些步骤后,再次进行调试(构建、刷写并运行应用程序) 。
调试过程完成后,点击屏幕顶部的“|▶”图标。
如图所示,蓝色LED灯将开始闪烁。
顺便一提,之所以一个LED可以闪烁不同的颜色,是因为本项目中使用的FRDM-MCXN947开发板配备了RGB LED。查看FRDM-MCXN947的电路图,可以看到每个引脚都分别对应了R/G/B三种颜色。
因此,通过在引脚工具中同时设置两个彩色引脚的输出并适当格式化源代码,可以表示各种颜色(例如,红色+蓝色=紫色)。
打开MCX N 参考手册后,你会发现一个名为MCXNP184M150F70_Pinout.xlsx的附件。该文件包含引脚列表以及每个引脚对应的外设功能列表。
如今,随着引脚工具的不断发展,参考此类列表手动配置引脚设置的需求可能会减少。
另一方面,它仍然可以作为系统设计早期阶段的有用参考文档,例如用于器件选择、封装比较和检查可用外围设备。
要下载 MCX N 参考手册,您需要注册一个 MyNXP 帐户。
*使用 Acrobat Reader 打开
这个解释使用了一个简单的例子,但实际设计中的引脚配置要复杂得多。这时Pins Tool就派上用场了;它可以帮助避免错误,并实现高效的配置。请试用一下!
=========================
我们目前无法 回复 此帖子“ 评论”部分留下的评论。 对于由此造成的不便,我们深表歉意,但
在进行咨询时, 请 参考“ NXP 技术问题 - 如何联系我们 ( 日语博客 ) ” 。
(如果您已经是 恩智浦的 分销商或 与 恩智浦 有合作关系 ,您可以直接咨询您的代表。)
本指南重点介绍 MCUXpresso 配置工具中的“引脚工具”,解释设置引脚的基本原理和方法。
本指南将涵盖从在 VS Code 环境中安装到通过更改引脚设置来演示 LED 闪烁的所有内容。
(预计耗时:10 分钟 *假设已安装 MCUXpresso for VSC(Visual Studio Code)SDK)