Rockchip Android13 x3588蓝牙wifi/bt调试心得

这篇具有很好参考价值的文章主要介绍了Rockchip Android13 x3588蓝牙wifi/bt调试心得。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

x3588的wifi/bt使用的是外挂双模模块,根据数据通信接口的差异分为PCIE和SDIO两种。

x3588使用的是SDIO接口双模模块:AP6398S。

DTS参考配置:

参考rockchip android13: rk3588-x3588-sdk.dts

  • 蓝牙配置:

wireless_bluetooth: wireless-bluetooth {
        compatible = "bluetooth-platdata";
        clocks = <&hym8563>;  // 外部时钟
        clock-names = "ext_clock"; 
        uart_rts_gpios = <&gpio4 RK_PC4 GPIO_ACTIVE_LOW>; //uart的rts脚
        pinctrl-names = "default", "rts_gpio";
        pinctrl-0 = <&uart9m0_rtsn>, <&bt_reset_gpio>, <&bt_wake_gpio>, <&bt_irq_gpio>;
        pinctrl-1 = <&uart9_gpios>;
        BT,reset_gpio    = <&gpio0 RK_PC6 GPIO_ACTIVE_HIGH>; //蓝牙的复位脚
        BT,wake_gpio     = <&gpio0 RK_PC5 GPIO_ACTIVE_HIGH>; //CPU唤醒蓝牙模块的GPIO
        BT,wake_host_irq = <&gpio0 RK_PA0 GPIO_ACTIVE_HIGH>; //蓝牙模块唤醒CPU的GPIO
        status = "okay";
 };
  • uart的rts脚:UART_CTS_N

Rockchip Android13 x3588蓝牙wifi/bt调试心得,rockchip,单片机,Powered by 金山文档
  • 复位脚:BT_REG_ON->BT_REG_ON_S->BT_REG_ON_H

Rockchip Android13 x3588蓝牙wifi/bt调试心得,rockchip,单片机,Powered by 金山文档
Rockchip Android13 x3588蓝牙wifi/bt调试心得,rockchip,单片机,Powered by 金山文档
  • CPU唤醒蓝牙GPIO:脚:BT_WAKE

Rockchip Android13 x3588蓝牙wifi/bt调试心得,rockchip,单片机,Powered by 金山文档
Rockchip Android13 x3588蓝牙wifi/bt调试心得,rockchip,单片机,Powered by 金山文档
  • 蓝牙唤醒CPU模块的GPIO:脚BT_HOST_WAKE

Rockchip Android13 x3588蓝牙wifi/bt调试心得,rockchip,单片机,Powered by 金山文档
  • WIFI配置:

wireless_wlan: wireless-wlan {
        compatible = "wlan-platdata";
        wifi_chip_type = "ap6398s";  // 模块名称
        pinctrl-names = "default";
        pinctrl-0 = <&wifi_host_wake_irq>;  ///<&wifi_poweren_gpio>;
        WIFI,host_wake_irq = <&gpio0 RK_PB2 GPIO_ACTIVE_HIGH>; // wifi模块唤醒CPU
        WIFI,poweren_gpio = <&gpio0 RK_PC4 GPIO_ACTIVE_HIGH>;  // 控制wifi模块电源
        status = "okay";
};
  • wifi唤醒CPU:脚:WL_HOST_WAKE

Rockchip Android13 x3588蓝牙wifi/bt调试心得,rockchip,单片机,Powered by 金山文档
  • 控制wifi模块电源:脚WL_REG_ON

Rockchip Android13 x3588蓝牙wifi/bt调试心得,rockchip,单片机,Powered by 金山文档
Rockchip Android13 x3588蓝牙wifi/bt调试心得,rockchip,单片机,Powered by 金山文档
  • SDIO配置:

&sdio {
    max-frequency = <150000000>;
    no-sd;
    no-mmc;
    bus-width = <4>;
    disable-wp;
    cap-sd-highspeed;
    cap-sdio-irq;
    keep-power-in-suspend;
    mmc-pwrseq = <&sdio_pwrseq>;
    non-removable;
    pinctrl-names = "default";
    pinctrl-0 = <&sdiom0_pins>;
    sd-uhs-sdr104;
    status = "okay";
};

驱动软件配置:

  • 确认defconfig是将wifi驱动编译成ko modules的配置。

Rockchip Android13 x3588蓝牙wifi/bt调试心得,rockchip,单片机,Powered by 金山文档

上面配置好后编译内核时会自动编译wifi ko文件。

  • 编译android的时候会自动把ko文件和wifi固件编译到vendor.img,存放在vendor/lib/modules目录下。

