前言¶
本文描述SP31的air mouse sample的使用指南,包括基于sample编译版本、sample使用步骤,以及sample中SLE和SLP工作的流程。
示例代码路径:application/samples/products/air_mouse
本文档主要适用于以下工程师:
技术支持工程师
软件开发工程师
开源版本¶
开源版本支持SLP基础功能,示例代码中包含了SLP测距、SLP测角、SLP CIR上报、USB等功能的实现,可供开发人员参考。下文以生态三天线板指向单板作为参考示例。
编译步骤¶
需编译RCU和Dongle两个版本,单板类型默认使用三天线单板,使用SDK搭配SLP固件进行编译,SDK由BS2X提供,以下章节主要介绍配置项的修改。
Initiator编译¶
说明: SDK中已经包含配套的SLP固件,位于middleware\services\srv_tiot_host\tiot_driver\product_porting\air_mouse\firmware目录下,若非版本升级则不需要更新,下文的“1”是固件更新的操作流程,可跳过。
更新SLP固件(SDK中自带版本,无更新时可跳过该步骤)。在SDK的interim_binary\bs21e\bin目录下,新建slp\firmware目录,将SP31的版本文件夹中的“file_array”和“file_array_ota”放入“interim_binary\bs21e\bin\slp\firmware”目录下。
打开Visual Studio Code工具,根据BS2X的版本文档,导入SDK工程。
打开KConfig,开启LDO模式,如图2所示。
将AIR MOUSE type设置为Enable AIR MOUSE sample,如图3所示。
将Select AIR MOUSE board设置为Open Source Board,如图4所示。
若需要打印CIR,可开启Open Cir print模式,如图5所示。注意:打开可能引起串口资源不足,导致卡死,建议按需打开。
修改sample用例Usage,设置为ranging aox模式,如图6所示。
修改天线排列选型,设置为three ant mode(L)型,如图7所示。
修改UART管脚配置,H0TX=26,H0RX=27,H0CTS=28,H0RTS=29,如图8所示。
修改SLE protocol配置,选择“sle measure peripheral”,如图9所示。
单击Rebuild,进行版本编译,编译成功后的版本路径:tools\pkg\fwpkg\bs21e,版本文件名称:bs21e_all.fwpkg。
Responder编译¶
更新SLP固件(SDK中自带版本,无更新时可跳过该步骤)。在SDK的interim_binary\bs21e\bin目录下,新建SLP\firmware目录,将SP31的版本文件夹中的“file_array”和“file_array_ota”放入“interim_binary\bs21e\bin\slp\firmware”目录下。
打开Visual Studio Code工具,根据BS2X的版本文档,导入SDK工程。
打开KConfig,开启LDO模式,如图2所示。
打开KConfig,将AIR MOUSE type改为 Enable AIR MOUSE Dongle sample,如图3所示。
将Select AIR MOUSE board设置为Open Source Board,如图4所示。
若需要打印CIR,可开启Open Cir print模式,如图5所示。
修改sample用例Usage,设置为ranging aox模式,如图6所示
修改天线排列选型,设置为three ant mode(L)型,如图7所示
修改UART管脚配置,H0TX=26,H0RX=27,H0CTS=28,H0RTS=29,如图8所示。
修改SLE protocol配置,选择“sle measure central”,如图9所示。
单击Rebuild,进行版本编译,编译成功后的版本路径:tools\pkg\fwpkg\bs21e,版本文件名称:bs21e_all.fwpkg。
使用方法¶
Initiator侧和Responder侧各自烧录对应版本。
Initiator侧和Responder侧重新上电。Initiator侧上电后SLE启动广播。Responder侧通过USB连接主机设备,上电后SLE启动扫描、USB初始化和枚举设备等操作,主机设备会识别到HID设备。
等待SLE建链。
待SLE连接配对成功后,两端会自动加载SLP固件,加载成功后会上报SLP版本号信息(可检查版本是否正确),之后会自动启动SLP业务,若业务流程正常则在Responder侧的串口日志中周期性打印测距、测角等上报信息,主机屏幕上会显示光标。两端日志如下图所示,启动流程可参考“启动流程”。
若开启了CIR功能,则在USB串口中打印CIR数据。
启动流程¶
可用功能¶
虚拟串口¶
USB类型默认设置为DEV_SER_HID(HID和虚拟串口设备),将单板通过USB线连接主机后,主机端会识别到一个串口设备和HID设备(见下图),其中HID设备用来显示光标,串口设备可收发数据,进行发送CIR数据或接收产测命令等操作。
CIR上报功能¶
须知: 该功能占用资源较多,仅部分版本支持。
示例中的Sample代码已实现CIR上报功能,可参考编译步骤章节进行配置,设备建链后会在USB串口中打印CIR数据。示例代码中相关函数如下表所示。
AT命令¶
SLP AT命令汇总表如下。
SLP上电加载¶
SLP下电¶
SLP睡眠¶
SLP启动测距¶
SLP停止测距¶
SLP暂停测距¶
SLP继续测距¶
SLP写入测角校准值¶
SLP读取测角校准值¶
SLP写入TX发射功率码字¶
|
|
SLP读取TX发射功率码字¶
SLP写入板级和天线时延校准值¶
SLP读取板级和天线时延校准值¶
SLP开启IMU检测¶
SLP读取GYRO零偏值¶
SLP设置射频前端配置参数¶
SLP设置光标灵敏度¶
SLP设置产测模式¶
SLP读取版本信息¶
SLP设置坐标转换参数¶
SLP设置安装参数¶
SLP设置按键状态¶
SLP读取温度值¶
SLP设置日志打印级别¶
|
|
SLP关闭IMU检测¶
SLP设置IMU原始数据上报频率¶
l <freq>:imu原始数据上报频率,单位:赫兹,取值范围:1,2,3,4,5,6,8,10,12,15,16,20,24,30,40,48,60,80,120 |
|
SLP设置光标校正模式¶
SLP读取芯片DIE ID¶
|
RCU侧整机睡眠¶
RCU侧SLE主动断连关广播但不清除配对记录¶
RCU侧开启广播¶
Dongle侧切换指向光标速度并更新日志打印标志位¶
SLP读取三天线校准参数¶
SLP写入三天线校准参数¶
Dongle侧读取屏幕尺寸参数¶
Dongle侧设置预设屏幕尺寸参数¶
Dongle侧设置自定义屏幕尺寸参数¶
Dongle侧读取坐标上报速率¶
Dongle侧设置坐标上报速率¶
AT命令使用说明¶
RCU¶
如果修改sample代码,使sample不自动加载SLP(注释掉sample中sle_air_mouse_server.c中调用的SLP上电接口SlpPowerOnCommand和启动测距接口SlpStartRangingCommand)。还可以通过AT命令控制:
加载SLP,发AT命令:AT+SLPPOWERON。
待RCU和Dongle连接成功后,发AT命令:AT+SLPSTARTRANGING=1,1,1,0,0,20,0,0xA54A,0x254A。
SLP睡眠,则发AT命令:AT+SLPSLEEP。如果需要唤醒,则重新发命令:AT+SLPSTARTRANGING=1,1,1,0,0,20,0,0xA54A,0x254A。
SLP下电,则发AT命令:AT+SLPPOWEROFF。
SLP停止测距,则发AT命令:AT+SLPSTOPRANGING,Dongle侧同步停止测距。
SLP暂停测距,则发AT命令:AT+SLPPAUSERANGING,Dongle侧同步暂停测距。
SLP继续测距,则发AT命令:AT+SLPCONTINUERANGING,Dongle侧同步继续测距。
Dongle¶
如果修改sample代码,使sample不自动加载SLP(注释掉sample中sle_air_mouse_client.c中调用的SLP上电接口SlpPowerOnCommand)。还可以通过AT命令控制:
加载SLP,发AT命令:AT+SLPPOWERON。
SLP睡眠,则发AT命令:AT+SLPSLEEP。唤醒由RCU端控制。
SLP下电,则发AT命令:AT+SLPPOWEROFF。






















