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

RK全志平台WiFiBT调试思路

调试前

WiFi常见的通信接口:PCIE、SDIO、USB。

BT 常见的通信接口: UART、SDIO、USB。

模组厂商提供:

(1)固件(用来控制模组硬件行为);

(2)模组驱动源码(SDK 一般会提供常用的 WiFi 模组驱动源码,没有的需要找模组厂商)。

WiFi 模组识别流程

SDIO 接口

开机时kernel MMC框架会去识别SDIO 卡,首先会去解析dts里面的sdio_pwrseq节点的reset-gpios属性配

置的GPIO,也就是WL_REG_ON然后拉高它,并通过SDIO_CLK/CMD/DATA发初始化指令给模块。

首先SDIO_CLK会以400/300/200K的低频给WiFi模块发命令,获取WiFi SDIO基本的信息。比如SDIO2.0(CLK最大50M)还是3.0 (CLK最大208M)、支持4线还是1线等信息,然后根据支持的规格提高SDIO_CLK频率到相应的高频50M/150M,到这一步初始化基本完成。

# 注意 mmc0: 0的数字是不固定的,也可能是0/1/2; ff4a0000:表示控制器的地址,不同平台也是不一样的
# 解析dts的mmc-pwrseq节点,获取WL_REG_ON
dwmmc_rockchip ff4a0000.dwmmc: allocated mmc-pwrseq
# 低频初始化
mmc_host mmc0: Bus speed (slot 0) = 400000Hz (... actual 400000HZ div = 0)
# 高频工作模式
mmc_host mmc0: Bus speed (slot 0) = 50000000Hz (... actual 50000000HZ div = 0)
# SDIO 2.0
mmc0: new high speed SDIO card at address 0001
# SDIO 3.0
mmcx: new ultra high speed SDR104 SDIO card at address 0001

USB/PCIE接口

这两个接口识别过程比较复杂,当识别完成后,lsusb/lspci 可以看到如下类似信息:

USB接口:

Bus 001 Device 002: ID 0bda:f179 Realtek Semiconductor Corp. RTL8188FTV
802.11b/g/n 1T1R 2.4G WLAN Adapter

PCIE接口:

0002:21:00.0 Network controller: Broadcom Inc. and subsidiaries Device 449d (rev02)

调试思路

拿到模组后,总体调试思路如下:

(1)硬件检查:确认模组供电、接口(SDIO/USB/PCIe)、时钟信号、天线连接正常。

(2)设备树/内核配置:验证接口控制器、GPIO、 复位/中断引脚配置正确。

(3)驱动加载与固件:确保驱动匹配模组,固件正确加载(/lib/firmware/)。

(4)模组识别状态:调试 PCIE /USB 接口 WiFi 模组时,首先还要 lspci/lsusb 确认 PCIE 是否识别到模块。

(5)连接与网络验证: AP 扫描网络、wpa_supplicant连接网络。

蓝牙总体思路类似,DTS 配置更简单,使用什么通信接口就配置什么接口,比如 UART,那 DTS 只需配置 UART 即可。

排查思路

重要:务必先看log,根据log的异常进行排查!!!

WiFi/BT大概分为3类问题:

(1)SDIO/USB/PCIE设备识别不到;

(2)识别到SDIO卡,但firmware加载失败;

(3)性能问题,连不上/扫描个数少/概率断开等等;

具体步骤以及更多排查手段可以参考各 soc 厂商的开发文档。

欢迎关注“嵌入式分享”,持续更新!

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

相关文章:

  • 替换一个数字后的最大差值
  • 【配件出入库专用软件】佳易王配件进出库管理系统:轻量级仓储管理解决方案配件管理系统#进出库管理#仓储软件#库存统计#轻量级解决方案
  • 错题分析接口实现全流程
  • Vue3 + TypeScript 父组件点击按钮触发子组件事件方法
  • C#里与嵌入式系统W5500网络通讯(5)
  • 【python】bash: !‘: event not found
  • 【C语言】C语言发展历史、特点及其应用
  • DL00120-Lyapunov深度强化学习移动边缘计算网络在线计算卸载python
  • 互联网大厂Java求职面试:AI大模型应用实践中的架构挑战与实战
  • Android Activity全面解析:从创建到生命周期的完整指南
  • 深入解析 Java 集合框架:从底层原理到实战优化
  • Pytorch 卷积神经网络参数说明一
  • Python----OpenCV(图像的绘制——绘制直线,绘制矩形,绘制圆形,绘制多边形)
  • (javaSE)抽象类和接口:抽象类概念语法和特性, 抽象类的作用;接口的概念 接口特性 实现多个接口 接口间的继承 Object类
  • Qt--信号槽发送QVector
  • Relin梦中门——第二章——感官
  • jojojojojo
  • java 设计模式_行为型_15迭代器模式
  • nginx 配置返回 文件大小
  • Go语言底层(四): 深入浅出Go语言的ants协程池
  • 第八章:排序
  • 高速隔直电容设计
  • 【Vue】v-model进阶+ref+nextTick
  • 计算机是怎么跑起来的第五章
  • Python3 学习(菜鸟)-02基本数据类型
  • 从 PPO、DPO 到 GRPO:大语言模型策略优化算法解析
  • HarmonyOS 布局优化
  • 【Zephyr 系列 24】设备日志、事件与远程调试机制设计:为每一块硬件留痕,助力稳定性分析
  • Cursor ReAct Agent技术架构
  • Python爬虫实战:研究RQ库相关技术