硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4484|回复: 6
收起左侧

[GPIO] 对IMX RT 1050 IO 脚命名的疑惑??

[复制链接]

27

主题

95

回帖

181

积分

初级会员

积分
181
发表于 2017-11-3 09:28:11 | 显示全部楼层 |阅读模式
pin.jpg


比如ADC1 ,其中有引脚名字叫  GPIO_AD_B1_11, GPIO_AD_B0_12等等, 网络接口GPIO_B1_07。。。。

第一眼看上去,感觉就是这个引脚名字怎么这么长?这个引脚从名字上就可以看出其功能吗?后面得知其实并没有, 因为一个引脚多半是有复用的。

不知道这是传统还是咋的, 看着特别难受,怎么不直接将IO口分组,比如PAx,PBx。。。。

看下面代码:‘

void BOARD_InitPins(void) {
  CLOCK_EnableClock(kCLOCK_Iomuxc);          /* iomuxc clock (iomuxc_clk_enable): 0x03u */

  IOMUXC_SetPinMux(
      IOMUXC_GPIO_AD_B0_02_GPIO1_IO02,        /* GPIO_AD_B0_02 is configured as GPIO1_IO02 */
      0U);                                    /* Software Input On Field: Input Path is determined by functionality */
  IOMUXC_SetPinMux(
      IOMUXC_GPIO_AD_B0_12_LPUART1_TX,        /* GPIO_AD_B0_12 is configured as LPUART1_TX */
      0U);                                    /* Software Input On Field: Input Path is determined by functionality */
  IOMUXC_SetPinMux(
      IOMUXC_GPIO_AD_B0_13_LPUART1_RX,        /* GPIO_AD_B0_13 is configured as LPUART1_RX */
      0U);                                    /* Software Input On Field: Input Path is determined by functionality */
  IOMUXC_SetPinMux(
      IOMUXC_GPIO_B0_00_LCD_CLK,              /* GPIO_B0_00 is configured as LCD_CLK */
      0U);                                    /* Software Input On Field: Input Path is determined by functionality */
  IOMUXC_SetPinMux(
      IOMUXC_GPIO_B0_01_LCD_ENABLE,           /* GPIO_B0_01 is configured as LCD_ENABLE */
      0U);                                    /* Software Input On Field: Input Path is determined by functionality */
  IOMUXC_SetPinMux(
      IOMUXC_GPIO_B0_02_LCD_HSYNC,            /* GPIO_B0_02 is configured as LCD_HSYNC */
      0U);                                    /* Software Input On Field: Input Path is determined by functionality */
  IOMUXC_SetPinMux(
      IOMUXC_GPIO_B0_03_LCD_VSYNC,            /* GPIO_B0_03 is configured as LCD_VSYNC */
      0U);


只是想把  GPIO_AD_B0_02   配置成  GPIO1_IO02     // GPIO_AD_B0_02 is configured as GPIO1_IO02
GPIO_AD_B0_02   配置成  GPIO1_IO02只是这个引脚的功能之一,还可以配置成很多其他功能 。那这样命名是不是会造成疑惑,为什么这里加个AD, B0_B2又是什么意思了?


如果命名简短一点,代码写起来看起来是不是要轻松一点?

之前没用过飞思卡尔的芯片,不知道其他的飞思卡尔芯片是不是也是这种命名方式。


才疏学浅,请各位不吝赐教[s:130]
回复

使用道具 举报

19

主题

272

回帖

329

积分

高级会员

积分
329
发表于 2017-11-3 09:34:14 | 显示全部楼层
应该是指可以配置成啥功能吧。例如AD只能配置到带有AD的Pad上。外部存储的引脚只能配置到带emc大pad上
回复

使用道具 举报

6

主题

87

回帖

105

积分

初级会员

色不异空 空不异色 色即是空 空

积分
105
发表于 2017-11-3 09:36:09 | 显示全部楼层
GPIO_AD_B0_02 说明这个针脚可以配置成AD输入端口,也可配置成普通的GPIO口的端口B0的02脚,等恩智浦那个专用工具MCUXpresso_Config_Tools_v3_x86对这颗芯片支持了,就能很方便的看出如何配置来。
成就他人就是成就自己
回复

使用道具 举报

19

主题

272

回帖

329

积分

高级会员

积分
329
发表于 2017-11-3 09:40:19 | 显示全部楼层
应该是指可以配置成啥功能吧。例如AD只能配置到带有AD的Pad上。外部存储的引脚只能配置到带emc大pad上
回复

使用道具 举报

27

主题

95

回帖

181

积分

初级会员

积分
181
 楼主| 发表于 2017-11-3 09:40:29 | 显示全部楼层
reg.jpg


通翻手册,发现这个名字还是个寄存器。这个寄存器的名字真心长!

继续往下还能找到相关信息,这回是配置这个引脚的复用功能设置参数:

reg2.jpg


从字面上理解,基本可以猜到,这个脚应该可以用作ADC引脚,也可以当作某个GPIO端口的第2个IO引脚, 那中间那个B0是干嘛的?
回复

使用道具 举报

6

主题

87

回帖

105

积分

初级会员

色不异空 空不异色 色即是空 空

积分
105
发表于 2017-11-3 09:49:31 | 显示全部楼层

回 chinacool 的帖子

chinacool:


通翻手册,发现这个名字还是个寄存器。这个寄存器的名字真心长!

....... (2017-11-03 09:40) 
中间那个B0指的是端口B,他们把端口分成A、B、C、D等,每个端口又包含一些针脚
成就他人就是成就自己
回复

使用道具 举报

27

主题

95

回帖

181

积分

初级会员

积分
181
 楼主| 发表于 2017-11-3 09:57:09 | 显示全部楼层
继续翻手册, 有如下一个表:
table83.jpg


从这个表中基本可以看出点道道,除掉电源VSS,VDD之类的脚,大部分为IO脚, 共分为4组口, GPIO1, GPIO2, GPIO3,GPIO4,每组口有32位, 其中
GPIO_AD_B0_00  ~ GPIO_AD_B0_15 为 GPIO1「0」~GPIO1「15」
GPIO_AD_B1_00 ~ GPIO_AD_B1_15   为 GPIO1「16」~GPIO1「31」


GPIO_B0_00 ~GPIO_B0_15  为 GPIO2.IO[0] ~GPIO2.IO[15]
GPIO_B0_16 ~GPIO_B0_31  为 GPIO2.IO[16] ~GPIO2.IO[31]

其他的类似。。

这样看来io的命名基本可以看懂是什么意思了。
以 GPIO_AD_B0_00 为例: 这个脚作为IO时,为GPIO1「0」, 它也可以作为ADC引脚使用。也许还有别的用处,要查手册。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-12 16:23 , Processed in 0.045282 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表