IMX6ULL GPIO PAD引脚配置解析

最近发现分析设备树中GPIO 中的电器属性配置参数比较麻烦

例如 :SD卡的CLK引脚电器属性配置:

MX6UL_PAD_SD1_CLK__USDHC1_CLK     0x10071

一、需要先用计算器转成二进制

        00010000000001110001

二、然后对比芯片手册

HYS(bit16):使能迟滞比较器,当IO作为输入功能的时候有效,开启迟滞比较器可以滤掉一些干扰。这一位为0时禁止迟滞比较器,为1时使能迟滞比较器。

PUS(bit15:14): 设置上下拉电阻,一共有四种选项可以选择:

img

PUE(bit13): 当IO作为输入的时候,这一位用来设置IO使用上下拉还是状态保持器。当为0的时候使用状态保持器,当为1的时候使用上下拉。状态保持器在IO作为输入的时候才有用,顾名思义,就是当外部电路断电以后此IO口可以保持住以前的状态。

PKE(bit12):此位用来使能或者禁止上下拉/状态保持器功能,这一位为0时禁止上下拉/状态保持器,为1时使能上下拉和状态保持器。

ODE(bit11):开漏使能,当IO作为输出的时候,用来禁止或者使能开漏输出,这一位为0的时候禁止开漏输出,为1的时候就使能开漏输出功能。

SPEED(bit7:6):当IO用作输出的时候,此位用来设置IO速度。

img

DSE(bit5:3):当IO用作输出的时候用来设置IO的驱动能力,可以简单理解为IO口上串联的电阻大小,电阻越小驱动能力越强,总共有8个可选项:

img

SRE(bit0):IO翻转速度,为1时IO电平跳变时间更快,对应波形更陡;为0时IO电平跳变时间要慢一些,波形也更平缓。

自己随便写了个解析程序,现将输入的参数转出二进制输出,然后比对应寄存器的值,然后打印出电器属性:需要的可以自己下载;

./imx6ull_reg_parser 0x17049
argc == [2]
argv 0  == [./imx6ull_reg_parser]
argv 1  == [0x17049]
reg_val = 94281 [0x17049]
>>>>>>>>>. binary >>>>>>>> 
10111000001001001

binary_tmp = [10010010000011101000000000000000]
1001 0010 0000 1110 1000 0000 0000 0000 
Bit 0 = [1]:	IO翻转速度 配置:	@[IO电平跳变时间要慢一些,波形也更平缓]
Bit 1-2  RESERVER = [00]
Bit 3-5 = [100] 	驱动能力配置:电阻越小,驱动能力越强:	@[输出能力:R0/4;]
Bit 6-7 = [10]	当IO用作输出的时候,此位用来设置IO速度	@[中速 100M hz]
Bit 8-10 = RESERVER [000]
Bit 11 = [0]	开漏使能,作为输出口时,用来禁止或者使能开漏输出	@[禁止开漏输出]
Bit 12 = [1]	使能或者禁止上下拉/状态保持器功能	@[为1时使能上下拉和状态保持器]
Bit 13 = [1]	设置外部电路断电以后此IO口可以保持住以前的状态	@[使用上下拉
Bit 14 -15 = [10]: 	设置上下拉电阻,一共有四种选项可以选择:	@[100K 上拉]
Bit 16 = [1]	使能迟滞比较器,当IO作为输入功能的时候有效,开启迟滞比较器可以滤掉一些干扰	@[1: 使能迟滞比较器]
Bit 17 - 31 = RESEVER [00000000000000]

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值