vendor/rockchip/common/wifi/wifi.mk

WIFI_KO_FILES := $(shell find $(TOPDIR)$(PRODUCT_KERNEL_PATH)/drivers/net/wireless/rockchip_wlan -name "*.ko" -type f)
  
BOARD_VENDOR_KERNEL_MODULES += \
        $(foreach file, $(WIFI_KO_FILES), $(file))

WifiFirmwareFile := $(shell ls $(CUR_PATH)/wifi/firmware)
PRODUCT_COPY_FILES += \
        $(foreach file, $(WifiFirmwareFile), $(CUR_PATH)/wifi/firmware/$(file):$(TARGET_COPY_OUT_VENDOR)/etc/firmware/$(file))
~                                                                                                                              

这个脚本有两个功能:

  1. 把内核的ko文件(正基模块:bcmdhb.ko)安装到vendor/lib/modules目录:

Rockchip Android13 x3588蓝牙wifi/bt调试心得,rockchip,单片机,Powered by 金山文档
  1. 把vendor/rockchip/common/wifi/firmware/目录下的蓝牙固件文件安装到固件的vendor/etc/firmware/目录下.

所以要把蓝牙模块的固件放在此目录下编译

Rockchip Android13 x3588蓝牙wifi/bt调试心得,rockchip,单片机,Powered by 金山文档
  • wifi芯片识别流程:

  1. 开机对wifi模块上电,并自动进行扫描sdio操作。

  1. 系统打开wifi后,分别对系统sys/bus/sdio(sdio wifi)下的uevent进行读取,

软件会根据读取的pid和vid识别蓝牙芯片模块。

查看pid,vid:

rk3588_t:/sys/bus/sdio/devices/mmc0:0001:1 # cat uevent
DRIVER=bcmsdh_sdmmc
SDIO_CLASS=00
SDIO_ID=02D0:AAE8   // pid(02d0), vid(aae8)
SDIO_REVISION=0.0
MODALIAS=sdio:c00v02D0dAAE8
rk3588_t:/sys/bus/sdio/devices/mmc0:0001:1 #
  1. 根据wifi/bt芯片vid和pid加载对应的ko和蓝牙驱动:

代码加载位置:frameworks/opt/net/wifi/libwifi_hal:

Rockchip Android13 x3588蓝牙wifi/bt调试心得,rockchip,单片机,Powered by 金山文档

在配置表中supported_wifi_devices[]和module_list[]加上我们的蓝牙模块名称,此名称可以板子上贴片信息:AP6275S,pid:vid(这里"02d0:aae8")一定对应正确。通过/sys/bus/sdio/devices/mmc0:0001:1 # cat uevent查看。

Rockchip Android13 x3588蓝牙wifi/bt调试心得,rockchip,单片机,Powered by 金山文档

hardware/broadcom/libbt下的修改配置:

Rockchip Android13 x3588蓝牙wifi/bt调试心得,rockchip,单片机,Powered by 金山文档

注意:对照硬件图修改蓝牙模块用的uart串口,sdk默认是ttyS8

我们芯片是串口9,所以要改成ttyS9。

Rockchip Android13 x3588蓝牙wifi/bt调试心得,rockchip,单片机,Powered by 金山文档

device/rockchip/rk3588/rk3588_t/BoardConfig.mk:

Rockchip Android13 x3588蓝牙wifi/bt调试心得,rockchip,单片机,Powered by 金山文档

4.识别到wifi类型后加载不同的wpa_supplicant参数启动wifi。

核心代码目录:

android /frameworks/opt/net/wifi

kernel/net/rfkill/rfkill-wlan.c

hardware/broadcom

external/wpa_supplicant_8/wpa_supplicant/main.c

  • 参考:

https://blog.csdn.net/weixin_43245753/article/details/123999080

RKDocs/android/wifi/Rockchip_Introduction_WIFI_Configuration_CN&EN.pdf文章来源地址https://www.toymoban.com/news/detail-613798.html

