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.

[参考译文] WL1835MOD:启动问题、CAN't 接收任何时钟信号

Guru**** 2342650 points
Other Parts Discussed in Thread: ALP, AM67A, WL1835MOD, BEAGLEY-AI
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1503429/wl1835mod-bring-up-issue-can-t-receive-any-clock-signal

器件型号:WL1835MOD
Thread 中讨论的其他器件: AM67AWL1835、ALP、 BeagleY-AI

工具/软件:

您好:

我们在基于 AM67A 的板上无法找到 WL1835MOD 芯片。

我比较了我们的板和 使用 WL1835MOD 芯片的 BeagleBone Black (TI AM335x)板。

   OSPI 接口的器件树和原理图:

wlan_en: regulator-7 {
		compatible = "regulator-fixed";
		regulator-name = "wlan_en";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
		startup-delay-us= <70000>;
		enable-active-high;
		max-frequency = <10000000>;
		/* regulator-always-on; */
		regulator-off-in-suspend;
		vin-supply = <&vdd_3v3>;
		gpio = <&main_gpio0 4 GPIO_ACTIVE_HIGH>;
		//pinctrl-names = "default";
		//pinctrl-0 = <&wifi_en_pins_default>;
	};

&sdhci2 {
	vmmc-supply = <&wlan_en>;
	// pinctrl-names = "default";
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&wifi_pins_default>, <&wifi_32k_clk>;
	pinctrl-1 = <&wifi_pins_default_sleep>, <&wifi_32k_clk>;
	bus-width = <4>;
	non-removable;
	//ti,fails-without-test-cd;
	ti,needs-special-hs-handling;
	cap-power-off-card;
	keep-power-in-suspend;
	//ti,driver-strength-ohm = <50>;
	//assigned-clocks = <&k3_clks 157 174>;
	//assigned-clock-parents = <&k3_clks 157 175>;
	#address-cells = <1>;
	#size-cells = <0>;
	status = "okay";
	pinctrl-names = "default";
	

	wlcore: wlcore@2 {
		compatible = "ti,wl1835";
		reg = <2>;
		//pinctrl-names = "default";
		//pinctrl-0 = <&wifi_wlirq_pins_default>;
		pinctrl-0 = <&wifi_wlirq_pins_default>;
		interrupt-parent = <&main_gpio0>;
		interrupts = <5 IRQ_TYPE_LEVEL_HIGH>;
		irq-gpio = <&main_gpio0 4 GPIO_ACTIVE_HIGH>;
	};
};


	wifi_pins_default: wifi-default-pins {
		pinctrl-single,pins = <
			J722S_IOPAD(0x0120, PIN_INPUT_PULLUP, 0) /* (F27) MMC2_CMD */
			J722S_IOPAD(0x0118, PIN_OUTPUT, 0) /* (H26) MMC2_CLK */
			//J722S_IOPAD(0x011C, PIN_INPUT_PULLUP, 0) /* () MMC2_CLKLB */
			J722S_IOPAD(0x0114, PIN_INPUT_PULLUP, 0) /* (G26) MMC2_DAT0 */
			J722S_IOPAD(0x0110, PIN_INPUT_PULLUP, 0) /* (G27) MMC2_DAT1 */
			J722S_IOPAD(0x010c, PIN_INPUT_PULLUP, 0) /* (H27) MMC2_DAT2 */
			J722S_IOPAD(0x0108, PIN_INPUT_PULLUP, 0) /* (J27) MMC2_DAT3 */
		>;
	};

	wifi_pins_default_sleep: wifi-default-pins_sleep {
		pinctrl-single,pins = <
			J722S_IOPAD(0x0120, PIN_INPUT_PULLDOWN, 0) /* (F27) MMC2_CMD */
			J722S_IOPAD(0x0118, PIN_OUTPUT, 0) /* (H26) MMC2_CLK */
			//J722S_IOPAD(0x011C, PIN_INPUT_PULLDOWN, 0) /* () MMC2_CLKLB */
			J722S_IOPAD(0x0114, PIN_INPUT_PULLDOWN, 0) /* (G26) MMC2_DAT0 */
			J722S_IOPAD(0x0110, PIN_INPUT_PULLDOWN, 0) /* (G27) MMC2_DAT1 */
			J722S_IOPAD(0x010c, PIN_INPUT_PULLDOWN, 0) /* (H27) MMC2_DAT2 */
			J722S_IOPAD(0x0108, PIN_INPUT_PULLDOWN, 0) /* (J27) MMC2_DAT3 */
		>;
	};


	wifi_en_pins_default: wifi-en-default-pins {
		pinctrl-single,pins = <
			J722S_IOPAD(0x0010, PIN_OUTPUT, 7) /* (L27) OSPI0_D1.GPIO0_4 */
		>;
	};

	wifi_wlirq_pins_default: wifi-wlirq-default-pins {
		pinctrl-single,pins = <
			J722S_IOPAD(0x0014, PIN_INPUT, 7) /* (L26) OSPI0_D2.GPIO0_5 */
		>;
	};
	
	
	wifi_32k_clk: mcu-clk-out-default-pins {
		pinctrl-single,pins = <
			J722S_MCU_IOPAD(0x0084, PIN_OUTPUT, 0) /* (F12) WKUP_CLKOUT0 */
		>;
	};

