CH58x三模键盘模组方案测试体验(CH555主控)

发布时间 2023-09-15 11:26:01作者: BLE_Baby

前言:

去年B站稚晖君的瀚文键盘一经推出,给键盘客制化圈子带来了不小的影响。在此之前,键盘客制化一般指外壳、轴体的选择,很少有针对键盘软件功能做新颖的开发。功能性的开发似乎已经进入了瓶颈阶段,来回折腾开发也只是围绕在灯光律动、屏幕等软件功能。稚晖君的瀚文键盘是最基本的有线键盘,然而功能上却异常丰富:灯光/自带屏幕/与上位机通信可调等功能。从终端用户可二次开发这一最基本的概念阐释何为客制化。

笔者在了解了稚晖君的方案后,又实际测试体验了几款高流量的键盘方案,发现软件功能仍然存在很大的问题。最明显的如PWM调光,肉眼可见的屏闪,灯光切换缓慢,以及在不开灯光时1000mAh电池只能使用1~2周。虽然其凭借优秀的外观收获不少的拥趸,但笔者认为,作为客制化键盘最需要打磨的优先是功能性,其他的如外观、铝坨坨、声优轴等都是为功能服务的。带着这样的目的,笔者专门在键盘方案市场寻找了几款方案,都是针对功能性需求开发的,本次也给大家带来其中一款介绍:沁恒CH58x三模模组方案(CH555主控)

原理:

基本功能框架:CH555作为主控完成键扫+灯光等效果;CH582作为无线模块完成无线双模功能(2.4G+BLE)。

CH555作为可二次开发的芯片提供给终端进行二次开发,键扫、灯光、上位机配套均由此芯片完成。

CH582作为模块提供给终端直接进行指令的调配使用。CH582也可以实现键扫和简单灯光的闪烁功能。听原厂工程师说,为了实现2.4G模式上报率达到1Khz,所以CH582只作为无线透传使用,其他功能均放在了主控芯片完成。可以实现2.4G作为电竞需求使用。整体来看,这也符合资源与性能的配置要求。

如需要CH582单芯片实现三模功能,则适当牺牲灯光、上报率等性能,即可实现。

具体指令集参考如下:

CH58x三模模组方案(CH555主控)

灯光效果演示:

本次收到是方案板是半成品,包括软硬件。硬件用开发板搭建,听说原厂硬件已经绘制好了,可以自行打样(然而没有给我打样版本...)。据原厂工程师说这两个板子可以实现键盘的基本功能?

灯光效果专门找了一块CH555作为主控的DEMO板进行演示。

效果图如下:

无线连接:

①BLE连接

接下来使用CH555控制CH582通过串口(预留SPI)实现无线HID控制传输。

CH555通过串口1映射(P1.6/P1.7)(115200),发送控制命令;

CH582通过串口1映射(PB12/PB13)(115200),接收上位机控制命令。通过串口0(PB7)(921600)观察调试结果。

具体接线如下:

CH555 - CH582:P1.6(RXD1_) - PB13;P1.7(TXD_1) - PB12

测试BLE的功能,测试连接和键值A的发送。

发送以下指令:

   /*实际使用时需要判断每一条指令发送后的返回值是否符合标准。
    符合标准则发送下一条指令,否则重新发送上条指令。
    以下仅进行简单功能验证参考。*/
    UART1_SendStr(CMD_reload, (UINT8)sizeof(CMD_reload));    //恢复出厂
	mDelaymS(20);
	UART1_SendStr(CMD_clrpair, (UINT8)sizeof(CMD_clrpair));  //清除配对信息
	mDelaymS(20);
	UART1_SendStr(CMD_free, (UINT8)sizeof(CMD_free));        //模组切换到空闲状态
	mDelaymS(20);
	UART1_SendStr(CMD_ble_1, (UINT8)sizeof(CMD_ble_1));      //模组切换到蓝牙设备1
	mDelaymS(20);
	UART1_SendStr(CMD_pair, (UINT8)sizeof(CMD_pair));        //进入配对模式
	mDelaymS(00);
	UART1_SendStr(CMD_adc, (UINT8)sizeof(CMD_adc));          //模组采集电量,返回电压值
	
	mDelaymS(1000);
	while(1){
		mDelaymS(1000);
		UART1_SendStr(CMD_kbd_bit_a, (UINT8)sizeof(CMD_kbd_bit_a));    //发送全键盘的按键A
		mDelaymS(2);
		UART1_SendStr(CMD_kbd_bit_releas, (UINT8)sizeof(CMD_kbd_bit_releas));    //发送完成后及时释放
	}

