/* ****************************************************************************** * * @file VOX_Module.h * @brief VOL/R module * * * @version 1.0 * @date 2022/07/18 09:59:40 * @author Alex Xu * * Copyright (c) 2013-2099,Tkplusemi Technology Co.,Ltd. * All Rights Reserved * * History: * Revision Date Author Desc * 1.0.0 2022/07/18 Alex build this file ****************************************************************************** */ #ifndef __VOX_MODULE_H__ #define __VOX_MODULE_H__ #include "define.h" extern bit Vox_Vout_Enable; sbit COM_CTRL = P0^2; extern uint8_t Vox_TX_Timer; //VOX发送指令持续时间计数,在Hall_Handler检测中清0. #if VOX_ENABLE /******************************************************************************\ Macro definitions \******************************************************************************/ /* VOX过流档位设置,在系统初始化中(Vox_init())通过配置VOX_CON0, SFRADDR = VOX_CON0; //设置VOX输出500mA,负载识别电流2.5uA。 SFRDATA &= 0xE0; SFRDATA |= (VOX_IOUT_500MA << 3) | VOX_ADT_Cur_2_5UA; */ #define VOX_IOUT_200MA 0x00 #define VOX_IOUT_300MA 0x01 #define VOX_IOUT_400MA 0x02 #define VOX_IOUT_500MA 0x03 #define VOX_ADT_Cur_0_5UA 0x00 #define VOX_ADT_Cur_1_5UA 0x01 #define VOX_ADT_Cur_2_5UA 0x02 #define VOX_ADT_Cur_3_5UA 0x03 #define VOX_ADT_Cur_4_5UA 0x04 #define VOX_ADT_Cur_5_5UA 0x05 #define VOX_ADT_Cur_6_5UA 0x06 #define VOX_ADT_Cur_7_5UA 0x07 #define HEADER 0x050A //VOX通讯数据包头 #define BOXHEADER 0x5A //VOX通讯仓->耳机数据包头 #define BESHEADER 0xA5 //VOX通讯耳机->仓数据包头 #define TIM_SHUTDOWN_DEBOUNCE 600 //关机前debounce时间 /******************************************************************************\ Variables definitions \******************************************************************************/ /*耳机通道选择*/ typedef enum { VOL_CHAN = 0, VOR_CHAN, VOX_BOTH, }e_Vox_Chan; #if 1 /*耳机配对状态*/ typedef enum { VOX_PAIR_NONE = 0, //无效 VOX_PAIR_ING, //配对中 VOX_PAIR_OK, //配对完成 VOX_PAIR_KEEP, //不处理,保持当前状态 }e_Vox_Pairing_State; /*耳机配对记录*/ typedef enum { VOX_PAIRED_NONE = 0, //无配对过 VOX_PAIRED_OK, //有配对记录 }e_Vox_Paired_State; #endif /*耳机和充电仓进行双向通讯的协议命令ID。*/ typedef enum _VOX_BES_COMMAND_E { CMD_BOX_OPEN = 0x00, //开盖指令返回 CMD_BOX_CLOSE = 0x01, //关盖指令返回 CMD_SHUT_DOWN = 0x03, //关机 CMD_BES_PAIRING = 0x04, //耳机配对 //CMD_BES_CLEAN = 0x05, //双耳清除记录 //CMD_BES_HEARTBEAT = 0x07, //心跳包 // CMD_OTA = 0x09, BES_RESET, }VOX_BES_COMMAND_E; #if 0 /*VOX和耳机通讯指令ID*/ typedef enum { OPEN_COVER = 0x00, CLOSE_COVER, BES_RESET, SHUT_DOWN } VOX_Comm_ID_e; #endif /* VOL Enable Type */ typedef enum { VOX_VOUT_Mode = 0x00, //VOx 5V 输出使能 VOX_ADT_Mode, //VOx 负载接入、存在识别功能使能,负载自动识别 } VOX_Enable_Mode_e; extern uint16_t Boost_Open_Atleast_Tim_Cnt; extern uint8_t Vox_Pairing_State[2]; //耳机配对状态,VOL:低4bit;VOR:高4bit。0是无效,1是正在配对,2是配对成功,3不处理,保持当前状态。 extern bit Cover_Open_Flag; //extern uint8_t Box_To_Bes_Comm_Debounce; /******************************************************************************\ UserCfg.Functions definitions \******************************************************************************/ extern void HandleTxCommand(VOX_BES_COMMAND_E TxCommand, e_Vox_Chan nVox_Chn_Select); extern void Vox_Det_Machine(void); #ifdef VOX_RX extern void HandleVoxCommMsg(void); #endif #endif #endif