BeagleBone Black (TI AM335x)上 WL1835MOD 的器件树和原理图如下所示:

wlan_en_reg: fixedregulator@2 {
		compatible = "regulator-fixed";
		regulator-name = "wlan-en-regulator";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
		startup-delay-us= <70000>;

		/* WL_EN */
		gpio = <&gpio3 9 0>;
		enable-active-high;
	};


&mmc3 {
	dmas = <&edma_xbar 12 0 1
		&edma_xbar 13 0 2>;
	dma-names = "tx", "rx";
	status = "okay";
	vmmc-supply = <&wlan_en_reg>;
	bus-width = <4>;
	non-removable;
	cap-power-off-card;
	keep-power-in-suspend;
	pinctrl-names = "default";
	pinctrl-0 = <&mmc3_pins &wl18xx_pins>;

	#address-cells = <1>;
	#size-cells = <0>;
	wlcore: wlcore@2 {
		compatible = "ti,wl1835";
		reg = <2>;
		interrupt-parent = <&gpio0>;
		interrupts = <29 IRQ_TYPE_EDGE_RISING>;
	};
};

mmc3_pins: pinmux_mmc3_pins {
		pinctrl-single,pins = <
			AM33XX_PADCONF(AM335X_PIN_MII1_RXD1, PIN_INPUT_PULLUP, MUX_MODE6 ) /* (L15) gmii1_rxd1.mmc2_clk */
			AM33XX_PADCONF(AM335X_PIN_MII1_TX_EN, PIN_INPUT_PULLUP, MUX_MODE6 ) /* (J16) gmii1_txen.mmc2_cmd */
			AM33XX_PADCONF(AM335X_PIN_MII1_RX_DV, PIN_INPUT_PULLUP, MUX_MODE5 ) /* (J17) gmii1_rxdv.mmc2_dat0 */
			AM33XX_PADCONF(AM335X_PIN_MII1_TXD3, PIN_INPUT_PULLUP, MUX_MODE5 ) /* (J18) gmii1_txd3.mmc2_dat1 */
			AM33XX_PADCONF(AM335X_PIN_MII1_TXD2, PIN_INPUT_PULLUP, MUX_MODE5 ) /* (K15) gmii1_txd2.mmc2_dat2 */
			AM33XX_PADCONF(AM335X_PIN_MII1_COL, PIN_INPUT_PULLUP, MUX_MODE5 ) /* (H16) gmii1_col.mmc2_dat3 */
		>;
	};

wl18xx_pins: pinmux_wl18xx_pins {
		pinctrl-single,pins = <
			AM33XX_PADCONF(AM335X_PIN_MII1_TX_CLK, PIN_OUTPUT_PULLDOWN, MUX_MODE7)	/* gmii1_txclk.gpio3_9 WL_EN */
			AM33XX_PADCONF(AM335X_PIN_RMII1_REF_CLK, PIN_INPUT_PULLDOWN, MUX_MODE7)	/* rmii1_refclk.gpio0_29 WL_IRQ */
			AM33XX_PADCONF(AM335X_PIN_MII1_RX_CLK, PIN_OUTPUT_PULLUP, MUX_MODE7)	/* gmii1_rxclk.gpio3_10 LS_BUF_EN */
		>;
	};

