前言:在嵌入式开发过程中,选用成熟高性能WiFi模组保障功能稳定性与可靠性,同时需要考虑供应链的稳定与驱动的成熟度,往往是项目落地的关键环节。眺望电子针对企业项目技术服务过程中,将持续对外围电路做support list更新,方便用户选型使用。本章主要是详细说明RK3588 下RTL8821CS完整调试过程。
一、WiFi模组介绍
本次推荐的6221A-SRC 模块(基于瑞昱 RTL8821CS 方案)具备以下核心优势:
- 高性能无线能力:支持 Wi-Fi 5(802.11a/b/g/n/ac)和蓝牙双模,Wi-Fi 最大传输速率 150Mbps,蓝牙 3Mbps,满足高流量场景需求;
- 兼容性优异:与正基 AP6255/AP6256 模块 Pin to Pin 兼容,无需修改硬件设计即可替换;
- 成熟稳定:采用瑞昱成熟方案,驱动支持完善,适配 RK3588 等主流嵌入式平台。
二、RTL8821C WIFI调试
2.1驱动准备与路径配置
将rtl8821cs的wifi驱动包复制到rk3588的SDK内,路径如下~/kernel/drivers/net/wireless/rockchip_wlan/,并命名为rtl8821cs
2.2Makefile 配置
修改驱动编译配置文件,指定 WiFi 芯片类型和接口模式:
- 配置 WiFi IC:CONFIG_RTL8821C = y(其他设为 n)
- 配置接口:CONFIG_SDIO_HCI = y(其他设为 n)
2.3 设备树(DTS)配置
在 Fuction.dtsi 中添加 WiFi 硬件信息,关键配置唤醒脚和引脚定义:
wireless-wlan { compatible ="wlan-platdata"; pinctrl-names ="default"; pinctrl-0= <&wifi_host_wake_irq>; wifi_chip_type ="rtl8821cs"; WIFI,host_wake_irq = <&gpio1 RK_PD6 GPIO_ACTIVE_HIGH>; status ="okay";}; wireless-wlan { wifi_host_wake_irq: wifi-host-wake-irq { rockchip,pins = <1 RK_PD6 RK_FUNC_GPIO &pcfg_pull_down>; };};
2.4 Kconfig 与 Makefile 添加编译项
在~/kernel/drivers/net/wireless/rockchip_wlan/Kconfig中添加:
ifBCMDHDsource"drivers/net/wireless/rockchip_wlan/rkwifi/Kconfig"+source"drivers/net/wireless/rockchip_wlan/rtl8821cs/Kconfig"endif
source"drivers/net/wireless/rockchip_wlan/cywdhd/Kconfig"source"drivers/net/wireless/rockchip_wlan/infineon/Kconfig"
在~/kernel/drivers/net/wireless/rockchip_wlan/Makefile中添加:
# SPDX-License-Identifier: GPL-2.0obj-$(CONFIG_BCMDHD)+= rkwifi/obj-$(CONFIG_CYW_BCMDHD)+= cywdhd/obj-$(CONFIG_INFINEON_DHD)+= infineon/+ obj-$(CONFIG_RTL8821CS)+= rtl8821cs/
2.5内核编译与驱动加载
- 进入内核配置菜单,勾选对应驱动(路径:Device Drivers > Network device support > Wireless LAN > Rockchip Wireless LAN support > Broadcom Wireless Device Driver Support),编译为模块;
- 编译后在
/kernel/drivers/net/wireless/rockchip_wlan/rtl8821cs生成 KO 文件,拷贝到开发板; - 重新烧录修改后的内核,使用insmod 8821cs.ko加载驱动,生成 wlan0 节点。
2.6 联网测试
配网命令:
nmclidev wifi connect"Talowe-2.4G-0"password"Talowe888"ifname wlan0udhcpc -i wlan0
wifi模块就完成了配网,进行网络连接,可以进行ping百度和iperf测试。
三、RTL8821C 蓝牙调试
3.1蓝牙驱动配置
将rtl8821cs的蓝牙驱动包复制到rk3588的SDK内,路径如下~/kernel/drivers/bluetooth/bluetooth_uart_driver。
3.2蓝牙设备树配置
在Fuction.dtsi中添加以下信息,gpio0 PD3为REG_ON引脚,gpio4 PC为蓝牙唤醒引脚。
wireless-bluetooth {compatible ="bluetooth-platdata";uart_rts_gpios = <&gpio3 RK_PD2 GPIO_ACTIVE_LOW>;pinctrl-names ="default","rts_gpio";pinctrl-0 = <&uart9m2_rtsn>;pinctrl-1 = <&uart9_gpios>;BT,power_gpio = <&gpio0 RK_PD3 GPIO_ACTIVE_HIGH>; // BT_REG_ONBT,wake_host_irq = <&gpio4 RK_PC2 GPIO_ACTIVE_HIGH>; // BT_WAKE_HOSTstatus ="okay";};
wireless-bluetooth {uart9_gpios: uart9-gpios {rockchip,pins = <3 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;};};
3.3蓝牙驱动编译配置
在~/kernel/drivers/bluetooth/Kconfig中添加:
config RTL_8821_UART_BTtristate"RTL_8821_uart_bt driver"helpRTL Bluetooth HCI uart driver.This driverisrequiredifyou want to use RTL BluetoothwithURAT interface.Say Y here tocompilesupportforRTL Bluetooth urat devicesinto the kernelorsay M tocompileitasmodule (btrtluart).
在~/kernel/drivers/bluetooth/Makefile中添加:
obj-$(CONFIG_BT_HCIUART_NOKIA) += hci_nokia.oobj-$(CONFIG_BT_HCIRSI) += btrsi.o+ obj-$(CONFIG_RTL_8821_UART_BT) += bluetooth_uart_driver/
四、固件加载与节点验证
- .在内核的配置中勾选对应的驱动进行编译,路径:Networking support > Bluetooth subsystem support > Bluetooth device drivers
- 勾选对应的驱动文件后,保存配置文件编译内核进行烧录,将蓝牙的固件拷贝到RK3588开发板的/lib/firmware/rtlbt路径中
- 等待固件加载完成,查看蓝牙节点
总结
6221A-SRC 作为一款成熟的 WiFi & 蓝牙模组,通过本文的驱动配置、设备树修改、编译与加载步骤,可见在 RK3588 平台上调试十分简单快捷,工程师可快速完成模组集成,降低项目开发周期。眺望电子也将持续更新外围电路 support list,为嵌入式开发者提供更多选型参考。若您在开发使用中遇到任何问题,请关注眺望电子公众号并联系我们,获取完整测试报告与软硬件设计参考资料,我们将竭诚为您服务!
-
WIFI
+关注
关注
81文章
5413浏览量
208981 -
SDIO
+关注
关注
2文章
78浏览量
20060 -
RK3588
+关注
关注
7文章
432浏览量
6091
发布评论请先 登录
SDMMC/SDIO的PCB设计要求 以RK3588举例讲解SDMMC/SDIO的pcb布线技巧

瑞芯微RK3588开发板RK3588 EVB和RK3588S EVB解读

RK3588 PCB推荐叠层及阻抗设计

简要说明一下RK3588 MMC模式的DTS配置
RK3588和RK3588S之间的区别是什么
ROC RK3588S PC源代码RK356X/RK3588 RKNN SDK

评论