使用电脑和手机均可连接并可以接收到数据。

 

②2.4G连接

接下来测试2.4G功能和传输的速度。

传输的指令跟BLE基本类似:

void main(void)
{
	CfgFsys();
	mDelaymS(20);
	mInitSTDIO();                                                             /* 为了让计算机通过串口监控演示过程 */
	CH555UART0Alter();                                                         //串口0引脚映射
	printf("ID=%02X\n", (UINT16)CHIP_ID);
	printf("UART demo start ...\n");
 
	CH555UART1Init();                                                          //串口1初始化
	CH555UART1Alter();                                                         //串口1引脚映射   
 
	UART1_SendStr(CMD_free, (UINT8)sizeof(CMD_free));
	mDelaymS(20);
	UART1_SendStr(CMD_rf, (UINT8)sizeof(CMD_rf));
	mDelaymS(20);
	UART1_SendStr(CMD_adc, (UINT8)sizeof(CMD_adc));
	
	mDelaymS(1000);
	while(1){
		mDelayuS(400);
		UART1_SendStr(CMD_kbd_bit_a, (UINT8)sizeof(CMD_kbd_bit_a));
		mDelayuS(400);
		UART1_SendStr(CMD_kbd_bit_releas, (UINT8)sizeof(CMD_kbd_bit_releas));
		mDelayuS(400);
		UART1_SendStr(CMD_kbd_bit_s, (UINT8)sizeof(CMD_kbd_bit_s));
		mDelayuS(400);
		UART1_SendStr(CMD_kbd_bit_releas, (UINT8)sizeof(CMD_kbd_bit_releas));
	}
	
	while(1){
	};
}

另外拿了一块板子烧录Dongle代码。

烧录后将Dongle后上电即可建立连接(注意主机非睡眠状态,连接的时候保持醒来)。

建立连接后通过2.4G发送数据,每隔400us上传一个键值。键值上传到Dongle后再通过USB传给主机。实测可以达到1KHz的速率。

如下图使用沁恒的USB分析仪抓包可以看到对应的速度。

功耗测试:

功耗测试因为手上只有开发板,无法直接测试,因此直接借用官方的测试结果。

①BLE功耗:

测试项目

测试模式

  广播平均功耗(mA) 工作平均功耗(mA) 快速发键功耗(mA) 长按单键功耗(mA) 低功耗休眠(uA) 深度休眠(uA)

B

L

E

模组1 7.48-7.52 8.12-8.13 8.14-8.18 8.15-8.17 149.12-165.39 6.38-7.42
模组2 7.42-7.43 8.10-8.13 8.22-8.23 8.17-8.18 144.73-166.82 6.53-6.74
模组3 7.44-7.45 8.12-8.13 8.15-8.21 8.16-8.18 150.14-171.63 6.41-6.51

②2.4G功耗:

测试项目

测试模式

2.4G未连接功耗(mA) 2.4G配对阶段功耗(mA) 2.4G连接后正常使用功耗(mA) 快速发键功耗(mA) 长按单键功耗(mA) 低功耗休眠(uA) 深度休眠(uA)

2.4G

模组1 6.92-6.93 17.85-17.86 11.71-11.76 11.42-11.43 11.46-11.51 143.27-144.95 5.57-5.62
模组2 6.91-6.97 17.63-17.88 11.66-11.72 11.47-11.51 11.37-11.47 143.88-144.09 5.46-5.60
模组3 6.91-6.94 17.85-17.87 11.54-11.56 11.47-11.48 11.45-11.48 144.11-145.29 5.32-5.67

总结:

上面对基础功能进行了测试,主要围绕键盘最基本的功能,灯光配置/功耗配置/上报率等,听原厂工程师提到还有上位机工具可以diy键盘的配置功能,接下来进行尝试再测试看看效果。

目前整体的测试效果还是比较满意的,上报率达到1KHz正好符合笔者的电竞需求,配上RGB灯光加持,已经迫不及待看到成品了!