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
EXT_32K) was a perfect 32KHz slow clock. But
WLAN_EN) seemed abnormal.
On WL1835MOD datasheet, voltage level of both
BT_EN should be 1.8V:
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
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
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
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.
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.