2.3.3. 单模鼠标
标准的蓝牙鼠标,支持蓝牙 CLASSIC,蓝牙 BLE 和 2.4G 模式。
蓝牙鼠标支持 windows 系统,mac 系统、安卓系统、ios 系统连接。
支持的板级:br25、bd19 支持的芯片:AC6363F、AC6369F
2.3.3.1. 单模鼠标case使用
使用快捷键Alt + g 打开app_config.h,配置CONFIG_APP_MOUSE_SINGLE使能
//app case 选择,只选1,要配置对应的board_config.h #define CONFIG_APP_MOUSE_SINGLE 1//自拍器, board_ac6328a,board_6328
使用快捷键Alt + g 打开board_config.h,板级选择CONFIG_BOARD_AC6321A_MOUSE
//#define CONFIG_BOARD_AC632N_DEMO // CONFIG_APP_KEYBOARD,CONFIG_APP_PAGE_TURNER #define CONFIG_BOARD_AC6321A_MOUSE // CONFIG_APP_MOUSE // #define CONFIG_BOARD_AC6328A_KEYFOB // CONFIG_APP_KEYFOB
按照 :HID DEMO说明 编译下载代码、接线(接线参考下列)、复位设备,再使用手机搜索设备进行连接。
KEY: key接线需要打开”board_ac6321a_mouse_cfg.h”查看IO key接线。
#define MOUSE_KEY_SCAN_MODE ENABLE_THIS_MOUDLE #define TCFG_IOKEY_ENABLE ENABLE_THIS_MOUDLE //是否使能IO按键 #define TCFG_IOKEY_POWER_CONNECT_WAY ONE_PORT_TO_LOW //按键一端接低电平一端接IO #define TCFG_IOKEY_MOUSE_LK_PORT IO_PORTA_01 //鼠标左键 #define TCFG_IOKEY_MOUSE_RK_PORT IO_PORTA_02 //鼠标右键 #define TCFG_IOKEY_MOUSE_HK_PORT IO_PORTA_00 //鼠标中键 #define TCFG_IOKEY_MOUSE_MK_IN_PORT NO_CONFIG_PORT //未使用 #define TCFG_IOKEY_MOUSE_MK_OUT_PORT NO_CONFIG_PORT //未使用
code switch: 打开”board_ac6321a_mouse_cfg.h”查看编码开关接线
//*********************************************************************************// // code switch配置 // //*********************************************************************************// #define TCFG_CODE_SWITCH_ENABLE ENABLE_THIS_MOUDLE #define TCFG_CODE_SWITCH_A_PHASE_PORT IO_PORTB_04 #define TCFG_CODE_SWITCH_B_PHASE_PORT IO_PORTB_05
optical mouse sensor: 打开”board_ac6321a_mouse_cfg.h”查看鼠标位移传感器接线
//*********************************************************************************// // optical mouse sensor配置 // //*********************************************************************************// #define TCFG_OMSENSOR_ENABLE ENABLE_THIS_MOUDLE #define TCFG_HAL3205_EN TCFG_OMSENSOR_ENABLE //同时配置OMSensor_config.h中的配置项 // #define TCFG_HAL3212_EN TCFG_OMSENSOR_ENABLE #define TCFG_OPTICAL_SENSOR_SCLK_PORT IO_PORTA_07 #define TCFG_OPTICAL_SENSOR_DATA_PORT IO_PORTA_08 #define TCFG_OPTICAL_SENSOR_INT_PORT IO_PORTB_06 #define OPTICAL_SENSOR_SAMPLE_PERIOD 6 //ms
开发者可以准备好相应硬件并进行连接进行调试。
2.3.3.2. 主要代码说明
模式选择:配置 BLE 或 2.4G 模式;若选择 2.4G 配对码必须跟对方的配对码一致(app_mouse.c)
//2.4G模式: 0---ble, 非0---2.4G配对码 #define CFG_RF_24G_CODE_ID (0) //<=24bits /* #define CFG_RF_24G_CODE_ID (0x23) //<=24bits */
支持双模 HID 设备切换处理(app_mouse.c)
static void mouse_select_btmode(u8 mode) { if (mode != HID_MODE_INIT) { if (bt_hid_mode == mode) { return; } bt_hid_mode = mode; } else { //init start } log_info("###### %s: %d,%d\n", __FUNCTION__, mode, bt_hid_mode); if (bt_hid_mode == HID_MODE_BLE) { //ble log_info("---------app select ble--------\n");
支持进入省电低功耗 Sleep(board_ac6321a_mouse_cfg.h)
//*********************************************************************************// // 低功耗配置 // //*********************************************************************************// #define TCFG_LOWPOWER_POWER_SEL PWR_DCDC15 // #define TCFG_LOWPOWER_POWER_SEL PWR_LDO15 //电源模式设置,可选DCDC和LDO #define TCFG_LOWPOWER_BTOSC_DISABLE 0 //低功耗模式下BTOSC是否保持 #define TCFG_LOWPOWER_LOWPOWER_SEL SLEEP_EN //SNIFF状态下芯片是否进入powerdown /*强VDDIO等级配置,可选: VDDIOM_VOL_20V VDDIOM_VOL_22V VDDIOM_VOL_24V VDDIOM_VOL_26V VDDIOM_VOL_30V VDDIOM_VOL_30V VDDIOM_VOL_32V VDDIOM_VOL_36V*/ #define TCFG_LOWPOWER_VDDIOM_LEVEL VDDIOM_VOL_30V /*弱VDDIO等级配置,可选: VDDIOW_VOL_21V VDDIOW_VOL_24V VDDIOW_VOL_28V VDDIOW_VOL_32V*/ #define TCFG_LOWPOWER_VDDIOW_LEVEL VDDIOW_VOL_28V //弱VDDIO等级配置 #define TCFG_LOWPOWER_OSC_TYPE OSC_TYPE_LRC #define TCFG_VD13_CAP_EN 1
支持进入软关机,可用 IO 触发唤醒(board_ac6321a_mouse.c)
struct port_wakeup port0 = { .pullup_down_enable = ENABLE, //配置I/O 内部上下拉是否使能 .edge = FALLING_EDGE, //唤醒方式选择,可选:上升沿\下降沿 .both_edge = 0, .filter = 0, .iomap = TCFG_CODE_SWITCH_A_PHASE_PORT, //唤醒口选择 }; void board_set_soft_poweroff(void) { u32 porta_value = 0xffff; u32 portb_value = 0xffff; u32 portc_value = 0xffff; #if TCFG_OMSENSOR_ENABLE optical_mouse_sensor_led_switch(0); #endif gSensor_wkupup_disable(); log_info("%s",__FUNCTION__);
系统事件处理函数(app_mouse.c)
static int event_handler(struct application *app, struct sys_event *event)
蓝牙事件处理函数(app_mouse.c)
static int bt_hci_event_handler(struct bt_event *bt)
增加配对绑定管理(app_mouse.c)
//使能开配对管理,BLE & 2.4g 鼠标只绑定1个主机,可自己修改按键方式 #define DOUBLE_KEY_HOLD_PAIR (0 & CFG_RF_24G_CODE_ID) //中键+右键 长按数秒,进入2.4G配对模式 #define DOUBLE_KEY_HOLD_CNT (4) //长按中键计算次数 >= 4s
2.3.3.3. 蓝牙鼠标case功耗
所用光学传感器资料
测试条件
ble连接状态下Interval:6*1.25 ms = 7.5ms,lantency:100;
Radio TX: 7.2 dBm
DCDC;VDDIOM 3.0V;VDDIOW 2.4V
VDDIO和VBAT短接
芯片功耗
/
/
无操作
软关机
2.1V
最大电流
1.338mA
1uA
2.1V
平均电流
139uA
1uA
2.1V
最小电流
30uA
1uA
2.6V
最大电流
852uA
2uA
2.6V
平均电流
110uA
2uA
2.6V
最小电流
33uA
1uA
3.0V
最大电流
965uA
2uA
3.0V
平均电流
110uA
2uA
3.0V
最小电流
33uA
2uA
3.3V
最大电流
813uA
3uA
3.3V
平均电流
113uA
3uA
3.3V
最小电流
35uA
1uA
整机功耗
/
/
sleep1(无操作256毫秒后)
sleep2(无操作20.48秒后)
软关机
2.1V
最大电流
2.894mA
1.253mA
65uA
2.1V
平均电流
230uA
140uA
12uA
2.1V
最小电流
95uA
29uA
1uA
2.6V
最大电流
1.008mA
1.062mA
63u
2.6V
平均电流
193uA
125uA
13u
2.6V
最小电流
111uA
31uA
3uA
3.0V
最大电流
864uA
864uA
55uA
3.0V
平均电流
190uA
120uA
13uA
3.0V
最小电流
109uA
37uA
6uA
3.3V
最大电流
858uA
783uA
53uA
3.3V
平均电流
185uA
139uA
14uA
3.3V
最小电流
114uA
39uA
7uA