BT蓝牙
模块简介
AP6256芯片
x2000使用的是AP6256芯片,AP6256是基于BCM4345C5方案的集成wifi和bluetooth的功能模块。
• bluetooth模块支持HCI UART接口、音频数据的PCM接口。
• bluetooth符合蓝牙标准规范5.0
1.2.GPIO功能描述
bluetooth模块
| Name | I/O | Description |
| 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 |
| PCM_OUT | O | PCMDataoutput |
| PCM_CLK | I/O | PCMclock |
| PCM_IN | I | PCMdatainput |
| PCM_SYNC | I/O | PCMsyncsignal |
驱动源码位置
驱动源码所在位置:
kernel/module_drivers/drivers/misc/
├──bt_power_bluesleep.c
设备树配置
设备树默认配置
在板级设备树halley5_v30.dts中,进行如下默认配置:
1. 为蓝牙配置uart
1. 配置电源管理相关gpio
设备树自定义配置
用户可根据实际需求关闭相关配置。
内核编译配置
内核配置BCM_4345C5_RFKILL,配置说明如下:
内核默认编译配置
内核默认配置打开该模块
内核自定义编译配置
用户可根据实际需求关闭该模块
内核模块差异
设备节点生成
驱动加载成功后生成以下节点:
1. UART节点
2. 电源管理相关节点
应用程序使用说明
模块供电
注意: 首次系统上电必须echo 1 sys/class/rfkill/rfkill0/state, 否则可能上电不成功**
通过串口获取蓝牙模块ID
• 测试程序: bcm_test
• 确保bluetooth供电
• 确保UART接口和蓝牙模块通信正常
蓝牙uart通路测试
搭建bsa_server
测试程序: bsa_server
步骤:
1. 进入adb shell
2. 执行bsa_server,启动服务
• -r指定baudrate为3M*(UART最大支持3M)
• -p指定蓝牙固件路径
• -u指定生成bt节点位置
• -d设备
注: 不能在串口直接执行bsa_server,由于串口太慢,会导致bsa_server无法正常执行;测试需要通过adb shell执行bsa_server。
3. bsa_server服务成功后,会创建守护进程,产生两个bt节点
蓝牙pcm通路测试
需要搭建蓝牙语音通话环境
基于bsa server开发参考内容
1. bsa_server开发指南位置
external/bluetooth_demo/BSA_GATT_Guide-v03.pdf
external/bluetooth_demo/BSA_Simple_Guideline-v01.pdf
2. demo源码目录
external/bluetooth_demo/3rdparty
3. 快速编译app(详细参考bsa_server开发指南)
•
1. 配置交叉编译工具
•
2. 进入需要编译的APP的build下,以app_manager为例
•
3. 配置环境
•
4. 编译
•
5. build目录下生成可执行程序
FAQ
bsa_server 不支持-lpm参数
低功耗模式不支持
常见正常错误打印,不会影响正常使用
3D命令不支持

检查低功耗节点不存在
