完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
【硬件平台】
CPU:RK3288 BT模组:AP6212, 硬件连接如下: 编号 RK3288 AP6212 1 UART0 <—> UART 2 GPIO4_D5 <—> BT_RST 3 GPIO4_D2 <—> BT_WAKE 4 GPIO4_D6 <—> BT_HOST_WAKE 编号 RK808-B AP6212 1 CLK32K_OUT2<—> LPO 2 GPIO4_D5 <—> BT_RST 【代码总结】 1 内核配置 内核配置需要增加如下选项: ./kernel/.config CONFIG_BT=y CONFIG_BT_RFCOMM=y CONFIG_BT_RFCOMM_TTY=y CONFIG_BT_BNEP=y CONFIG_BT_BNEP_MC_FILTER=y CONFIG_BT_BNEP_PROTO_FILTER=y CONFIG_BT_HIDP=y CONFIG_TUN=y CONFIG_UHID=y 2 DTS配置 wireless-bluetooth { compatible = "bluetooth-platdata"; //wifi-bt-power-toggle; uart_rts_gpios = <&gpio4 GPIO_C3 GPIO_ACTIVE_LOW>; pinctrl-names = "default","rts_gpio"; pinctrl-0 = <&uart0_rts>; pinctrl-1 = <&uart0_rts_gpio>; BT,power_gpio = <&gpio4 GPIO_D5 GPIO_ACTIVE_HIGH>; // BT,reset_gpio = <&gpio4 GPIO_D5 GPIO_ACTIVE_HIGH>; BT,wake_gpio = <&gpio4 GPIO_D2 GPIO_ACTIVE_HIGH>; BT,wake_host_irq = <&gpio4 GPIO_D7 GPIO_ACTIVE_HIGH>; status = "okay"; }; 3、Android配置 ./device/rockchip/rk3288/wifi_bt.mk BOARD_CONNECTIVITY_VENDOR := Broadcom BOARD_CONNECTIVITY_MODULE := ap6xxx 4、内核配置 参考文档《RKXX_Android 4.4&5.0 Kernel 3.10 WiFi BT配置说明V1.0.pdf》 5、指定蓝牙hcd文件 /etc/bluetooth/bt_vendor.conf # UART device port where Bluetooth controller is attached UartPort = /dev/ttyS0 # Firmware patch file location FwPatchFilePath = /vendor/firmware/ //蓝牙固件根据连接的芯片模组动态加载 shell@rk3288_box:/vendor/firmware # ls 4343A0.hcd BCM4330B1.hcd awnb108.hcd bcm20710a1_24M.hcd bcm20710a1_26M.hcd bcm2076b1.hcd bcm40183b2.hcd bcm43241b4.hcd bcm4329.hcd bcm43341b0.hcd bcm4339a0.hcd bcm43438a0.hcd bcm4354a1.hcd nh660.hcd rk903.hcd rk903_26M.hcd 6、驱动介绍 BT 使用标准的 rfkill 驱动框架,上层通过操作 rfkill 节点来控制 BT 芯片的电源 BT 电源控制驱动位于:net/rfkill/rfkill-bt.c 7、蓝牙地址 /system/etc/firmware/bd_addr.txt 【调试记录】 logcat日志(获取命令:logcat -v time) 行 2088: 01-21 16:50:29.150 I/bt_hwcfg( 1094): bt vendor lib: set UART baud 1500000 行 2089: 01-21 16:50:29.152 D/bt_hwcfg( 1094): Chipset BCM43430A1 行 2090: 01-21 16:50:29.152 D/bt_hwcfg( 1094): Target name = [BCM43430A1] 行 2092: 01-21 16:50:29.152 I/bt_hwcfg( 1094): BT module name is: AP6212, p_chip_id_str = BCM43430A1 行 2093: 01-21 16:50:29.152 I/bt_hwcfg( 1094): Target HCD file name is: BCM43430A1.hcd 行 2094: 01-21 16:50:29.154 I/bt_hwcfg( 1094): Found patchfile: /vendor/firmware//BCM43430A1.hcd 行 2103: 01-21 16:50:29.513 I/bt_hwcfg( 1094): bt vendor lib: set UART baud 115200 行 2104: 01-21 16:50:29.513 D/bt_hwcfg( 1094): Settlement delay -- 200 ms 行 2105: 01-21 16:50:29.513 I/bt_hwcfg( 1094): Setting fw settlement delay to 200 行 2106: 01-21 16:50:29.719 I/bt_hwcfg( 1094): bt vendor lib: set UART baud 1500000 行 2107: 01-21 16:50:29.719 I/bt_hwcfg( 1094): Setting local bd addr to 22:22:4F:38:1D:60 行 2108: 01-21 16:50:29.720 I/bt_hwcfg( 1094): vendor lib fwcfg completed 【调试问题】 1、vendor lib preload failed to locate firmware patch file 查看logcat日志打印如下:logcat -v time > /sdcard/1.txt 11-19 10:54:44.640 I/bt_hwcfg( 1592): bt vendor lib: set UART baud 1500000 11-19 10:54:44.648 D/bt_hwcfg( 1592): Chipset BCM43430A1 11-19 10:54:44.648 D/bt_hwcfg( 1592): Target name = [BCM43430A1] 11-19 10:54:44.648 D/RkWifiCtrl( 1592): check_wifi_chip_type_string: AP6212 11-19 10:54:44.648 I/bt_hwcfg( 1592): BT module name is: AP6212, p_chip_id_str = BCM43430A1 11-19 10:54:44.648 I/bt_hwcfg( 1592): Target HCD file name is: BCM43430A1.hcd 11-19 10:54:44.649 D/bt_hwcfg( 1592): Target name = [BCM43430] 11-19 10:54:44.649 D/RkWifiCtrl( 1592): check_wifi_chip_type_string: AP6212 11-19 10:54:44.649 I/bt_hwcfg( 1592): BT module name is: AP6212, p_chip_id_str = BCM43430 11-19 10:54:44.649 I/bt_hwcfg( 1592): Target HCD file name is: BCM43430.hcd 11-19 10:54:44.649 E/bt_hwcfg( 1592): vendor lib preload failed to locate firmware patch file -- -》/device/common/bluetooth/libbt/src/hardware.c hw_config_cback 11-19 10:54:44.649 I/bt_hwcfg( 1592): Setting local bd addr to 22:22:2E:F8:AC:6F 11-19 10:54:44.650 I/bt_hwcfg( 1592): vendor lib fwcfg completed 2、蓝牙日志需要手机哪些日志? 1)启动蓝牙日志打印 设置-》开发者选项-》启用蓝牙HCI信息收集日志 (注意:不设置的话,logcat时会找不到蓝牙的日志) 操作蓝牙后,日志报错在文件:/sdcard/btsnoop_hci.log 说明:如果找不到开发者选项按钮,需要在关于设备-》版本号出连续点击7次; 2)系统logcat日志 logcat -v time 3)linux内核日志 dmesg -c 3、拷贝文件到/etc/bluetooth目录提示read only filesystem adb连接前先执行命令: adb root adb remount adb shell 4、无法连接蓝牙遥控设备 问题原因:1)增加bt_vendor.conf文件,指定hcd固件加载路径; 2)增加hcd固件,找厂家提供,注意修改hcd文件属性为777; |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
613 浏览 1 评论
rk1126实现BT601输入,输入不带IIC接口的驱动程序
2175 浏览 0 评论
1832 浏览 1 评论
3111 浏览 3 评论
RK3568 Android11让系统ntp校准时间生效,需要设置些什么
3489 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-31 21:26 , Processed in 0.457865 second(s), Total 41, Slave 34 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191