BT蓝牙

模块简介

AP6212芯片

x1600使用的是AP6212芯片,AP6212是基于BCM4340A1方案的集成wifi和bluetooth的功能模块。

  • bluetooth模块支持HCI UART接口、音频数据的PCM接口。

  • bluetooth符合蓝牙标准规范5.0

GPIO功能描述

bluetooth模块

NameI/ODescription
BT_REG_ON I Powerup/downinternalregulatorsusedbyBTsection
BT_WAKE I HOSTwake-upBluetoothdevice
BT_HOST_WAKE O Bluetoothdevicetowake-upHOST
UART_RTS_N O BluetoothUARTinterface
UART_TXD O BluetoothUARTinterface
UART_RXD I BluetoothUARTinterface
UART_CTS_N I BluetoothUARTinterface

驱动源码位置

驱动源码所在位置:

kernel/module_drivers/drivers/misc/

├──bt_power_bluesleep.c

设备树配置

设备树默认配置

在板级设备树halley6_v20.dts中,进行如下默认配置:

  1. 为蓝牙配置uart

&uart0 { 

 status = "disable";

/*dma-mode*/

 pinctrl-names = "default";

 pinctrl-0 = <&uart0_pd>;

};
  1. 配置电源管理相关gpio

 bt_power {

 compatible = "ingenic,bt_power";

 /*ingenic,reg-on-gpio = <&gpb 5 GPIO_ACTIVE_LOW INGENIC_GPIO_NOBIAS>;*/

 /*ingenic,wake-gpio = <&gpb 2 GPIO_ACTIVE_LOW INGENIC_GPIO_NOBIAS>;*/

};

设备树自定义配置

用户可根据实际需求开启相关配置。

内核编译配置

内核配置BCMDHD,配置说明如下:

Symbol: BCMDHD [=y] 

Type : tristate 

Prompt: Broadcom FullMAC wireless cards support 

 Location: 

 -> Ingenic device-drivers Configurations 

(1) -> SDIO-WIFI drivers 

 Defined at module_drivers/drivers/net/wireless/bcmdhd/Kconfig

内核默认编译配置

内核默认配置打开该模块

内核自定义编译配置

用户可根据实际需求关闭该模块

内核版本差异

设备节点生成

驱动加载成功后生成以下节点:

  1. UART节点

\# ls dev/ttyS*

dev/ttyS0 dev/ttyS1 dev/ttyS3
  1. 电源管理相关节点

\# cat sys/class/rfkill/rfkill0/name

bluetooth

应用程序使用说明

模块供电

注意: 首次系统上电必须echo 1 sys/class/rfkill/rfkill0/state, 否则可能上电不成功**

\# echo 1 > sys/class/rfkill/rfkill0/state

[ 1402.277128] restore_pin_status is not defined

蓝牙uart通路测试

搭建bsa_server

测试程序: bsa_server

步骤:

  1. 进入adb shell

ser@user-HP-Compaq-8200:~$ adb shell
  1. 执行bsa_server,启动服务

\# bsa_server -r 15 -p /lib/firmware/bluetooth/BCM43430A1.hcd -u /var/run/ -d /dev/ttyS0
  • -r指定baudrate为3M*(UART最大支持3M)

  • -p指定蓝牙固件路径

  • -u指定生成bt节点位置

  • -d设备

注: 不能在串口直接执行bsa_server,由于串口太慢,会导致bsa_server无法正常执行;测试需要通过adb shell执行bsa_server。

  1. bsa_server服务成功后,会创建守护进程,产生两个bt节点

\# ls var/run/bt*

var/run/bt-avk-fifo var/run/bt-daemon-socket

蓝牙pcm通路测试

需要搭建蓝牙语音通话环境

基于bsa server开发参考内容

  1. bsa_server开发指南位置

external/bluetooth_demo/BSA_GATT_Guide-v03.pdf

external/bluetooth_demo/BSA_Simple_Guideline-v01.pdf

  1. demo源码目录

external/bluetooth_demo/3rdparty

  1. 快速编译app(详细参考bsa_server开发指南)


    1. 配置交叉编译工具

\# export PATH=prebuilts/toolchains/mips-gcc720-glibc226/bin:$PATH

    1. 进入需要编译的APP的build下,以app_manager为例

\# cd packages/example/App/bluetooth_demo

\# cd 3rdparty/embedded/bsa_examples/linux/app_manager/build

    1. 配置环境

\# export MIPSGCC=mips-linux-gnu-gcc

    1. 编译

\# make CPU=mips clean

\# make CPU=mips

    1. build目录下生成可执行程序

\# ls mips/

app_manager obj/

FAQ

bsa_server 不支持-lpm参数

低功耗模式不支持

常见正常错误打印,不会影响正常使用

3D命令不支持

img_01.jpeg

检查低功耗节点不存在

img_02.jpeg