到了这里,关于Rockchip Android13 x3588蓝牙wifi/bt调试心得的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 视源aic800wifi/bt调试

    本人调试了视源的3款WiFi、bt模块。分别是: aic88002.1ds 该模块是双频的WiFi/bt模块,含2.4g/5g aic8800dcs.2 该模块是单频的WiFi/bt模块 aic8800dws.2 该模块是单频的WiFi模块 这3款当然了,价格方面肯定是依次从高到低的;配置方面近乎大同小异的。后面会依次说一下这3款的配置,以下

    2024年02月03日
    浏览(33)
  • Rockchip基于RK3566/RK3568 WiFi AP6256调试笔记

    CPU:RK3566 编译环境:Ubuntu18.04 内核版本:kernel 4.19 因为RK3566/RK3568支持SDIO3.0并且向下兼有SDIO2.0接口,由于核心板在VCC_IO6上将电压定为了3.3V,无法改变为1.8V,所以没有办法支持SDIO3.0,所以这次需要调试SDIO2.0模式下的WiFi。 从Rockchip软件包中的 Rockchip_Developer_Guide_Linux_WIFI_BT_CN.pd

    2024年01月16日
    浏览(67)
  • Rockchip Android13 GKI开发指南

    1.1 什么是GKI GKI:Generic Kernel Image 通用内核映像。 Android13 GMS和EDLA认证的一个难点是google强制要求要支持GKI。GKI通用内核映像,是google为了解决内核碎片化的问题,而设计的通过提供统一核心内核并将SoC和板级驱动从核心内核移至可加载模块中。核心内核为驱动模块提供了稳

    2024年02月02日
    浏览(78)
  • RK3288 Android5.1添加WiFi&BT模块AP6212

    CPU:RK3288 系统:Android 5.1 注:RK3288系统,目前 Android 5.0 Kernel 3.10 SDK 支持 Braodcom,Realtek 等 WiFi BT 模块 各个 WiFi BT 模块已经做到动态兼容,Android 上层不再需要像以前一样进 行特定宏的配置 此文是手动添加AP6212A的例程。 1、在设备树中修改 wifi 芯片为 ap6212a(找到自己对应的

    2024年02月07日
    浏览(36)
  • RK3588 Android 12 北斗模块调试

    北斗模块用的MTK RS1612M3 , http://www.sragps.com/web/down.html,可以查看相关资料,用串口和系统通讯 Android12中主要包括串口设备树修改,GPS2.0加载,gps.default.so编译和上层应用测试,以下主要记录测试中碰到的难点 板子上用的串口8,因此打开uart8的设备树配置 uart8 { status = “okay”;

    2024年02月15日
    浏览(42)
  • RK3588 Android13 RM500U-CN移植

    参考lte_rm310配置 移远提供的驱动:Quectel_Linux_Android_QMI_WWAN_Driver_V1.2.6.zip 将驱动压缩包 Quectel_LinuxAndroid_SPRD_PCIE_Driver 解压至 Linux 源码 drivers 目录下,并在该目录下的 Makefile 文件中添加如下内容后直接编译即可。 若 PCIe 驱动被正确移植并编译成功,上位机设备的 dev 目录下会生

    2024年01月19日
    浏览(48)
  • rockchip rk3588添加uvc及uvc,adb的复合设备

    软硬件环境:         软件基础:我目前拿到的rk3588 sdk : git@www.rockchip.com.cn:2222/Android_S/rk3588- manifests.git         硬件基础:RK3588 LP4X EVB          uvc_app: 从rv1126 sdk中rv1126_sdk/rv1126/external/uvc_app 目录移植而来。移植后,可以采集开发板板载摄像头图像(/dev/video11)获

    2024年02月09日
    浏览(50)
  • rk3588配置uac功能,android13使能uac及adb的复合设备

              最近,因新增需求需要在现有产品上增加UAC的功能,查阅并学习相关知识后,在rk3588 SOC硬件平台搭载android13系统平台上成功配置了uac及uacadb的复合设备。基于开源共享精神希望给大家提供些参考。         (1)我首先预览rockchip发布的文档包,遍历了系统及

    2024年01月20日
    浏览(55)
  • Android WiFi Service启动-Android13

    Android WiFi基础概览 AOSP 文档 心主题 WiFi概览 编译生成对应的jar包: \\\"/apex/com.android.wifi/javalib/service-wifi.jar\\\" 相关WiFi服务: WifiService 、 WifiScanningService 、 RttService 、 WifiAwareService 、 WifiP2pService frameworks/base/services/java/com/android/server/SystemServer.java WifiInjector.java : WiFi依赖性注入器。

    2024年01月21日
    浏览(36)
  • Android13 wifi状态问题分析

    场景; 设置wif 默认开关属性: 系统升级后,wifi 默认设置属性无效。 原因: 多个地方存在定义默认wifi开关状态的定义。 解决方法: 可能是配置文件,有overlay,一般是在 vendor 下面有 WifiOverlay的情况,或者全局查找,使用命令查找: 看看系统源码哪里还会设置默认状态的

    2024年02月01日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包