Solution: Highspeed Multimode HID Module¶
重要
此例程仅存在于特殊版本的SDK中,如有需要请联系Panchip。
1 功能概述¶
此sample为pan108xxa/b5(64pin)
与pan108xxa/b1(32pin)
模组配合实现spi消息通信控制2.4G及BLE无线HID透传模组应用
2.4G模式并且需要配合hs_mult_common_dongle
使用,蓝牙模式默认133HZ(7.5ms interval)
2 环境要求¶
board:
pan108xxa/b5(64pin)(用作主控模块demo)
+pan108xxa/b1(32pin)(用作从机模块demo)
+hs_mult_common_dongle
UART连接:
波特率 921600 底板上P00(uart0 tx) P01(uart0 rx)跳帽连接后接线连接
主机端 UART RX同时具有透传数据测试功能
SPI连接:
主机端:P41 CS P40 CLK P30 MOSI P31 MISO
从机端:P02 CS P03 CLK P30 MOSI P31 MISO
USB连接:
SPI主机端 P02DM P03DP 跳帽连接后接线连接
ADC采样测试:从机ADC跳线连接P10,可以
0~1.2V
或者0~VDD
档位采集旋钮ADC电压变化USB升级工具:
量产烧录工具\Panchip DFU Tool
(app dfu使用1.0.2版本加载merged.bin,先升级controller再升级app)EMI测试工具:
键鼠专用工具\PAN108x工具\PAN108xMouseRFTool
USB配置工具及自定义开发消息工具:
键鼠专用工具\PAN108x工具\MouseDeviceTool
高速鼠标测试工具:
05_TOOLS\键鼠专用工具\第三方工具\鼠标测试工具\Polling Rate Tester App_v1.02.00.exe
串口测试协议命令:
05_TOOLS\串口通信工具\sscom_spi_hid_module_master
3 编译和烧录¶
例程位置:
zephyr\samples_panchip\solutions_hid\hs_mult_hid_module_master
zephyr\samples_panchip\solutions\hs_mult_hid_module
zephyr\samples_panchip\solutions\hs_mult_common_dongle
TOOL\键鼠专用工具\第三方工具\..
使用 ZAL 工具可以对其进行编译、烧录、打开 VS Code 调试等操作。关于 ZAL 工具的详细介绍请参考:Zephyr APP Launcher 工具介绍。
4 演示说明¶
按如下方式连接透传模组master & slave

spi连线¶
打开
05_TOOLS\串口通信工具\sscom_spi_hid_module_master
下sscom,用来查看log及发送测试及控制消息

uart控制消息¶
芯片全部擦除还原默认状态,准备好烧录
hs_mult_common_dongle
的接收器参考开发说明中内容进行通信及透传测试,可以测试的内容如下
2.4G模式及BLE 3设备模式切换
2.4G上电后进入配对模式,会先收取到模组状态 pairing status,复位dongle配对成功后上报状态并进入心跳连接包状态,此时拔掉dongle也会上报断连状态;串口测试模式配置后,可以进入鼠标4k上报率测试,上报率加倍测试,空包快速交互状态测试(用来收取dongle回传的最大32B数据),自定义发送vendor消息透传测试,重新配对测试
BLE模式下可以进行配对,重新配对,上报133hz鼠标数据测试
蓝牙2.4G可以进行睡眠测试
2.4G透传32B借助bushound连接dongle进行测试

2.4G Vendor测试¶
BLE透传32B借助NRF dongle绑定进行测试

