在嵌入式Linux開發(fā)中,瑞芯微(Rockchip)平臺的Wi-Fi與藍牙調(diào)試是許多工程師的核心需求。無論是RK3588、RK356X等主流芯片,還是RV1106/1103等IPC專用芯片,Wi-Fi/BT的穩(wěn)定運行直接影響產(chǎn)品體驗。本文從配置、編譯、測試到問題排查,手把手帶你搞定RK平臺Wi-Fi/BT調(diào)試。
一、先搞懂:RK平臺支持哪些芯片與模塊?
在開始調(diào)試前,先確認你的硬件與系統(tǒng)是否在支持范圍內(nèi),避免做無用功。
1.支持的芯片與內(nèi)核版本
不同芯片對應不同Linux內(nèi)核版本,配置時需精準匹配:
|
芯片系列
|
支持內(nèi)核版本
|
|
RK356X/RK3399/RK3288/RK3326/RK3308/RV1109/RV1126/PX30
|
Linux 4.4/4.19
|
|
RK3588/RK356X/RK3399/RV1106/RV1103
|
Linux 5.10
|
2.支持的Wi-Fi/BT模塊
相關(guān)SDK默認支持主流模塊,無需額外移植即可直接使用,常見型號如下:
?正基(AP)/新思系列:AP6275、AP6358S、AP6212、AP6236等(含Wi-Fi+BT二合一)
?Realtek系列:RTL8723DS、RTL8822CS、RTL8188FU、RTL8189FS、RTL8821CS、RTL8852BS等(Wi-Fi單獨/二合一)
?英飛凌(Cypress /海華)系列:CYW4354、CYW43438、CYW5557X、CYW5557X_PCIE、CYW54591、CYW54591_PCIE等
?國產(chǎn)模塊:愛科微(AIC)、高拓(ATBM)等(需從指定FTP獲取支持文件)
二、核心步驟:Wi-Fi/BT配置與編譯
配置是調(diào)試的基礎(chǔ),需從SDK配置→DTS配置→內(nèi)核配置三步完成,每一步都不能錯!
1. SDK配置:指定芯片與模塊型號
首先通過腳本指定芯片型號,再配置Wi-Fi/BT模塊類型:
# 1. 配置芯片型號(以RK3588為例)./build.sh chip rk3588# 2. 修改默認配置文件(路徑:SDK_ROOT/device/rockchip/對應芯片目錄)# 示例:rk3588/rockchip_rk3588_evb1_lp4_v10_defconfigRK_WIFIBT_CHIP="ALL_AP"# 支持所有正基模塊;ALL_CY支持所有英飛凌模塊RK_KERNEL_DTS_NAME="rk3588-evb1-ddr4-v10-linux"# 對應DTS文件名# 3. 精細化選擇模塊(可選,替代ALL_AP/ALL_CY)# 打開內(nèi)核配置界面,搜索RK_WIFIBT_CHIP,選擇具體型號(如AP6275/RTL8822CS)make menuconfig
其中,RK_WIFIBT_CHIP的配置需根據(jù)實際模塊選擇,除了ALL_AP和ALL_CY,還可直接指定具體型號,如AP6275_PCIE、CYW4354、RTL8723DS等,具體支持的型號可在device/rockchip/common/scripts/post-wifibt.sh文件中查詢。
2. DTS配置:硬件接口的“橋梁”
DTS(設(shè)備樹)是硬件與內(nèi)核的“翻譯官”,需根據(jù)Wi-Fi/BT接口類型(SDIO/USB/PCIE)配置,核心是電源腳、復位腳、中斷腳的匹配。
(1)SDIO接口Wi-Fi配置(最常用)
支持“標準框架”(推薦,統(tǒng)一電源管理)和“傳統(tǒng)框架”(支持多次加載卸載),這里以正基模塊為例展示標準框架配置:
//1. 電源序列配置(SDIO_PWRSEQ)sdio_pwrseq: sdio-pwrseq {compatible = "mmc-pwrseq-simple";pinctrl-names = "default";pinctrl-0 = <&wifi_enable_h>; // 電源使能引腳reset-gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_LOW>; // WL_REG_ON(參考原理圖,別名可能為WIFI_REG_ON)post-power-on-delay-ms = <200>; // 上電后延遲(確保穩(wěn)定,默認禁用可按需開啟)};//2. 引腳配置(PINCTRL)&pinctrl {sdio-pwrseq {wifi_enable_h: wifi-enable-h {rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;};}};//3. SDIO控制器配置&sdio {max-frequency = <150000000>; //最高頻率(SDIO3.0支持150M,SDR104模式最高200MHz)bus-width = <4>; //4線模式cap-sd-highspeed; //支持SD高速時序cap-sdio-irq; //使能SDIO中斷信號non-removable; //非可移除設(shè)備(Wi-Fi模塊焊接在板上)mmc-pwrseq = <&sdio_pwrseq>; //關(guān)聯(lián)電源序列status ="okay";};//4. Wi-Fi節(jié)點配置wireless-wlan {compatible ="wlan-platdata";rockchip,grf = <&grf>;clocks = <&rk809?1>; //32.768K時鐘(參考原理圖,也可能為hym8563)clock-names ="ext_clock";wifi_chip_type ="ap6255"; //模塊型號WIFI,host_wake_irq = <&gpio0RK_PA0GPIO_ACTIVE_HIGH>; //喚醒引腳,需確認硬件連接是否帶反向管status ="okay";};
標準框架中,WiFi的REG_ON由mmc框架統(tǒng)一管理,優(yōu)點是電源控制集中,缺點是不支持SDIO card重新識別;傳統(tǒng)框架中,WiFi的REG_ON由net/rfkill/rfkill-wlan.c控制,支持多次rmmod/insmodWiFi驅(qū)動,但需打KO模式補丁。
(2)藍牙配置(UART接口最常用)
藍牙需配置UART引腳(TX/RX/RTS/CTS)和電源腳,RTS/CTS必須按要求連接,否則會出現(xiàn)初始化異常:
// 1. 藍牙節(jié)點配置wireless-bluetooth {compatible ="bluetooth-platdata";uart_rts_gpios = <&gpio4?RK_PA7GPIO_ACTIVE_LOW>; // RTS引腳,部分藍牙芯片CTS上電前需低電平pinctrl-names ="default","rts_gpio";pinctrl-0= <&uart4_rts>;pinctrl-1= <&uart4_rts_gpio>;BT,power_gpio = <&gpio4?RK_PB3GPIO_ACTIVE_HIGH>; // BT_REG_ON(電源腳)// Linux平臺下,BT,wake_host_irq和BT,wake_gpio無需配置status ="okay";};// 2. UART控制器配置(以UART4為例)&uart4 {pinctrl-names ="default";pinctrl-0= <&uart4_xfer &uart4_ctsn>; // TX/RX/CTS引腳,無需配置RTS引腳status ="okay";};// 3. UART RTS GPIO配置&pinctrl {wireless-bluetooth {uart4_rts_gpio: uart4-rts-gpio {rockchip,pins = <4 RK_PA7 RK_FUNC_GPIO &pcfg_pull_none>;};}};
需注意,不同平臺UART相關(guān)引腳命名可能不同,例如uart4_ctsn在部分平臺可能名為uart4_cts,需在對應芯片平臺的dts/dtsi中確認。
(3)IO電源域配置(關(guān)鍵!SDIO3.0必看)
SDIO3.0的設(shè)備務必使用1.8V供電,需根據(jù)硬件實際供電情況配置IO電源域:
// 不同平臺io_domains名字可能不同,部分為&pmu_io_domains&io_domains {// VDDIO3_VDD引用vcc_1v8的電壓,若硬件接3.3V則改為vcc_3v3,名稱需按實際dts/dtsi調(diào)整vccio3-supply = <&vcc_1v8>;};vcc_1v8: vcc-1v8 {compatible ="regulator-fixed";regulator-name ="vcc_1v8";regulator-always-on;regulator-boot-on;regulator-min-microvolt = <1800000>; // 1.8V供電regulator-max-microvolt = <1800000>;vin-supply = <&vcc_io>;};
(4)USB/PCIE接口配置(簡要)
?USB Wi-Fi:需先參考docs/Common/USB/下的相關(guān)文檔配置USB控制器為HOST模式,Wi-Fi節(jié)點配置分兩種情況:若內(nèi)核.config打開CONFIG_RFKILL/CONFIG_RFKILL_RK,則在wireless-wlan節(jié)點配置WIFI,poweren_gpio;若未打開,則通過regulator-fixed節(jié)點配置WIFI_REG_ON引腳。
?PCIE Wi-Fi:需先參考docs/Common/PCIe/下的相關(guān)文檔,配置PCIE控制器、PHY及復位腳(reset-gpios),關(guān)鍵是確認VBAT/VCC3V3(長供電3.3V)、WIFI_REG_ON(開機高電平)、PCIE_PERST_L/PERSTO(復位管腳)的硬件連接與DTS配置一致,RK3588需特別注意PCIe20與dtsi的對應關(guān)系,例如PCIE20_0對應pcie2x1l2、PCIE20_1對應pcie2x1l0等。
3.內(nèi)核配置:開啟必要功能
內(nèi)核需開啟Wi-Fi/BT相關(guān)驅(qū)動與協(xié)議,核心配置如下(通過make menuconfig或修改.config):
# Wi-Fi核心配置CONFIG_RFKILL=y # 射頻開關(guān)CONFIG_RFKILL_RK=y # RK平臺射頻開關(guān)支持CONFIG_MMC=y # SDIO依賴MMC框架CONFIG_PWRSEQ_SIMPLE=y # 簡單MMC電源序列支持CONFIG_MMC_DW=y # DW MMC控制器支持CONFIG_MMC_DW_PLTFM=y # DW MMC平臺支持CONFIG_MMC_DW_ROCKCHIP=y # RK平臺DW MMC支持CONFIG_WIRELESS=y # 無線功能支持CONFIG_WIRELESS_EXT=y # 無線擴展支持CONFIG_WEXT_CORE=y # WEXT核心支持CONFIG_WEXT_PROC=y # WEXT進程支持CONFIG_WEXT_PRIV=y # WEXT私有支持CONFIG_CFG80211=y# 802.11配置框架CONFIG_CFG80211_REQUIRE_SIGNED_REGDB=y # 要求簽名REGDBCONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=y # 使用內(nèi)核REGDB密鑰CONFIG_CFG80211_DEFAULT_PS=y # 默認電源管理CONFIG_CFG80211_CRDA_SUPPORT=y # CRDA支持# CONFIG_CFG80211_WEXT is not set # 關(guān)閉WEXT兼容CONFIG_MAC80211=y# MAC層驅(qū)動CONFIG_MAC80211_HAS_RC=y # 速率控制支持CONFIG_MAC80211_RC_MINSTREL=y # Minstrel速率控制算法CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y # 默認Minstrel算法CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"# 默認速率控制算法CONFIG_MAC80211_STA_HASH_MAX_SIZE=0# STA哈希表最大大小# 藍牙核心配置CONFIG_BT=y # 藍牙支持CONFIG_BT_BREDR=y # 經(jīng)典藍牙支持CONFIG_BT_RFCOMM=y # RFCOMM支持# CONFIG_BT_RFCOMM_TTY is not set # 關(guān)閉RFCOMM TTY# CONFIG_BT_BNEP is not set # 關(guān)閉BNEPCONFIG_BT_HIDP=y # HIDP支持# CONFIG_BT_HS is not set # 關(guān)閉HSCONFIG_BT_LE=y # 低功耗藍牙(BLE)支持CONFIG_BT_DEBUGFS=y# 調(diào)試日志支持# Realtek藍牙需關(guān)閉以下配置,使用自有驅(qū)動# CONFIG_BT_HCIUART is not set
其中,正基(新思)和英飛凌(海華/ CY)的模塊使用內(nèi)核默認CONFIG_BT_HCIUART驅(qū)動,而Realtek模塊使用自有hci uart/hci_usb驅(qū)動,需關(guān)閉內(nèi)核CONFIG_BT_HCIUART配置,其驅(qū)動源碼位于external/rkwifibt/realtek/bluetooth_uart_driver和external/rkwifibt/realtek/bluetooth_usb_driver目錄。
4.編譯:生成驅(qū)動與固件
編譯需執(zhí)行指定腳本,自動生成驅(qū)動(.ko)、固件(firmware)并拷貝到文件系統(tǒng):
# 1. 編譯Wi-Fi/BT驅(qū)動與工具./build.sh wifibt# 2. 打包根文件系統(tǒng)(確保驅(qū)動與固件被包含)./build.sh rootfs && ./build.sh firmware
編譯過程會調(diào)用device/rockchip/common/scripts/mk-wifibt.sh和device/rockchip/common/scripts/post-wifibt.sh腳本,編譯external/rkwifibt/drivers/目錄下的驅(qū)動,并拷貝對應固件文件到文件系統(tǒng),同時還會編譯brcm_patchram_plus1、rtk_hciattach等工具。
關(guān)鍵文件路徑(需熟記,排查時常用)
|
文件類型
|
SDK中的路徑
|
燒錄后設(shè)備路徑
|
|
Wi-Fi驅(qū)動(.ko)
|
external/rkwifibt/drivers/(如bcmdhd、rtlxxx目錄)
|
/system/lib/modules/或/usr/lib/modules/
|
|
固件(firmware)
|
external/rkwifibt/firmware/(broadcom目錄對應正基,realtek目錄對應Realtek)
|
正基:/system/etc/firmware/;Realtek藍牙:/lib/firmware/rtlbt/(UART)、/lib/firmware/(USB)
|
|
藍牙工具
|
external/rkwifibt/tools/(brcm_tools、rtk_hciattach目錄)
|
/usr/bin/(如brcm_patchram_plus1、rtk_hciattach)
|
|
配置文件
|
external/rkwifibt/conf/(wpa_supplicant.conf、dnsmasq.conf等)
|
/data/cfg/(wpa_supplicant.conf常用路徑)
|
|
初始化腳本
|
external/rkwifibt/scripts/(S36wifibt-init.sh、wifibt-init.sh等)
|
/etc/init.d/(S36wifibt-init.sh)
|
三、功能測試:驗證Wi-Fi/BT是否正常工作
編譯燒錄后,通過命令行驗證核心功能,確?;A(chǔ)功能正常再排查復雜問題。
1. Wi-Fi測試(STA模式:連接路由器)
以Buildroot系統(tǒng)為例:
# 1. 加載Wi-Fi驅(qū)動(正基模塊示例:bcmdhd.ko;Realtek模塊示例:RTL8723DS.ko)insmod /system/lib/modules/bcmdhd.ko# 2. 啟動wlan0接口ifconfig wlan0 up# 3. 配置wpa_supplicant(連接路由器)# 編輯配置文件:/data/cfg/wpa_supplicant.confcat > /data/cfg/wpa_supplicant.conf << EOFctrl_interface=/var/run/wpa_supplicant # 控制接口路徑,默認不建議修改ap_scan=1 # AP掃描模式update_config=1 # 允許wpa_cli配置保存到文件network={ssid="你的路由器SSID"# Wi-Fi名稱psk="你的路由器密碼" # Wi-Fi密碼(8-63位)key_mgmt=WPA-PSK # 加密方式,不加密改為key_mgmt=NONE}EOF# 4. 啟動wpa_supplicant并獲取IPwpa_supplicant -B -i wlan0 -c /data/cfg/wpa_supplicant.conf # -B后臺運行# 使用dhcp客戶端獲取IP(二選一,不可同時啟用)dhcpcd wlan0 # 功能完整的DHCP客戶端(默認)# 或 udhcpc -i wlan0 # busybox精簡DHCP客戶端# 5. 驗證:ping路由器網(wǎng)關(guān)ping 192.168.1.1 -c 4 # -c指定ping次數(shù)
若需掃描周邊AP,可在wpa_supplicant進程運行的前提下,執(zhí)行wpa_cli -i wlan0 -p /var/run/wpa_supplicant scan和wpa_cli -i wlan0 -p /var/run/wpa_supplicant scan_results命令,掃描結(jié)果需與手機掃描的2.4G/5G AP個數(shù)(根據(jù)模塊支持頻段)及信號強度對比,正常信號強度范圍:好(-20~-50dBm)、可接受(-50~-70dBm)、差(-70~-90dBm)。
2. Wi-Fi AP模式(設(shè)備作為熱點)
相關(guān)SDK集成softapDemo工具,可快速開啟熱點,不同模塊使用的接口不同:
?Realtek模組:使用p2p0作為AP接口,需在驅(qū)動Makefile中添加EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE開啟共存模式,自動生成p2p0節(jié)點。
?正基/海華模組:使用wlan1作為AP接口,需通過iw phy0 interface add wlan1 type managed命令生成wlan1節(jié)點。
具體操作:
1. 編譯softapDemo(若SDK中無源碼,從指定地址下載到external目錄)源碼地址:https://github.com/rockchip-linux/softapServermake softap-dirclean && make softap2. 啟動熱點(以正基模組為例,SSID為"RK-AP",無密碼)生成wlan1節(jié)點iw dev wlan1 del(若已存在)iw phy0 interface add wlan1 type managed啟動熱點softapDemo RK-AP3. 驗證:手機搜索"RK-AP"并連接,ping設(shè)備AP地址(默認192.168.88.1)ping 192.168.88.1 -c 4
若需配置加密、修改IP地址或DNS,可修改wlan_accesspoint_start、creat_dnsmasq_file、create_hostapd_file函數(shù),例如在create_hostapd_file中添加wpa相關(guān)配置實現(xiàn)WPA-PSK加密,在creat_dnsmasq_file中調(diào)整dhcp-range配置IP地址池。
3.藍牙測試(經(jīng)典藍牙+ BLE)
(1)Realtek模塊(UART接口)
# 1. 執(zhí)行初始化腳本(SDK生成的bt_pcba_test或bt_init.sh)/usr/bin/bt_pcba_test# 腳本核心操作(手動執(zhí)行等效命令):killall rtk_hciattach # 關(guān)閉現(xiàn)有rtk_hciattach進程echo0 > /sys/class/rfkill/rfkill0/state # 下電echo0 > /proc/bluetooth/sleep/btwritesleep1echo1 > /sys/class/rfkill/rfkill0/state # 上電echo1 > /proc/bluetooth/sleep/btwritesleep1insmod /usr/lib/modules/hci_uart.ko # 加載UART藍牙驅(qū)動rtk_hciattach -n -s 115200 /dev/ttyS4 rtk_h5 & # /dev/ttyS4為藍牙UART口,波特率115200# 2. 啟動hci0接口并查看信息hciconfig hci0 uphciconfig -a # 正常應顯示BD Address、版本信息等# 3. 掃描周邊藍牙設(shè)備hcitool scan
(2)正基/海華模塊
# 1. 執(zhí)行初始化腳本(bt_pcba_test或bt_init.sh)/usr/bin/bt_pcba_test# 腳本核心操作(手動執(zhí)行等效命令):killall brcm_patchram_plus1 # 關(guān)閉現(xiàn)有進程echo0 > /sys/class/rfkill/rfkill0/state # 下電echo0 > /proc/bluetooth/sleep/btwritesleep2echo1 > /sys/class/rfkill/rfkill0/state # 上電echo1 > /proc/bluetooth/sleep/btwritesleep2# 加載藍牙固件,/dev/ttyS4為藍牙UART口,波特率1500000brcm_patchram_plus1 --bd_addr_rand --enable_hci --no2bytes --use_baudrate_for_download --tosleep 200000 --baudrate 1500000 --patchram /system/etc/firmware/bcm43438a1.hcd /dev/ttyS4 &# 2. 啟動hci0接口并掃描設(shè)備hciconfig hci0 uphcitool scan
需注意,hciconfig命令依賴BR2_PACKAGE_BLUEZ5_UTILS配置,需在Buildroot中開啟并編譯;藍牙固件需與模塊型號匹配,例如AP6212A1對應BCM43430A1.hcd、AP6236對應BCM43430B0.hcd。
四、問題排查:90%的問題都在這里解決
調(diào)試中遇到的問題,大多可通過“看日志→查硬件→核配置”三步定位,以下是高頻問題及解決方案。
1. Wi-Fi識別不到(SDIO接口)
現(xiàn)象:dmesg中無mmc0: new high speed SDIO card或mmcx: new ultra high speed SDR104 SDIO card日志。
排查步驟:
1.測電壓:用萬用表測量VBAT/VCC_WL(3.3V)、VDDIO/VCCO_SDIO(1.8V/3.3V,SDIO3.0必須1.8V)、WL_REG_ON(1.8V/3.3V)的電壓是否正常,是否符合硬件設(shè)計要求。
2.查時序:用示波器測量VBAT、VDDIO、WL_REG_ON的時序,確保符合模塊規(guī)格書要求,以正基模塊為例,需滿足VBAT達到90% VH后,VDDIO啟動,再觸發(fā)WL_REG_ON,且需等待2個睡眠周期(32.768K時鐘)。
3.核DTS配置:
?檢查WL_REG_ON是否配置錯誤:用示波器觀察其波形,若一直為低則DTS配置異常;若硬件直接拉高WL_REG_ON可識別,也說明DTS配置錯誤。
?檢查sdio_pwrseq與wireless-wlan是否重復配置WL_REG_ON,需刪除其中一處配置。
1.查SDIO_CLK波形:若SDIO_CLK無波形,需檢查IO電源域配置是否正確、CLK腳是否誤加上拉電阻(可去掉測試),示波器需設(shè)置正確觸發(fā)模式抓取波形。
2.32.768K時鐘:若日志出現(xiàn)dhdsdio_htclk: HT Avail timeout(正基/海華模塊),需檢查32.768K時鐘是否正常,其頻率精度需±30ppm、占空比30%-70%、信號幅值400-1800mVpp。
2. Wi-Fi能識別但wlan0 up失敗
現(xiàn)象:dmesg有SDIO識別日志(如mmcx: new ultra high speed SDR104 SDIO card),但ifconfig wlan0 up報錯或無wlan0節(jié)點。
排查步驟:
1.固件匹配性:正基/海華模塊需確認固件文件是否存在且與型號匹配,例如AP6255對應fw_bcm43455c0_ag.bin、nvram_ap6255.txt,若日志出現(xiàn)dhdsdio_download_firmware: dongle image file download failed,則為固件缺失或路徑錯誤。
2.電源穩(wěn)定性:若日志出現(xiàn)RTW: ERROR sd_write8: FAIL!(-110)(Realtek模塊),需檢查VCC_WL/VBAT/VDDIO_SDIO電源供電是否不足或紋波過大,可增加電容濾波。
3.驅(qū)動沖突:檢查是否同時加載多個Wi-Fi驅(qū)動(如bcmdhd.ko和88xx.ko),需卸載多余驅(qū)動;同時確認內(nèi)核配置的buildin和ko模式是否沖突,只能選擇一種。
4.驅(qū)動加載時機:若日志顯示驅(qū)動在1秒內(nèi)加載,可能因SDIO/USB設(shè)備未枚舉完成導致異常,需調(diào)整驅(qū)動加載時機,確保設(shè)備枚舉后再加載。
3.藍牙初始化失?。?/span>UART接口)
現(xiàn)象:hciconfig -a無hci0節(jié)點。
排查步驟:
1.查RTS/CTS接線:
?正基/海華模塊:需4線連接(host tx→controller rx、host rx→controller tx、host rts→controller cts、host cts→controller rts)。
?Realtek模塊:COB芯片需將host cts接地;RTL8822C需4線連接;模組若已內(nèi)部將controller rts接地,host cts無需額外處理。
1.核驅(qū)動與固件:
?Realtek模塊需確認hci_uart.ko(UART)或rtk_btusb.ko(USB)是否正確編譯,固件文件是否放在對應路徑(UART:/lib/firmware/rtlbt/,USB:/lib/firmware/)。
?正基/海華模塊需確認brcm_patchram_plus1工具是否存在,固件文件(如bcm43438a1.hcd)是否與模塊匹配。
1.核UART配置:確認藍牙使用的UART口在DTS中已正確配置,且pinctrl配置的TX/RX/CTS引腳與硬件一致。
4. Wi-Fi連接不穩(wěn)定/吞吐率低
現(xiàn)象:頻繁斷線、ping延遲大、iperf測試速率不達標。
排查步驟:
1.RF指標驗證:先完成RF測試(發(fā)射功率、EVM、晶體頻偏、接收靈敏度)和天線OTA測試,確保指標合格,例如802.11b模式下11Mbps速率的接收靈敏度需≥-78dBm。
?正基/英飛凌模塊:需替換為測試固件(如AP6236對應fw_bcm43436b0_mfg.bin),執(zhí)行external/rkwifibt/wifi_ap6xxx_rftest.sh腳本進入測試模式,參考Wi-Fi RF Test Commands for Linux-v03.pdf進行測試。
?Realtek模塊:COB芯片需與相關(guān)方合作進行RF校準,模組需驗證出廠校準數(shù)據(jù),參考Quick_Start_Guide_V6.txt(Wi-Fi)和MP tool user guide for linux20180319.pdf(藍牙)測試。
1.環(huán)境干擾排除:在屏蔽室或地下室(干擾?。y試,若數(shù)據(jù)波動仍大,需檢查PCB走線(SDIO_CLK/CMD/DATA)是否異常、電容電感是否符合要求,可適當降低&sdio節(jié)點的max-frequency(如改為10M),若降頻后正常,則需優(yōu)化硬件時序。
2.CPU/DDR性能:將CPU和DDR頻率拉滿,避免降頻導致性能不足:
# DDR定頻(以1560MHz為例)echouserspace > /sys/devices/platform/dmc/devfreq/dmc/governorecho1560000000 > /sys/devices/platform/dmc/devfreq/dmc/min_freq# CPU定頻(以1992MHz為例)echouserspace > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governorecho1992000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
同時可將dw-mmc中斷綁定到其他CPU核心,例如echo 5 > /proc/irq/38/smp_affinity_list將中斷放到CPU2執(zhí)行。
五、資源獲?。合嚓P(guān)資料與工具路徑
1.開發(fā)文檔路徑:相關(guān)技術(shù)文檔位于SDK的docs/目錄下,例如:
?PCIe配置參考:
docs/Common/PCIe/Rockchip_RK3399_Developer_Guide_PCIe_CN.pdf、docs/Common/PCIe/Rockchip_RK356X_Developer_Guide_PCIe_CN.pdf、docs/Common/PCIe/Rockchip_Developer_Guide_PCIe_CN.pdf。
?USB配置參考:
docs/Common/USB/Rockchip_Developer_Guide_USB_CN.pdf。
?RF測試參考:
docs/linux/wifibt/目錄下的Quick_Start_Guide_V6.txt(Realtek)、Wi-Fi RF Test Commands for Linux-v03.pdf(正基/英飛凌)、BT RF Test Commands for Linux-v05.pdf(藍牙)。
總結(jié)
RK平臺Wi-Fi/BT調(diào)試的核心是“配置精準+日志分析+硬件驗證”:先確保DTS與原理圖匹配、內(nèi)核配置正確,再通過dmesg、hciconfig、wpa_cli等工具查看日志定位軟件問題,最后結(jié)合電壓測量、時序分析、RF測試排查硬件異常。遇到復雜問題,可優(yōu)先參考SDK文檔或相關(guān)FTP資源,大幅提升調(diào)試效率。
希望本文能幫你少走彎路,順利搞定RK平臺Wi-Fi/BT開發(fā)!如果有其他問題,歡迎在評論區(qū)留言討論~

-
嵌入式
+關(guān)注
關(guān)注
5198文章
20435瀏覽量
333899 -
wi-fi
+關(guān)注
關(guān)注
15文章
2424瀏覽量
129500 -
調(diào)試
+關(guān)注
關(guān)注
7文章
646瀏覽量
35635 -
RK3588
+關(guān)注
關(guān)注
8文章
555瀏覽量
7314
發(fā)布評論請先 登錄
一文搞定RK平臺Wi-Fi/BT調(diào)試!從配置到問題解決全攻略
評論