Other Parts Discussed in Thread: AM3351
我们使用的是基于 AM3351的定制板。
在 AM335x 引脚多路复用配置中、我们可以看到输出上拉选项。
输出上拉的作用是什么。 在什么情况下需要启用输出上拉? 在什么情况下不应启用输出上拉。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
感谢您的回复 Pavel、
我检查了 DTS 和 dtsi 文件,似乎 dt-bindings/pinctrl/am33xx.h 包含在我们的 DTS 文件中,但是 am335x.h 包括 omap.h,所以不确定谁会替换什么? 我假设 omap.h 中的定义被 am335x.h 覆盖
因此,如果在我使用 PIN_OUTPUT 上拉时,它只选择上拉,但不会输出引脚? 甚至无法启用上拉? 或默认情况下,PIN 状态为输出? 因为 PIN_OUTPUT 也仅禁用上拉。
我仔细研究了您提供的要点、我认为我理解、但为了清楚说明这一点、我将在此写下我的理解。
因此、当从深度睡眠状态返回后、除非通过将引脚驱动为低电平将输出上拉电阻拉至低电平、否则输出上拉电阻会有所帮助。
我的理解是否正确? 我是否遗漏了什么?
感谢您的回复 Pavel、
我们有 ZCE 类型 AM3351。
我具有以下 devicetree 配置
RESET_eMMC:RESET_eMMC{ pinctrl-single、Pins =< 0x07C (PIN_OUTPUT PLUP | MUX_MODE7)/* GPMC_Ccsn0.GPIO1_29、BGA W8 (ZCE) RST_eMMC * />; }; RESET_EMMC{ pinctr-names ="gpinctrl_gp&names"; 默认值 ="gpMC_gpMC_gp_gp"gp"gpMC_remote";默认值="gpMC_gpMC_gpMC";"gpMC_eLEDs ="eLEDs ="eMC";"eMC_remote"="eMC";"
当我读取 pinmux 寄存器时、我看到以下值
# devmem2 0x44e1007c /dev/mem 已打开。 映射到地址 bb6f64000的内存。 地址0x44E1007C (0xb6f6407c)的值:0x0
现在我不知道为什么第4位为0。 第4位 TRM 显示"0:选择下拉"。
我看到引脚在 sysfs 中处于高电平、我不知道为什么选择下拉电阻器。
GPIO_DATAOUT 寄存器还读取以下值
# devmem2 0x4804c13c /dev/mem 已打开。 映射到地址 bb6f1c000的内存。 地址0x4804C13C (0xb6f1c13c)上的值:0x20000000
复位时引脚的默认状态为 H 、即 带有有源上拉电阻器的高阻抗状态。
谢谢、
此致、
Ankur
Ankur、
[引用用户="Ankur Tank"] reset_eMMC:reset_eMMC{pinctrl-single、pins =< 0x07C (PIN_OUTPLUG_PULLUP | MUX_MODE7)/* GPMC_csn0.GPIO1_29、BGA W8 (ZCE) RST_eMMC */>;};[/引用]
这是什么? 您在哪里找到了这样的引脚多路复用格式?
在 AM335x TI PSDK 4.02 (内核4.9.59)中、我们使用了以下引脚多路复用格式:
Linux-4.9.59/arch/arm/boot/dts/AM335x-evm.dts
am33xx_pinmux{(am33xx_pinmux)}
pinctrl-names ="default";
pinctrl-0 =<&matrix 键盘_s0 &volume_keys_s0 &clkout2_pin>;
Matrial_keypad_s0:Matrial_keypad_s0{
pinctrl-single、pins =<
AM33XX_IOPAD (0x854、PIN_OUTPUT 下拉| MUX_MODE7) /* GPMC_A5.GPIO1_21 *
。
>;
};
DaVinci_MDIO_DEFAULT:DaVinci_MDIO_DEFAULT{
pinctrl-single、pins =<
/* MDIO */
AM33XX_IOPAD (0x948、PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* MDIO_DATA.MDIO_DATA *
AM33XX_IOPAD (0x94c、PIN_OUTPUT 上拉| MUX_MODE0) /* MDIO_clk.MDIO_clk *
>;
};
另一个示例是 AM335x Starterkit DTS 文件:
linux-4.9.59/arch/arm/boot/dts/am335x-evmsk.dts
wl12xx_gpio:pinmux_wl12xx_gpio{
pinctrl-single、pins =<
AM33XX_IOPAD (0x87c、PIN_OUTPUT 上拉| MUX_MODE7)/* GPMC_csn0.GPIO1_29 *
>;
};
此致、
帕维尔
您好、Pavel、
我将复位 eMMC 引脚配置更改为如下
RESET_eMMC:RESET_eMMC{ pinctrl-single、pins =< 0x07C (PIN_OUTPUT | MUX_MODE7)/* GPMC_csn0.GPIO1_29、BGA W8 (ZCE) RST_eMMC */ >; };
之前我读取了错误的 pinmux 寄存器、
# devmem2 0x44E1087C /dev/mem 已打开。 映射到地址 bb6f83000的内存。 地址0x44E1087C (0xb6f8387c)上的值:0xF
现在、PINMUX 寄存器值与引脚多路复用配置相匹配。
我转储了上拉电阻器、因为我们没有深度睡眠模式。
您是否建议保持上拉?
谢谢、
此致、
Ankur