要使用 HCI 接口(如 hcitool)操作 AIROC CYW20721 蓝牙控制器,需通过 Linux 的 HCI 协议发送指令。以下是详细步骤:
1. 确认设备识别
2. 基本操作命令
启动/关闭控制器
sudo hciconfig hci0 up # 启动
sudo hciconfig hci0 down # 关闭
扫描设备
- 经典蓝牙扫描:
hcitool scan
- 低功耗蓝牙(BLE)扫描:
hcitool lescan
查询信息
hcitool info [目标MAC] # 查看设备信息
hcitool dev # 列出本地适配器
3. 发送自定义 HCI 命令
通过 hcitool cmd 发送原始指令,格式:
hcitool cmd [OGF] [OCF] [参数1] [参数2] ...
- OGF:操作组字段(Opcode Group Field),高6位。
- OCF:操作命令字段(Opcode Command Field),低10位。
- 参数:十六进制值(空格分隔)。
示例命令
复位控制器(OGF=0x03, OCF=0x0003):
hcitool cmd 0x03 0x0003
读芯片版本(OGF=0x04, OCF=0x0001):
hcitool cmd 0x04 0x0001
设置 BLE 广播参数(OGF=0x08, OCF=0x0006):
hcitool cmd 0x08 0x0006 40 00 40 00 03 00 00 00 00 00 00 00 00 07 00
4. 厂商特定命令 (Cypress/Infineon)
CYW20721 需通过 Vendor-Specific Commands 配置高级功能:
- OGF:固定为
0x3F(厂商专用)。
- OCF:参考芯片手册(如配置节能模式、RF参数等)。
示例(伪代码,需替换实际 OCF):
# 设置发射功率
hcitool cmd 0x3F 0x0XXX 0xXX ...
# 进入低功耗模式
hcitool cmd 0x3F 0x0YYY ...
注意:
具体命令参数需查阅 CYW20721 编程指南或 HCI Vendor Command 文档(联系 Infineon/Cypress 获取)。
5. 调试与监控
- 使用
hcidump 捕获 HCI 数据:
sudo hcidump -i hci0 -X
- 查看内核日志:
dmesg | grep Bluetooth
常见问题
权限不足
使用 sudo 或将用户加入 bluetooth 组。
设备未识别
- 检查 USB/UART 驱动(如
brcmfmac)。
- 确认固件已加载(部分模块需初始化固件)。
hcitool 已弃用
在较新系统(如 Ubuntu 18.04+)中,hcitool 被标记为弃用。替代方案:
- 使用
bluetoothctl(交互式命令行)。
- 用 Python 库(如
bluepy、PyBluez)编程操作 HCI Socket。
替代工具:bluetoothctl
bluetoothctl
[bluetooth]# list-controllers # 列出控制器
[bluetooth]# show C0:XX:XX:XX:XX # 查看详细信息
[bluetooth]# scan on # 扫描设备
通过以上步骤,可完成对 CYW20721 的基础控制和深度配置。关键操作依赖厂商提供的 HCI 命令手册,建议优先获取芯片文档。
要使用 HCI 接口(如 hcitool)操作 AIROC CYW20721 蓝牙控制器,需通过 Linux 的 HCI 协议发送指令。以下是详细步骤:
1. 确认设备识别
2. 基本操作命令
启动/关闭控制器
sudo hciconfig hci0 up # 启动
sudo hciconfig hci0 down # 关闭
扫描设备
- 经典蓝牙扫描:
hcitool scan
- 低功耗蓝牙(BLE)扫描:
hcitool lescan
查询信息
hcitool info [目标MAC] # 查看设备信息
hcitool dev # 列出本地适配器
3. 发送自定义 HCI 命令
通过 hcitool cmd 发送原始指令,格式:
hcitool cmd [OGF] [OCF] [参数1] [参数2] ...
- OGF:操作组字段(Opcode Group Field),高6位。
- OCF:操作命令字段(Opcode Command Field),低10位。
- 参数:十六进制值(空格分隔)。
示例命令
复位控制器(OGF=0x03, OCF=0x0003):
hcitool cmd 0x03 0x0003
读芯片版本(OGF=0x04, OCF=0x0001):
hcitool cmd 0x04 0x0001
设置 BLE 广播参数(OGF=0x08, OCF=0x0006):
hcitool cmd 0x08 0x0006 40 00 40 00 03 00 00 00 00 00 00 00 00 07 00
4. 厂商特定命令 (Cypress/Infineon)
CYW20721 需通过 Vendor-Specific Commands 配置高级功能:
- OGF:固定为
0x3F(厂商专用)。
- OCF:参考芯片手册(如配置节能模式、RF参数等)。
示例(伪代码,需替换实际 OCF):
# 设置发射功率
hcitool cmd 0x3F 0x0XXX 0xXX ...
# 进入低功耗模式
hcitool cmd 0x3F 0x0YYY ...
注意:
具体命令参数需查阅 CYW20721 编程指南或 HCI Vendor Command 文档(联系 Infineon/Cypress 获取)。
5. 调试与监控
- 使用
hcidump 捕获 HCI 数据:
sudo hcidump -i hci0 -X
- 查看内核日志:
dmesg | grep Bluetooth
常见问题
权限不足
使用 sudo 或将用户加入 bluetooth 组。
设备未识别
- 检查 USB/UART 驱动(如
brcmfmac)。
- 确认固件已加载(部分模块需初始化固件)。
hcitool 已弃用
在较新系统(如 Ubuntu 18.04+)中,hcitool 被标记为弃用。替代方案:
- 使用
bluetoothctl(交互式命令行)。
- 用 Python 库(如
bluepy、PyBluez)编程操作 HCI Socket。
替代工具:bluetoothctl
bluetoothctl
[bluetooth]# list-controllers # 列出控制器
[bluetooth]# show C0:XX:XX:XX:XX # 查看详细信息
[bluetooth]# scan on # 扫描设备
通过以上步骤,可完成对 CYW20721 的基础控制和深度配置。关键操作依赖厂商提供的 HCI 命令手册,建议优先获取芯片文档。
举报