BLE Vendor测试¶
5 开发说明¶
5.1 模组通讯说明¶
模组基于IO控制SPI通信,主机端发送数据具有数据校验编码,从机端数据校验解析,根据数据正确传输与否回复ERR/FULL/ACK
主机连接的LOG UART Rx同时具有测试命令及透传测试功能,主机连接的USB可以用来做上位机通信协议测试
5.1.1 SPI通讯¶
当需要模组接收数据时,MCU 应将 IRQ 引脚(P20)拉低,模组接收数据结束后 MCU 应将IRO 引脚(P20)拉高;
同理,当模组需要发送数据时,模组会将 INT 引脚(PB21)拉低,模组发送结束后会将 INT 引脚(PB21)拉高。
5.1.2 数据校验¶
以下的UART透传测试或者USB上位机测试都具有SPI format功能,对数据进行以下格式编码,在从机端进行数据解码校验
格式为CMD + LEN + DATA[n] + 0A(截止)
主机端会补充0x55及计算校验,补充至首尾字节,校验规则如下
Checksum = (0x55 + CMD + LEN + DATA[n] )& 0xFF
传输后从机进行校验,数据出错返回CMD 0x28;
buffer满塞数据未成功需要重传返回 CMD 0x27;
预留但未开启数据正确收到后的回复 CMD 0x29
5.1.3 UART 测试¶
为方便调试,uart与master通信可以直接控制几种测试状态,特殊的消息控制如下,需要注意串口命令需要以0x0a 作为截止
cmd |
opcpde |
data |
---|---|---|
spi进入4000hz发送鼠标自动画圈数据 |
0x51 |
0x01 0F A0 0A |
spi进入1000hz发送鼠标自动画圈数据 |
0x51 |
0x01 03 E8 0A |
spi进入133hz发送鼠标自动画圈数据 |
0x51 |
0x01 00 85 0A |
spi停止发送数据 |
0x51 |
0x00 0A |
master拉低IO2ms唤醒slave |
0x53 |
0A |
5.1.4 主机连接USB上位机¶
模组USB升级(DFU) 模组USB测试RF(EMI)基于Panchip 上位机,通信基于普通端点report ID 0x0a
进行64B数据通信及透传
基于协议参考panchip_usb_protocol
进行模组USB升级前需要将SPI模组切换到IDLE模式
模组进行APP DFU,具有备份区,优点在于BOOT进行验签名搬运,BOOT中非必要映射SPI引脚
DFU工具选择V1.0.2加载merged.bin依次升级controller,app区域
进行模组USB测试RF前需要将SPI模组切换到EMI模式,频点 PHY 功率可以灵活配置测试,可以进行蓝牙/2.4G模式 单载波,跳频,收发对测等功能
5.2 SPI协议¶
协议部分如有需要请联系Panchip。
5.3 注意事项¶
SPI传输稳定性需要考虑,接线不能太长,48M HCLK下SPI6分频目前比较稳定,传输速度1B/2us
2.4G Vendor消息通信普通端点report id 0x06 ;2.4G上位机消息通信普通端点report id 0x0a
主机端可根据err full ack状态补发或者重传
6 补充说明¶
6.1 功耗说明¶
默认功率
7db
2.4G
250us延时持续上报:10mA以内
1000us延时持续上报:5mA左右
8ms延时持续上报:mA级别
idle状态:1mA以内,wfi状态
BLE
7.5ms连接状态:5mA以内
120ms连接状态:1mA以内
休眠状态
2.4G deepsleep或者BLE standby功耗 10uA级别
6.2 蓝牙启动时间说明¶
2.4G和蓝牙启动需要对controller进行初始化,controller初始化时间可以由log观测,测试启动时间为60ms+
6.3 RF距离测试¶
以模组鼠标自动画圈测试为例,稳定距离10m+
7 RAM/Flash资源使用情况¶
SPI 模组 FLASH部分包含蓝牙controller固定资源120K,不包含初始位置开始的60K MCUBOOT程序,FLASH资源由于具有备份区,限制flash大小152K
默认开启了调试log(flash占用11K左右),并且需要CONFIG_SPEED_OPTIMIZATIONS=y
及中断ramfunc处理,会消耗一定资源
Memory region |
Used Size |
Region Size |
%age Used |
---|---|---|---|
FLASH |
135136 B |
152 KB |
86.82% |
SRAM |
41432 B |
54 KB |
74.93% |