CSS Styles

Tuesday, December 20, 2016

【mPCIe】WiFi+Bluetooth Combo

三姐的陳年桌機突然掛了, 既沒筆電可用, 手頭也不太寬裕, Line 群組迷漫著滿滿的哀怨... 幸運如她, 有位愛拾荒的弟弟, 不巧在某筆電代工廠垃圾堆中, 掃瞄到疑似筆電的一角, 機不可失, 順手一攫, 開啟一場物盡其用, 化腐朽為神奇的的「剩」戰。

那是台 Lenovo IdeaPad Y570 的樣機, 插上記憶體與硬碟可以開機, Windows 7 跑起來也很順, 唯二美中不足的是: 找不到藍芽, 觸控板按鍵無反應! 拜讀 Y570 硬體維護手冊後, 把機子拆開端詳, 藍芽模組沒上, 觸控板無背蓋, 這兩個功能自然沒作用。 觸控板按鍵事小, 安裝 Synaptics 驅動程式, 將觸控板角落指定為按鍵即可迎刃而解; 外接 USB 裝置雖可解決無藍芽之窘, 但是 fu 就是差了一點, 心中遂種下尋求其它方案的種子。

公司曾研發 WiFi 相關產品, 手上有些閒置的 WiFi 卡, 心血來潮稍做稍整理時, 眼前晃過 BT MAC 字樣, 說明了此卡有支援藍芽不是嗎? 這彷彿如來明燈, 為 Y570 升級燃起希望! 興沖沖地換上它, 取代原有的 WiFi 卡, 進入裝置管理員瞧瞧, 無線網卡如料地被找到, 但仍不見藍芽蹤影, 怎麼回事? 有點洩氣, 說好的藍芽呢?

AzureWave 的 AW-NB110H, 基於 Atheros AR5BWB22 (aka AR5B22 或 WB222) 設計, 是張 Wifi 11a/b/g/n + Bluetooth 4.0 combo 無線網卡, 使用 AR9462 單晶片 (SoC), 藍芽走 USB, 難不成 Y570 的 mini PCIe 槽不支援 USB? 幸運地, 網路上可以找到 Y570 原理圖來驗證。 Y570 共有三個 mini PCIe 槽, 其中 TV 專用槽並無上件, SSD 專用槽沒有 USB, WiFi/WiMAX 槽的 pin 36、38 確實有連接到 USB 控制器, 但為何偵測不到藍芽呢?

Y570 WiFi/WiMAX mini PCIe Circuit
Y570 WiFi/WiMAX mini PCIe 原理圖

攤開 AW-NB110H 規格, 發現 pin 5、51 定義為 BT_DISABLE, 若這兩腳任一被拉為低電位, 則藍芽模組會被關閉。 對應 Y570 mini PCIe 的腳位, pin 5 亦為 BT_DISABLE, 合理推測, 藍芽極可能被 Y570 這根腳的信號關閉。 二話不說, 拿膠布貼在無線網卡 pin 5 上, 遮蔽 Y570 對 BT_DISABLE 的控制, 令人雀躍, 藍芽出現了, 感動!

AW-NB110H Pinout
AW-NB110H 腳位表
AW-NB110H BT_DISABLE Pins
AW-NB110H BT_DISABLE 腳位
上述實驗, 說明了 AW-NB110H 的 DISABLE 腳位內部被拉高, 預設值為開啟裝置。 這個方法, 理論上可以應用到其它無線網卡和不同筆電機種上, 考慮相容性, 不妨將 pin 51 也遮蔽。 藍芽雖被強制開啟, 但存在一些缺點: 筆電廠商提供的工具只對原有內建藍芽模組管控, 因此網卡上的藍芽無法透過熱鍵或電源管理來開關, 指示燈也無法正確顯示。 Y570 這個案例中, 使用網卡上之藍芽最佳解法為: 跳線 JP8.5 或 Q94.2 至 JP1.46 (藍芽燈號), 開路 R1320 短路 R1319 (電源開關), 當然用膠帶進行的遮蔽就不再需要了。

Y570 Bluetooth Module Circuit
Y570 內建藍芽模組原理圖

硬體到位, 接下來就是驅動程式, 試了好幾個版本, 總是有兩個藍芽服務裝置無法正確安裝, 傷腦筋。 雖無傷大雅, 但總有瑕疵。 完美能否再次呈現?

詳情請見 AR5B22 (AR9462) Bluetooth Driver 一文。

No comments:

Post a Comment