我们有适用于 WL1835MOD 的 ti 连接固件。 当我们对 wlcore、wl18xx、wl_SDIO 驱动程序进行 modprobe 探测时、我们会收到以下信息:

user@am67board:~$ lsmod
Module                  Size  Used by
wlcore                229376  0
mac80211              794624  1 wlcore
libarc4                16384  1 mac80211
cfg80211              700416  2 wlcore,mac80211
pvrsrvkm             1306624  0
pwm_fan                24576  0
phy_can_transceiver    16384  1
at24                   24576  0
ti_k3_r5_remoteproc    32768  0
ti_k3_dsp_remoteproc    20480  0
ti_k3_common           20480  1 ti_k3_dsp_remoteproc
st_lsm6dsx_i2c         20480  0

MII_TXCLK 和 MII_REFCLK 引脚是否具有用于 Wi-Fi 的特殊用途引脚?

WL1835无法接收到任何时钟信号、为什么?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Alp:

    目前、我不会介绍 BeagleBone Black Wireless、因为我想解决您电路板上的问题。 您能否分享适用于您的电路板的原理图片段? 您还可以共享电路板的 dmesg 日志吗? 例如、AM67A 启动时显示的内核日志。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    有任何建议吗?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Alp:

    您可以尝试以下操作吗?

    &sdhci2 {
    	vmmc-supply = <&wlan_en>;
    	pinctrl-names = "default";
    	pinctrl-0 = <&wifi_pins_default>, <&wifi_32k_clk>;
    	bus-width = <4>;
    	non-removable;
    	ti,fails-without-test-cd;
    	cap-power-off-card;
    	keep-power-in-suspend;
    	ti,driver-strength-ohm = <50>;
    	assigned-clocks = <&k3_clks 157 174>;
    	assigned-clock-parents = <&k3_clks 157 175>;
    	#address-cells = <1>;
    	#size-cells = <0>;
    	status = "okay";
    
    	wlcore: wlcore@2 {
    		compatible = "ti,wl1835";
    		reg = <2>;
    		pinctrl-names = "default";
    		pinctrl-0 = <&wifi_wlirq_pins_default>;
    		interrupt-parent = <&main_gpio0>;
    		interrupts = <5 IRQ_TYPE_EDGE_RISING>;
    	};
    };

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我们尝试了这些设备树配置。 没有任何变化。  我们使用逻辑分析仪收听了板上的 SDIO 线路。 我们无法获得 WL1835MOD 的响应。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Alp:

    在这种情况下、您能否检查电源轨是否正常以及是否看到"EXT_32K"是正确的频率? 由于电源或32KHz CLK 问题、WL18x 似乎无法正确引导。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Sabeeh:

    电源正常。

    我们根本无法获得任何 EXT_32K 信号。 WL1835MOD-node 上 EXT_32K 的引脚用于正确的引脚。

    SOC 是在唤醒后直接生成该时钟信号、还是需要通过内核或 u-boot 器件树中的另一个节点指定它?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我们根本无法获得任何 EXT_32K 信号。

    这很可能是问题所在。

    SOC 是在唤醒后直接生成该时钟信号、还是需要通过内核或 u-boot device-tree 中的另一个节点指定该时钟信号?

    我不太确定、因为这是 AM67A 专用的。  让我将此问题转发给该团队。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好:  

    我将在内部对此进行讨论、然后返回。 当前问题是 AM67A 上的32k 时钟可用性问题。 我会在一天或两天内回到这个问题上。

    此致、

    Keerthy  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Keerthy J

    我在 BeagleY-AI 板上看到、他们可以使用 AM67A 的32kHz CLK。 这是否是相同的正确 DTS 配置?
    https://github.com/beagleboard/linux/blob/v6.1.80-ti-rt-arm64-r58/arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts#L763C2-L767C4 

    尊敬的 Alp

    是否将32kHz CLK 路由到 WL18xxMOD? 我不知道此信号来自您的电路板上的什么位置。