当前位置: 首页 > backend >正文

眺望电子RK3588_SDIO_WiFi_Support List更新

前言: 在嵌入式开发过程中,选用成熟高性能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.2   Makefile 配置

修改驱动编译配置文件,指定 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中添加:

if BCMDHDsource "drivers/net/wireless/rockchip_wlan/rkwifi/Kconfig"+ source "drivers/net/wireless/rockchip_wlan/rtl8821cs/Kconfig"endifsource "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   联网测试

配网命令:

nmcli dev 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 driver is required if you want to use RTL Bluetoothwith URAT interface.Say Y here to compile support for RTL Bluetooth urat devicesinto the kernel or say M to compile it as module (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,为嵌入式开发者提供更多选型参考。

若您在开发使用中遇到任何问题,请关注眺望电子并联系我们,获取完整测试报告与软硬件设计参考资料,我们将竭诚为您服务!

http://www.xdnf.cn/news/17819.html

相关文章:

  • nodejs03-常用模块
  • LeetCode 53.最大子数组和:贪心算法下的连续子数组最优解
  • 【测试用例】
  • STM32 - Embedded IDE - GCC - 解决LWRB库在GCC编译器会编译失败,在ARMCC编译器时却正常编译
  • 肖臻《区块链技术与应用》第16讲 - 以太坊的“世界状态”:从哈希表到MPT架构演进
  • 安装openmmlab时出错
  • IStoreOS(OpenWrt)开启IPV6
  • LeetCode 刷题【42. 接雨水】
  • 大规模Go网络应用的部署与监控实战指南
  • python30-正则表达式
  • 应急救援智能接处警系统——科技赋能应急,筑牢安全防线
  • 线程P5 | 单例模式[线程安全版]~懒汉 + 饿汉
  • 从0开始学习Java+AI知识点总结-15.后端web基础(Maven基础)
  • UI-TARS-Desktop 产品发展史:从实验室原型到企业级解决方案
  • 流处理、实时分析与RAG驱动的Python ETL框架:构建智能数据管道(中)
  • python中的map函数
  • Android UI(一)登录注册 - Compose
  • 【数据可视化-89】基孔肯雅热病例数据分析与可视化:Python + pyecharts洞察疫情动态
  • RH134 管理基本存储知识点
  • 【C#补全计划】泛型约束
  • OpenCv(二)——边界填充、阈值处理
  • 37 C++ STL模板库6-string_view
  • Mybatis实现页面增删改查
  • 解锁AI潜能:五步写出让大模型神级指令
  • C#面试题及详细答案120道(01-10)-- 基础语法与数据类型
  • 《嵌入式 C 语言编码规范个人笔记》参考华为C语言规范标准
  • 机器学习-支持向量机器(SVM)
  • CPP模板编程
  • Python学习-----3.基础语法(2)
  • 广义矩估计随机近似中1.2和2.1的差异