Thread 中讨论的其他器件:WL1831
您好!
让客户遇到可能的启动问题。
问题:在运行期间、WLAN 模块有时会通过 SDIO 停止响应、并且 WLAN 模块在 Linux OS 引导中未初始化。 断电无法解决此问题。
我们使用的是 Linux 内核5.2.6 (更改为5.4)。 调制解调器固件由内核存储库(/firmware/ti-connectivity)提供
1) 1) WLAN 模块初始化
我们怀疑 WLAN 模块启动可能会导致问题。 模块启动如下所示:
红色:工作电压
蓝色:WLAN 使能信号
在引导过程中、Linux 引脚控制驱动程序多次启用/禁用 WLAN 使能信号、出于某种原因。 连续启用/禁用时序的时序不符合最小60uS 要求
设备树:
……μ A
mmc1{(&M)
// DMA =<&EDMA_Xbar 12 0 1
// EDMA_Xbar 13 0 2>;
// dma-names ="TX"、"Rx";
状态="正常";
VMMC-supply =<&wlan_en_reg>;
总线宽度=<4>;
TI、不可拆卸;
使能 SDIO 唤醒;
电容断电卡;
TI、需要特殊处理;
暂停时保持供电;
pinctrl-names ="default";
pinctrl-0 =<&mmc1_PINS &wl18xx_pines>;
#address-cells =<1>;
#size-cells =<0>;
wlcore:wlcore@0{
兼容="ti、wl1831";
reg =<2>;
interrupt-parent =<&GPIO2>;
中断=<25 IRQ_TYPE_EDGE_RISING >;
};
};
………μ A
wlan_en_reg:fixedreguler_wlan_en{
兼容="稳压器固定";
reguler-name ="wlan-en-regulator ";
稳压器最小微伏=<1800000>;
稳压器最大值微伏=<1800000>;
StartUp-delay-us=<70000>;
/* WL_EN */
GPIO =<&GPIO2 22 0>;
使能端高电平有效;
};
…………μ A
mmc1_pins:pinmux_mmc1_pins{
pinctrl-single、pins =<
AM33XX_IOPAD (0x900、PIN_INPUT_PULLUP | MUX_MODE0) /* WL SDIO 时钟*
AM33XX_IOPAD (0x904、PIN_INPUT_PULLUP | MUX_MODE0) /* WL SDIO cmd *
AM33XX_IOPAD (0x8F0、PIN_INPUT_PULLUP | MUX_MODE0) /* WL SDIO D3 *
AM33XX_IOPAD (0x8F4、PIN_INPUT_PULLUP | MUX_MODE0) /* WL SDIO D2 *
AM33XX_IOPAD (0x8F8、PIN_INPUT_PULLUP | MUX_MODE0) /* WL SDIO D1 *
AM33XX_IOPAD (0x8FC、PIN_INPUT_PULLUP | MUX_MODE0) /* WL SDIO d0 *
AM33XX_IOPAD (0x87C、PIN_OUTPUT 上拉| MUX_MODE7) /* WLAN_LDO_EN *
>;
};
wl18xx_pins:pinmux_wl18xx_pins{
pinctrl-single、pins =<
AM33XX_IOPAD (0x8E0、PIN_OUTPUT 上拉 | MUX_MODE7) /* WLAN en */
AM33XX_IOPAD (0x8EC、PIN_INPUT 下拉| MUX_MODE7) /* WL IRQ *
>;
};
此配置将 WLAN 使能 GPIO 配置为上拉电阻(正如模块集成文档中建议的那样)、但这会导致 GPIO 在内核将其配置为输出并将其驱动为低电平之前变为高电平。
什么会导致引脚控制多次驱动使能信号?
WLAN 模块是否启用信号会对模块造成永久损坏?
2) WLAN 模块修复
对于不通过 SDIO 进行通信的 WLAN 模块、是否可以 通过调试接口等方式恢复它们?