Wi-Fi / Bluetooth bringup failure due to voltage divider

In recent project, I was assigned a task to bring up Wi-Fi and Bluetooth. We used WL1835MOD combo module from TI to implement these two wireless features. After porting kernel drivers and application software, I found both features were malfunctioning. So I started checking the hardware.

Here’s the WLAN power-up sequence from WL1835MOD datasheet:

I probed the pads in the same order showing on the power-up sequence. VBAT looked good and SLOWCLK (aka EXT_32K) was a perfect 32KHz slow clock. But WL_EN (aka WLAN_EN) seemed abnormal.

On WL1835MOD datasheet, voltage level of both WLAN_EN and BT_EN should be 1.8V:

As WLAN_EN pin was controlled by kernel driver, for the sake of convenience of debugging, I exported WLAN_EN pin as an independent GPIO and toggled it between low and high, and found the voltage level was only 0.9V when set as high. So I checked the schematics along the circuit path of WLAN_EN from WL1835MOD to host CPU and found this part:

The voltage level before R89 (WIFI_EN_1V8 from host CPU) was 1.8V, but after R89 (at test point TP18) was only 0.9V. Same behavior was observed for BLUETOOTH_EN_1V8 and TP22.

It’s a bit weird that there’s a voltage divider here. After consulting hardware engineer, I got the answer. On our previous product, the input voltage level was 3.3V, so we used a voltage divider to lower the voltage to 1.8V for WLAN_EN and BT_EN. On this new product, the voltage level from host CPU is already 1.8V, so we don’t need this voltage divider any more, but hardware engineer forgot to remove it.

After replacing R89 with direct connection, Wi-Fi worked properly, but Bluetooth didn’t. But that’s another topic. I’ll describe it in a new post.

Hardware engineer will remove the voltage divider in next build.

comments powered by Disqus