当前文档版本为 v1.2.1,您可以访问当前页面的 开发中 版本以获取最近可能的更新。

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 演示说明

  1. 按如下方式连接透传模组master & slave

image

spi连线

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

image

uart控制消息

  1. 芯片全部擦除还原默认状态,准备好烧录hs_mult_common_dongle的接收器

  2. 参考开发说明中内容进行通信及透传测试,可以测试的内容如下

    • 2.4G模式及BLE 3设备模式切换

    • 2.4G上电后进入配对模式,会先收取到模组状态 pairing status,复位dongle配对成功后上报状态并进入心跳连接包状态,此时拔掉dongle也会上报断连状态;串口测试模式配置后,可以进入鼠标4k上报率测试,上报率加倍测试,空包快速交互状态测试(用来收取dongle回传的最大32B数据),自定义发送vendor消息透传测试,重新配对测试

    • BLE模式下可以进行配对,重新配对,上报133hz鼠标数据测试

    • 蓝牙2.4G可以进行睡眠测试

  3. 2.4G透传32B借助bushound连接dongle进行测试

image

2.4G Vendor测试

  1. BLE透传32B借助NRF dongle绑定进行测试

image

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+

6.4 RF转换时间说明

增强型模式下,2.4G收发完成自动转换,使用最快时序;

主机端tx转rx时间:23us

接收器端rx转tx时间:31us

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%