config.h 49 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693
  1. /*****************************************************************************
  2. * Module : Config
  3. * File : config.h
  4. * Function : SDK配置文件
  5. *****************************************************************************/
  6. #ifndef USER_CONFIG_H
  7. #define USER_CONFIG_H
  8. #include "config_define.h"
  9. /*****************************************************************************
  10. * Module : Function选择相关配置
  11. *****************************************************************************/
  12. #define FUNC_MUSIC_EN 1 //是否打开MUSIC功能
  13. #define FUNC_CLOCK_EN 1 //是否打开时钟功能
  14. #define FUNC_FMRX_EN 1 //是否打开FM功能
  15. #define FUNC_BT_EN 1 //是否打开蓝牙功能
  16. #define FUNC_BTHID_EN 0 //是否打开独立自拍器模式
  17. #define FUNC_BT_DUT_EN 0 //是否打开蓝牙的独立DUT测试模式
  18. #define FUNC_BT_FCC_EN 0 //是否打开蓝牙的独立FCC测试模式
  19. #define FUNC_AUX_EN 0 //是否打开AUX功能
  20. #define FUNC_USBDEV_EN 0 //是否打开USB DEVICE功能
  21. #define FUNC_SPEAKER_EN 0 //是否打开Speaker模式
  22. #define FUNC_SPDIF_EN 0 //是否打开SPDIF功能
  23. #define FUNC_HDMI_EN 0 //是否打开HDMI_ARC功能
  24. #define FUNC_I2S_EN 0 //是否打开I2S接收功能(需使能I2S为Slave)
  25. #define FUNC_HUART_EN 0 //是否打开HUART接收功能
  26. #define FUNC_TOM_CAT_EN 0 //是否打开TOM_CAT模式(需要开启录音功能,使用flash 1M的型号进行内录)
  27. #define FUNC_IDLE_EN 1 //是否打开IDLE功能
  28. /*****************************************************************************
  29. * Module : 系统功能选择配置
  30. *****************************************************************************/
  31. #define SYS_CLK_SEL SYS_120M //选择系统时钟
  32. #define POWKEY_10S_RESET xcfg_cb.powkey_10s_reset
  33. #define SOFT_POWER_ON_OFF 1 //是否使用软开关机功能
  34. #define PWRKEY_2_HW_PWRON 0 //用PWRKEY模拟硬开关
  35. #define USB_SD_UPDATE_EN 1 //是否支持UDISK/SD的离线升级
  36. #define EXT_32K_EN 1 //是否使用外部32.768K晶振,否则内部32K OSC。
  37. #define PWR_RC_32K_EN 0 //软关机时RTC是否省晶振,使用RC 32K
  38. #define SYS_ADJ_DIGVOL_EN 0 //系统是否调数字音量
  39. #define GUI_SELECT GUI_LEDSEG_7P7S//GUI_NO//GUI_LEDSEG_7P7S //GUI Display Select
  40. #define UART0_PRINTF_SEL PRINTF_NONE //PRINTF_NONE //PRINTF_PB3, PRINTF_PA7 选择UART打印信息输出IO,或关闭打印信息输出
  41. #define UART0_CLK_SEL_X26M 1 //打印用的UART0时钟源选则X26M,系统时钟大于13M时才支持串口1.5M打印输出
  42. #define BT_POWER_OPTIMIZE 0 //蓝牙电源优化,芯片供电纹波比较大时,蓝牙播放音乐可能卡顿,打开此选项优化蓝牙播放音乐的卡顿
  43. #define LED_MATRIX_HUART_TX 0 //用作LED点阵屏主机,huart默认使用PB3,1500000波特率
  44. /*****************************************************************************
  45. * Module : FLASH配置
  46. *****************************************************************************/
  47. #define FLASH_SIZE FSIZE_512K //LQFP48芯片内置1MB,其它封装芯片内置512KB(实际导出prd文件要小于492K)
  48. #define FLASH_CODE_SIZE 492K //程序使用空间大小
  49. #define FLASH_ERASE_4K 1 //是否支持4K擦除
  50. #define FLASH_DUAL_READ 1 //是否支持2线模式
  51. #define FLASH_QUAD_READ 0 //是否支持4线模式
  52. #define SPIFLASH_SPEED_UP_EN 1 //SPI FLASH提速。
  53. /*****************************************************************************
  54. * Module : DAC配置控制
  55. ******************************************************************************/
  56. #define DAC_CH_SEL xcfg_cb.dac_sel //DAC_MONO ~ DAC_VCMBUF_DUAL
  57. #define DAC_FAST_SETUP_EN 0 //DAC快速上电,有噪声需要外部功放MUTE
  58. #define DAC_MAX_GAIN xcfg_cb.dac_max_gain //配置DAC最大模拟增益,默认设置为dac_vol_table[VOL_MAX]
  59. #define DAC_OUT_SPR DAC_OUT_48K //dac out sample rate
  60. #define DAC_LDOH_SEL xcfg_cb.dac_ldoh_sel
  61. #define DAC_VCM_CAPLESS_EN xcfg_cb.dac_vcm_less_en //DAC VCM省电容方案,使用内部VCM
  62. #define DACVDD_BYPASS_EN xcfg_cb.dacvdd_bypass_en //DACVDD Bypass
  63. #define DAC_PULL_DOWN_DELAY 80 //控制DAC隔直电容的放电时间, 无电容时可设为0,减少开机时间。
  64. #define DAC_DNR_EN 1 //是否使能动态降噪
  65. #define EXLIB_SOFT_EQ_DRC_EN 0 //双声道(软件PRE_EQ(建议不超过8段EQ) =>音量调节=> DRC(1段)=>硬件EQ(POST_EQ))音频链路的实现 //系统时钟需要设置到160M //该功能比较耗CPU,不支持同时开如KARAOK,高码率/无损音乐播放等本身就比较耗CPU的功能。
  66. #define EXLIB_BT_MONO_XDRC_EN 0 //蓝牙模式下实现(10段软件EQ => 高低频DRC(2段DRC)=>总DRC ==>硬件EQ) //双声道合并成单声道后,再过该算法链路
  67. #define DYNAMIC_BASS_BOOST_EN 0 //低音增强(音量越低,低音效果越强,暂只支持16级音量),系统音量调的是EQ前置增益
  68. #define DYNAMIC_BASS_BOOST_ADD_PEAK 0 //在DYNAMIC_BASS_BOOST_EN功能基础上,再增加一段类似的PEAK调节,音量越小,PEAK值越大。需要先打开DYNAMIC_BASS_BOOST_EN才有效
  69. #define DAC_OFF_FOR_BT_CONN_EN 0 //连接BT时暂时关闭DAC,防止因为RF不稳定导致的杂音从DAC输出
  70. /*****************************************************************************
  71. * Module : 音乐功能配置
  72. *****************************************************************************/
  73. #define MUSIC_UDISK_EN 1 //是否支持播放UDISK
  74. #define MUSIC_SDCARD_EN 1 //是否支持播放SDCARD
  75. #define MUSIC_SDCARD1_EN 0 //是否支持播放双卡
  76. #define MUSIC_WAV_SUPPORT 1 //是否支持WAV格式解码
  77. #define MUSIC_WMA_SUPPORT 0 //是否支持WMA格式解码
  78. #define MUSIC_APE_SUPPORT 0 //是否支持APE格式解码
  79. #define MUSIC_FLAC_SUPPORT 0 //是否支持FLAC格式解码
  80. #define MUSIC_SBC_SUPPORT 0 //是否支持SBC格式解码(SD/UDISK的SBC歌曲, 此宏不影响蓝牙音乐)
  81. #define MUSIC_FOLDER_SELECT_EN 1 //文件夹选择功能
  82. #define MUSIC_AUTO_SWITCH_DEVICE 1 //双设备循环播放
  83. #define MUSIC_BREAKPOINT_EN 1 //音乐断点记忆播放
  84. #define MUSIC_AB_BREAKPOINT_EN 1 //AB断点记忆播放,需在MUSIC_BREAKPOINT_EN使能的情况下才能使用
  85. #define MUSIC_QSKIP_EN 1 //快进快退功能
  86. #define MUSIC_PLAYMODE_NUM 4 //音乐播放模式总数
  87. #define MUSIC_MODE_RETURN 1 //退出音乐模式之后是否返回原来的模式
  88. #define MUSIC_PLAYDEV_BOX_EN 1 //是否显示“USB”, "SD"界面
  89. #define MUSIC_ID3_TAG_EN 0 //是否获取MP3 ID3信息
  90. #define MUSIC_REC_FILE_FILTER 0 //是否区分录音文件与非录音文件分别播放
  91. #define MUSIC_LRC_EN 0 //是否支持歌词显示
  92. #define MUSIC_NAVIGATION_EN 0 //音乐文件导航功能(LCD点阵屏功能)
  93. #define MUSIC_ENCRYPT_EN 0 //是否支持加密MP3文件播放(使用MusicEncrypt.exe工具进行MP3加密)
  94. #define MUSIC_MP3_LOOPBACK_EN 0 //是否开启MP3音乐单曲无缝循环播放
  95. #define USB_CUSTOM_DETECT 0 //是否支持假USB检测(DP短路检测,DP DM短接检测)
  96. #define MUSIC_SD_LOOPBACK_EN 0 //SD卡音乐循环功能
  97. #define MUSIC_ENCRYPT_KEY 12345 //MusicEncrypt.exe工具上填的加密KEY
  98. #define WAV_SRC1_MIX_PLAY_EN 0 //WAV(PCM,16K,单声)推SRC1 混合正常音乐SRC0播放 //不支持同时打开KARAOK(KARAOK MIC也会用到SRC1)
  99. #define IPHONE_POWER_VAL 50 //苹果充电电流设置
  100. #define IPHONE_POWER_INDEX 190 //苹果充电电流设置
  101. /*****************************************************************************
  102. * Module : 蓝牙功能配置
  103. *****************************************************************************/
  104. #define BT_BACKSTAGE_EN 0 //蓝牙后台管理(全模式使用蓝牙(fmrx不能蓝牙后台))
  105. #define BT_BACKSTAGE_PLAY_DETECT_EN 0 //非蓝牙模式下检测到手机蓝牙播放音乐,则切换到蓝牙模式
  106. #define BT_NAME_DEFAULT "BT-BOX" //默认蓝牙名称(不超过31个字符)
  107. #define BT_NAME_WITH_ADDR_EN 0 //蓝牙名称是否附加地址信息(调试用,例如:btbox-***)
  108. #define BT_POWER_UP_RECONNECT_TIMES 2 //上电回连次数
  109. #define BT_TIME_OUT_RECONNECT_TIMES -1 //掉线回连次数
  110. #define BT_SIMPLE_PAIR_EN 1 //是否打开蓝牙简易配对功能(关闭时需要手机端输入PIN码)
  111. #define BT_DISCOVER_CTRL_EN 2 //是否使用按键打开可被发现(按一下按键才能被连接配对)
  112. #define BT_PWRKEY_5S_DISCOVER_EN 1 //是否使用长按5S开机进入可被发现(耳机长按开机功能)
  113. #define BT_DISCOVER_TIMEOUT -1 //按键打开可被发现后,多久后仍无连接自动关闭,0不自动关闭,单位100ms
  114. #define BT_ANTI_LOST_EN 0 //是否打开蓝牙防丢报警
  115. #define BT_BQB_RF_EN 0 //蓝牙RF BR/EDR BQB测试
  116. #define BT_CBT_TEST_EN 0 //蓝牙CBT测试使能
  117. #define BT_FCC_TEST_EN 0 //蓝牙FCC测试使能 //默认PB3 波特率1500000通信
  118. #define BT_LOCAL_ADDR 0 //蓝牙是否使用本地地址,0使用配置工具地址
  119. #define BT_2ACL_EN 1 //是否支持连接两部手机
  120. #define BT_A2DP_EN 1 //是否打开蓝牙音乐服务
  121. #define BT_HFP_EN 1 //是否打开蓝牙通话服务
  122. #define BT_HSP_EN 0 //是否打开蓝牙HSP通话服务
  123. #define BT_PBAP_EN 0 //是否打开蓝牙电话簿服务
  124. #define BT_MAP_EN 0 //是否打开蓝牙短信服务(用于获取设备时间,支持IOS/Android)
  125. #define BT_SPP_EN 1 //是否打开蓝牙串口服务
  126. #define BT_HID_EN 1 //是否打开蓝牙HID服务
  127. #define BT_HID_TYPE HID_TYPE_PHOTO1 //选择HID服务类型
  128. #define BT_HID_MENU_EN 1 //蓝牙HID是否需要手动连接/断开
  129. #define BT_HID_DISCON_DEFAULT_EN 0 //蓝牙HID服务默认不连接,需要手动进行连接。
  130. #define BT_HID_SIMPLE_KEYBOARD 0 //蓝牙HID,枚举成键盘,做音量加减,播放/暂停,上下曲切歌和唤醒语音助手 (需要把 BT_HID_TYPE 配置为3)
  131. #define BT_HFP_CALL_PRIVATE_EN 1 //是否使能私密接听与蓝牙接听切换功能
  132. #define BT_HFP_CALL_PRIVATE_FORCE_EN 0 //是否强制使用私密接听(手机端接听)
  133. #define BT_HFP_RING_NUMBER_EN 1 //是否支持来电报号
  134. #define BT_HFP_PLAY_IOS_RING_EN 1 //是否支持ios来电铃声(android默认用RING提示音)
  135. #define BT_HFP_BAT_REPORT_EN 1 //是否支持电量显示
  136. #define BT_HFP_MSBC_EN 0 //是否打开宽带语音功能
  137. #define BT_HSF_CALL_NUMBER_EN 1 //是否支持获取回拔,主动拨出电话的号码
  138. #define BT_A2DP_AAC_AUDIO_EN 0 //是否支持蓝牙AAC音频格式
  139. #define BT_A2DP_VOL_CTRL_EN 1 //是否支持A2DP音量与手机同步
  140. #define BT_A2DP_VOL_HID_CTRL_EN 0 //是否打开HID调A2DP音量与手机同步功能,同时需打开HID拍照功能,音量同步功能
  141. #define BT_A2DP_RECON_EN 0 //是否支持A2DP控制键(播放/暂停、上下曲键)回连
  142. #define BT_AVDTP_DELAY_REPORT_EN 1 //是否上报耳机当前延迟给手机进行音视频同步
  143. #define BT_SCO_DBG_EN 1 //是否打开无线SPP调试通话参数功能
  144. #define BT_CONNECTED_AUTO_PLAY_EN 0 //是否打开蓝牙连接后自动播放音乐功能
  145. #define BT_ID3_TAG_EN 0 //是否获取蓝牙ID3信息,蓝牙ID3信息会从bt_id3_tag_callback函数中输出
  146. #define BT_TOUCH_SCREEN_EN 0 //车机HID 触摸屏 (传统蓝牙HID, 只支持苹果)
  147. #define BT_CARPLAY_EN 0 //是否使能车机carplay功能
  148. #define BT_SUPPORT_EIGHT_DEVICE_EN 0 //是否支持8台设备信息保存
  149. #define BT_SRCRAM_PHASECOM_SYNC 0 //蓝牙同步方式使用SRCRAM_PHASECOM
  150. #define BT_TWS_EN 0 //是否支持TWS //注意使用不带TWS的蓝牙库时,需要关闭该TWS的宏,否则会有死机情况
  151. #define BT_TSCO_EN 0 //是否支持TWS双路通话 //bt_is_force_master函数需要返回true
  152. #define BT_TWS_FAST_PAIR_EN 0 //是否支持TWS快速配对(注:快速配对时需要修改为通过蓝牙名字配对)
  153. #define BT_TWS_PAIR_MODE 0 //0=通过蓝牙名字配对,1=通过ID配对
  154. #define BT_TWS_PAIR_ID 0x38383730
  155. #define BT_TWS_LTX_EN 0 //是否降低搜索功率
  156. #define BT_TWS_TIME_OUT_RECONNECT_TIMES 1 //TWS 掉线回连次数,1大约5.12S,0XFF一直回连
  157. #define BT_TWS_SLAVE_ID3 0 //BT ID3 信息是否要传给副机
  158. #define BT_RF_EXT_CTL_EN 0 //是否外接BT RF LAN 放大器
  159. #define BT_RF_POWER_BALANCE_EN 0 //BT RF功耗配平,降低蓝牙RF TX/RX耗电不均引起的DAC噪声,但芯片耗电会加大 //默认使用了 //PA4/PA3/PF1/PB0/PB5 这五个IO口 (SSOP24/SOP16 没有用到的GPIO)
  160. #define LE_EN 0 //是否打开BLE功能 打开ble需要同步替换带BLE的库 libbtstack_ble_no_tws.a 或 libbtstack_tws_ble.a (改名为libbtstack.a再编译),相关库的描述见libs/libbtstack_Readme.txt
  161. #define LE_PAIR_EN 0 //是否使能BLE的加密配对
  162. //独立FOTA功能配置
  163. //独立FOTA主要用于第三方APP支持.fot文件格式,方便客户APP支持FOTA功能
  164. //独立FOTA,可通过wiki上的ab-ota-demo APP进行演示(可申请源码)
  165. #define LE_AB_FOT_EN 0 //是否打开BLE协议的独立FOTA服务,一般IOS使用(需要配合BLE APP使用)
  166. #define BT_AB_FOT_EN 0 //是否支持SPP协议的独立FOTA服务,一般Android使用(需要配合SPP APP使用)
  167. #define LE_ADV0_EN 0 //是否打开无连接广播功能
  168. #define LE_WIN10_POPUP 0 //是否打开win10 swift pair快速配对
  169. #define USB_BT_NAME_UPDATA 0 //打开U盘升级蓝牙名字功能文件名:bt_name.btn
  170. /*****************************************************************************
  171. * Module : 通话功能配置
  172. *****************************************************************************/
  173. //通话参数
  174. #define BT_SCO_DUMP_EN 0 //是否通过HART DUMP通话数据, 需要打开HUART调EQ功能
  175. #define BT_PLC_EN 1
  176. #define BT_NOISE_THRESHOID xcfg_cb.bt_noise_threshoid //环境噪声阈值(低于此阈值便认为是噪声)(0~65535)
  177. #define BT_ANL_GAIN xcfg_cb.bt_anl_gain //MIC模拟增益(0~23)
  178. #define BT_DIG_GAIN xcfg_cb.bt_dig_gain //MIC数字增益(0-31),且于0~3DB范围细调,步进3/32DB
  179. #define BT_CALL_MAX_GAIN xcfg_cb.bt_call_max_gain //配置通话时DAC最大模拟增益
  180. #define BT_AEC_EN 0
  181. #define BT_ECHO_LEVEL xcfg_cb.bt_echo_level //回声消除级别(级别越高,回声衰减越明显,但通话效果越差)(0~15)
  182. #define BT_FAR_OFFSET xcfg_cb.bt_far_offset //远端补偿值(0~255)
  183. #define AEC_DUMP_FILE 0
  184. #define BT_ALC_EN 1 //是否使能ALC
  185. #define BT_ALC_FADE_IN_DELAY xcfg_cb.bt_alc_in_delay //近端淡入延时
  186. #define BT_ALC_FADE_IN_STEP xcfg_cb.bt_alc_in_step //近端淡入速度
  187. #define BT_ALC_FADE_OUT_DELAY xcfg_cb.bt_alc_out_delay //远端淡入延时
  188. #define BT_ALC_FADE_OUT_STEP xcfg_cb.bt_alc_out_step //远端淡入速度
  189. #define BT_ALC_VOICE_THR 0x50000
  190. #define BT_SCO_FAR_NR_EN 0 //是否打开远端降噪算法
  191. #define BT_SCO_FAR_NOISE_THRESHOID 600 //远端环境噪声阈值(低于此阈值便认为是噪声)(0~65535)
  192. #define SCO_MAV_EN 0 //蓝牙通话魔音使能,需要关闭BT_HFP_MSBC_EN,配置中选ALC通话
  193. #define BT_AEC_DUMP_EN 0 //是否打开aec dump数据功能 //alc和aec导出数据,只能打开其中一个,dump出远、近端原始数据,近端降噪消音后数据
  194. #define BT_ALC_DUMP_EN 0 //是否打开alc dump数据功能 //alc和aec导出数据,只能打开其中一个
  195. /*****************************************************************************
  196. * Module : FMRX功能配置
  197. *****************************************************************************/
  198. #define FMRX_HALF_SEEK_EN 1 //是否打开半自动搜台
  199. #define FMRX_THRESHOLD_VAL xcfg_cb.fmrx_r_val //内置FMRX搜台阈值(0~255), 值越小台越多,假台也可能增多。 // 128
  200. #define FMRX_THRESHOLD_Z xcfg_cb.fmrx_z_val //该值越大台越多, 想减少很弱的台,可以适当改小 //1100
  201. #define FMRX_THRESHOLD_FZ xcfg_cb.fmrx_fz_val //该值越大台越多, 想减少很弱的台,可以适当改小 //600
  202. #define FMRX_THRESHOLD_D xcfg_cb.fmrx_d_val //3000
  203. #define FMRX_AUDIO_CHANNEL xcfg_cb.fmrx_audio_ch //FM声道输出声道,一般单声道比双声道噪音会小些 //0 Mono //1 Dual
  204. #define FMRX_OPTIMIZE_TRY 0 //FM 收台效果尝试优化,可以修改CLK控制等,需要实际样机去测试效果
  205. #define FMRX_TEST_CHANNEL 0 //FM 固定某些电台测试,可用于对比其它样机,定位到特定的一些台对比声音清晰度
  206. /*****************************************************************************
  207. * Module : FMTX功能配置(只支持PA6, 只有AB5602F芯片才支持)
  208. *****************************************************************************/
  209. #define FMTX_EN 0 //是否使能FM TX功能
  210. #define FMTX_POWER 2 //发射功率选择(0 ~ 3共4档, 发射POWER依次增强)
  211. #define FMTX_DAC_EN 1 //是否同时DAC输出
  212. #define FMTX_AMP_EN 0 //是否经过放大器输出
  213. #define FMTX_PUD_OUT 1 //是否通过上下拉电阻方式输出
  214. #define FMTX_DNR_EN 0 //是否打开FMTX动态降噪
  215. #define FMTX_CHANNEL_MODE FMTX_STEREO //FMTX输出声道模式
  216. #define FMTX_AMP_TIMES FMTX_VOL_X2 //设置FMTX AUDIO放大倍数
  217. /*****************************************************************************
  218. * Module : AUX功能配置
  219. ******************************************************************************/
  220. #define AUX_CHANNEL_CFG (CH_AUXL_PB1 | CH_AUXR_PB2) //选择LINEIN通路
  221. #define MIC_CHANNEL_CFG CH_MIC_PF2 //选择MIC的通路
  222. #define AUX_2_SDADC_EN 1 //AUX是否进SDADC, 否则直通DAC。进SDADC可以调AUX EQ, 及AUX录音等功能
  223. #define AUX_SNR_EN 1 //AUX模式动态降噪(AUX模拟直通也能用)
  224. #define LINEIN_DETECT_EN 0 //是否打开LINEIN检测
  225. #define SDCMD_MUX_DETECT_LINEIN 0 //是否复用SDCMD检测LINEIN插入
  226. #define LINEIN_2_PWRDOWN_EN 0 //是否插入Linein后直接软关机(大耳包功能)
  227. #define AUX_CHANNEL_EXCHANGE 0 //是否AUX左右声道互换
  228. #define MICAUX_ANALOG_OUT_ALWAYS 0 //所有模式下均打开AUX或MIC通道
  229. #define MICAUX_ANALOG_OUT_CH (CH_AUXR_MIC_PF2 | CH_AUXL_MIC_PF2) //选择直通MIC通道 eg: MICL TO AUXL/AUXR
  230. ///通过配置工具选择检测GPIO
  231. #define LINEIN_DETECT_INIT() linein_detect_init()
  232. #define LINEIN_IS_ONLINE() linein_is_online()
  233. #define IS_DET_LINEIN_BUSY() is_detect_linein_busy()
  234. /*****************************************************************************
  235. * Module : HDMI ARC配置
  236. *****************************************************************************/
  237. #define HDMI_DETECT_EN 1 //是否开启HDMI插入检测
  238. //other config see "bsp_hdmi.c"
  239. /*****************************************************************************
  240. * Module : 录音功能配置
  241. *****************************************************************************/
  242. #define FUNC_REC_EN 0 //录音功能总开关
  243. #define FMRX_REC_EN 1 //是否打开FM录音功能
  244. #define AUX_REC_EN 1 //是否打开AUX录音功能
  245. #define MIC_REC_EN 1 //是否打开MIC录音功能
  246. #define TOM_CAT_REC_EN 1 //是否打开TOM_CAT录音功能
  247. #define BT_REC_EN 1 //是否打开蓝牙音乐录音功能
  248. #define BT_HFP_REC_EN 0 //是否打开蓝牙通话录音功能(不支持karaok)
  249. #define KARAOK_REC_EN 0 //是否打开KARAOK录音功能,需同步打开KARAOK功能
  250. #define REC_ONE_FOLDER_EN 0 //是否各模式录音放到同一目录下
  251. #define REC_DIR_LFN 1 //是否打开长文件名目录
  252. #define REC_AUTO_PLAY 0 //录音结束是否回放当前录音内容
  253. #define REC_FAST_PLAY 1 //播卡播U下快速播放最新的录音文件(双击REC)
  254. #define REC_STOP_MUTE_1S 0 //录音停止时, MUTE 1S功放. //提醒客户录音结束.
  255. #define REC_TYPE_SEL REC_MP3 //注意REC_ADPCM格式只支持通话录音
  256. #define REC_DIG_GAIN_EN 0 //录音是否需要加大数字增益
  257. #define REC_WHITOUT_KARAOK 0 //录音退出karaok,ram不够
  258. #define MUSIC_REC_MIC_EN 0 //是否打开MUSIC模式下录音MIC功能(需要开启 FUNC_SPEAKER_EN 和 MIC_REC_EN)
  259. /*****************************************************************************
  260. * Module :外接SPIFLASH配置, 外接SPIFLASH可以播放MP3音乐文件, 及录音
  261. *****************************************************************************/
  262. #define EX_SPIFLASH_SUPPORT 0 //可以配置为 EXSPI_NOT_SUPPORT(0) 或 EXSPI_MUSIC 或 EXSPI_REC 或 (EXSPI_MUSIC | EXSPI_REC)
  263. #define FLASH_GREATER_THAN_16MBYTE 0
  264. #define SPLFLASH_MP3_LOOPBACK_EN 0 //是否开启SPLFLASH_MP3音乐单曲无缝循环播放
  265. #define SPIFALSH_MUSIC_BIN_WRITE_TEST 0 //默认的FLASH_MUSIC.BIN写入SPIFLASH, 可以在func_exspifalsh_music中测试外接SPIFALSH播放MP3.
  266. //FLASH_MUSIC.BIN 镜像文件占用区域(BYTE)
  267. #define SPIFLASH_MUSIC_BEGIN_ADDR 0 //FLASH_MUSIC.BIN镜像文件默认从0地址开始存放,此宏暂不支持修改.
  268. #define SPIFLASH_MUSIC_END_ADDR (1024*36) //FLASH_MUSIC.BIN镜像文件结束地址. 测试DEMO的镜像文件是36K大小.
  269. //录音占用区域(BYTE) //注意SPIFALSH的录音区域不要覆盖 FLASH_MUSIC.BIN区域
  270. #define SPIFLASH_REC_BEGIN_ADDR (1024*37) //录音起始地址
  271. #define SPIFLASH_REC_END_ADDR (1024*1024) //录音结束地址
  272. //SPIFLASH录音配置
  273. #define EXSPI_REC_PITCH_SHIFT_PLAY 0 //SPEAKER下的SPIFLASH录音变调播放 //类似TOM猫效果
  274. #define INTERNAL_FLASH_REC 0 //录音到内部flash
  275. #define REC_DELETE_FILE 0 //flash录音自动覆盖
  276. #define REC_AUTO_END_EN 0 //flash录音自动停止功能
  277. #define REC_AUTO_END_TIME 10 //flash自动停止录音时间(s)
  278. #define SPIFALSH_MUSIC_PLAY_REC 0 // 1 FUNC_EXSPIFLASH_MUSIC 模式下播放录音示例: 支持录音上下曲,及删除当前播放的录音 //0 播放镜像音乐示例
  279. #define SPIFALSH_MUSIC_BREAK_MEMORY 0 //断点记忆,切出flash模式时记忆断点,再次切入flash播放时从上次记忆的断点开始播放,加入100ms断电记忆一次功能
  280. #define SPIFLASH_MUSIC_BREAK_LOOP 1 //0-打开断点记忆时,对当前音乐循环播放 1-打开断点记忆时,对Flash中的所有歌曲循环播放
  281. #define EXFLASH_MUSIC_WARNING 0 //播flash音乐时同时播放wav提示音
  282. /*****************************************************************************
  283. * Module : TOM_CAT功能配置
  284. *****************************************************************************/
  285. #define TOM_CAT_STOP_TIME 1000 //录音结束检测时间(ms),1秒没检测到声音录音结束
  286. #define TOM_CAT_CUT_TIME 500 //录音文件尾部裁剪(ms)
  287. //起始地址不要和代码段冲突,地址要4K对齐,最后要留20K给记忆区
  288. #define TOM_CAT_SPK_REC_START_ADDR (512*1024) //声控录音起始地址
  289. #define TOM_CAT_SPK_REC_END_ADDR (768*1024) //声控录音结束地址
  290. #define TOM_CAT_KEY_REC_START_ADDR (768*1024) //按键录音起始地址
  291. #define TOM_CAT_KEY_REC_END_ADDR (1000*1024) //按键录音结束地址
  292. /*****************************************************************************
  293. * Module : K歌功能配置
  294. *****************************************************************************/
  295. #define SYS_KARAOK_EN 0 //是否打开K歌功能(暂不支持与录音、WMA、FLAC同时打开)
  296. #define BT_HFP_CALL_KARAOK_EN 0 //通话是否支持KARAOK.
  297. #define SYS_ECHO_EN 1 //是否使能混响功能
  298. #define SYS_ECHO_DELAY 16 //混响间隔级数
  299. #define SYS_BASS_TREBLE_EN 0 //是否使能高低音调节
  300. #define SYS_MAGIC_VOICE_EN 1 //是否使能魔音功能,不支持同时开启BT_HFP_CALL_KARAOK_EN宏
  301. #define SYS_HOWLING_EN 1 //是否使能防啸叫功能
  302. #define SYS_PITCH_SHIFT 0 //是否使能新的魔音算法,要更改链接文件才能支持魔音, 可与SYS_MAGIC_VOICE_EN搭配使用,择优
  303. #define MIC_DETECT_EN 0 //是否使能MIC检测
  304. #define MIC_DNR_EN 1 //是否使能MIC动态降噪
  305. #define KARAOK_DENOISE_EN 1 //是否使能高级版本MIC动态降噪,主要优化MIC_DNR_EN效果不明显,可以和MIC_DNR_EN同时使用,目前主要用于KARAOK MIC降噪
  306. #define KARAOK_DENOISE_LEVEL 16 //降噪级别,值越大降噪效果越明显,声音还原度会相应变差. 取值范围0~31
  307. #define KARAOK_MIC_DRC 0 //是否使能mic的drc功能,开启后需要拉sdadc.drc文件曲线(不支持在线调节)。//后置数字增益也受此宏控制
  308. #define KARAOK_RM_VOICE 0 //蓝牙音乐或播放mp3音乐消人声
  309. #define AUDIO_STRETCH_EN 0 //变速不变调 buf与混响共用 加速模式下主频需要120M 且要关闭K歌和魔音宏开关
  310. #define KARAOK_MIX_PLAY_WAV_EN 0 //PCM资源文件混到KARAOK_MIC数据流中一起播放出来(常用于开KARAOK时,该WAV提示音与KARAOK一起输出)
  311. ///通过配置工具选择检测GPIO
  312. #define MIC_DETECT_INIT() mic_detect_init()
  313. #define MIC_IS_ONLINE() mic_is_online()
  314. #define IS_DET_MIC_BUSY() is_detect_mic_busy()
  315. /*****************************************************************************
  316. * Module : User按键配置 (可以同时选择多组按键)
  317. *****************************************************************************/
  318. #define USER_ADKEY 0 //ADKEY的使用, 0为不使用
  319. #define USER_ADKEY2 0 //ADKEY2的使用,0为不使用
  320. #define USER_PWRKEY 1 //PWRKEY的使用,0为不使用
  321. #define USER_IOKEY 0 //IOKEY的使用, 0为不使用
  322. #define USER_ADKEY_MUX_SDCLK 0 //是否使用复用SDCLK的ADKEY, 共用USER_ADKEY的按键table
  323. #define USER_ADKEY_MUX_LED 0 //是否使用ADKEY与LED复用, 共用USER_ADKEY的流程(ADKEY与BLED配置同一IO)
  324. #define ADKEY_PU10K_EN 0 //ADKEY是否使用内部10K上拉, 按键数量及阻值见port_key.c
  325. #define USER_KEY_KNOB_EN 0 //旋钮的使用,0为不使用
  326. #define USER_KEY_KNOB_LEVEL 16 //旋钮的级数
  327. #define USER_MULTI_PRESS_EN 1 //按键N击检测使能
  328. #define USER_KEY_DOUBLE {KU_HSF, KU_REC, KU_PLAY_POWER, KU_PLAY, KU_VOL_UP_NEXT, KU_VOL_DOWN_PREV} //支持双击/三击/四击/五击的按键
  329. #define ADKEY_CH xcfg_cb.adkey_ch //ADCCH_PE7
  330. #define ADKEY2_CH xcfg_cb.adkey2_ch //ADCCH_PE6
  331. #define IS_PWRKEY_PRESS() (0 == (RTCCON & BIT(19)))
  332. #define DOUBLE_KEY_TIME (xcfg_cb.double_key_time) //按键双击响应时间(单位50ms)
  333. #define PWRON_PRESS_TIME (500*xcfg_cb.pwron_press_time) //长按PWRKEY多长时间开机?
  334. #define PWROFF_PRESS_TIME (3+3*xcfg_cb.pwroff_press_time) //长按PWRKEY多长时间关机?
  335. //上电快速检测ADC,需要把header_adc.bin修改成header.bin并重新编译,目前支持PWRKEY,PB2,PB4,检测结果放在地址0x58400的RAM中供后面的程序使用
  336. #define PWRON_QUICK_ADC_PRINT 0 //上电快速检测ADC,主要用于PWREKY短按唤醒并得到按键的ADC用于区分按键
  337. /*****************************************************************************
  338. * Module : TouchKey按键配置
  339. *****************************************************************************/
  340. #define USER_TKEY 0 //TouchKEY总开关,0为不使用
  341. #define USER_TKEY_DEBUG_EN 0 //TouchKey SPP调试
  342. #define USER_TKEY_HW_EN 0 //TouchKEY使用硬件方法,支持一路
  343. #define TKEY_CH TK_PE7_CH3 //硬件通道选择
  344. #define USER_TKEY_MUL_EN 0 //TouchKEY使用软件方法,支持四路,和USER_TKEY_HW_EN同时开启时优先级更高
  345. #define TKEY_CH0_EN 0 //PB1作tkey开关,需要开启TouchKEY,开启时注意引脚复用
  346. #define TKEY_CH1_EN 0 //PB2作tkey开关,需要开启TouchKEY
  347. #define TKEY_CH2_EN 0 //PE6作tkey开关,需要开启TouchKEY,和IR脚配置成PE6冲突,不能同时开启
  348. #define TKEY_CH3_EN 0 //PE7作tkey开关,需要开启TouchKEY,和ADKEY冲突,不能和USER_ADKEY同时开启
  349. /*****************************************************************************
  350. * Module : SD0配置
  351. *****************************************************************************/
  352. #define SD_SOFT_DETECT_EN 0 //是否使用软件检测(SD发命令检测)
  353. #define SDCLK_MUX_DETECT_SD 1 //是否复用SDCLK检测SD卡
  354. #define SD0_MAPPING SD0MAP_G2 //选择SD0 mapping
  355. #define SD1_MAPPING SD0MAP_G3 //选择SD1 mapping
  356. #define SD_INSERT_EXCEPTION_RESET 0 //SD插入小概率引起复位时,复位后(跳过开机提示音)直接进入音乐模式播放
  357. ///通过配置工具选择检测GPIO
  358. #define SD_DETECT_INIT() sdcard_detect_init()
  359. #define SD_IS_ONLINE() sdcard_is_online()
  360. #define IS_DET_SD_BUSY() is_det_sdcard_busy()
  361. #define SD_IS_SOFT_DETECT() (xcfg_cb.sddet_iosel == 31) //配置工具中选则31是软件检测
  362. #define SD1_DETECT_INIT() sdcard1_detect_init()
  363. #define SD1_IS_ONLINE() sdcard1_is_online()
  364. #define IS_DET_SD1_BUSY() is_det_sdcard1_busy()
  365. /*****************************************************************************
  366. * Module : I2C配置
  367. *****************************************************************************/
  368. #define I2C_EN 1 //是否使能I2C功能
  369. #define I2C_MUX_SD_EN 0 //是否I2C复用SD卡的IO
  370. #if I2C_MUX_SD_EN
  371. #define I2C_SCL_IN() SD_CMD_DIR_IN()
  372. #define I2C_SCL_OUT() SD_CMD_DIR_OUT()
  373. #define I2C_SCL_H() SD_CMD_OUT_H()
  374. #define I2C_SCL_L() SD_CMD_OUT_L()
  375. #define I2C_SDA_IN() SD_DAT_DIR_IN()
  376. #define I2C_SDA_OUT() SD_DAT_DIR_OUT()
  377. #define I2C_SDA_H() SD_DAT_OUT_H()
  378. #define I2C_SDA_L() SD_DAT_OUT_L()
  379. #define I2C_SDA_IS_H() SD_DAT_STA()
  380. #else
  381. #define I2C_SCL_IN() {GPIOEDIR |= BIT(6); GPIOEPU |= BIT(6);}//{GPIOEDIR |= BIT(5); GPIOEPU |= BIT(5);}
  382. #define I2C_SCL_OUT() {GPIOEDE |= BIT(6); GPIOEDIR &= ~BIT(6);}//{GPIOEDE |= BIT(5); GPIOEDIR &= ~BIT(5);}
  383. #define I2C_SCL_H() {GPIOESET = BIT(6);}//{GPIOESET = BIT(5);}
  384. #define I2C_SCL_L() {GPIOECLR = BIT(6);}//{GPIOECLR = BIT(5);}
  385. #define I2C_SDA_IN() {GPIOEDIR |= BIT(7); GPIOEPU |= BIT(7);}
  386. #define I2C_SDA_OUT() {GPIOEDE |= BIT(7); GPIOEDIR &= ~BIT(7);}
  387. #define I2C_SDA_H() {GPIOESET = BIT(7);}
  388. #define I2C_SDA_L() {GPIOECLR = BIT(7);}
  389. #define I2C_SDA_IS_H() (GPIOE & BIT(7))
  390. #endif //I2C_MUX_SD_EN
  391. #define I2C_SDA_SCL_OUT() {I2C_SDA_OUT(); I2C_SCL_OUT();}
  392. #define I2C_SDA_SCL_H() {I2C_SDA_H(); I2C_SCL_H();}
  393. /*****************************************************************************
  394. * Module : I2S配置
  395. *****************************************************************************/
  396. #define I2S_EN 0 //是否使能I2S功能
  397. #define I2S_DEVICE I2S_DEV_NO //I2S设备选择
  398. #define I2S_MAPPING_SEL I2S_GPIOA //I2S IO口选择
  399. #define I2S_MODE_SEL 0 //I2S主从模式选择 0: master; 1:slave
  400. #define I2S_BIT_MODE 0 //I2S数据位宽选择 0:16bit; 1:32bit
  401. #define I2S_DATA_MODE 1 //I2S数据格式选择 0:left-justified mode; 1:normal mode
  402. #define I2S_DMA_EN 0 //I2S数据源选择 0:src; 1:dma
  403. #define I2S_MCLK_EN 1 //I2S是否打开MCLK
  404. #define I2S_MCLK_SEL 2 //I2S MCLK选择 0:64fs 1:128fs 2:256fs
  405. #define I2S_PCM_MODE 0 //I2S是否打开PCM mode
  406. #define IIS_EXT_EN 0 //IIS寄存器配置全部开源,有更灵活需求可以在这里面做
  407. /*****************************************************************************
  408. * Module : HUART配置
  409. *****************************************************************************/
  410. #define HUART_AUDIO_EN 0 //是否使能Huart功能
  411. #define HUART_AUDIO_BAUD 1500000 //haurt波特率
  412. #define HUART_SAMPLES 120*2 //16bit = 8bit * 2
  413. #define HUART_RX_PORT HUART_TR_PB1 //huart接收引脚
  414. #define HUART_TX_PORT HUART_TR_PB2 //huart发射引脚
  415. #define DAC_IN_SAMPLE SPR_48000 //DAC输入采样率
  416. /*****************************************************************************
  417. * Module : SPDIF配置
  418. *****************************************************************************/
  419. #define FUNC_SPDIF_TX_EN 0 //是否打开SPDIF TX功能
  420. #define SPDIF_TX_CH SPF_PF1_CH4
  421. #define SPDIF_IN_CH SPF_PF1_CH4
  422. #define SPDIF_IN_SHAPE 0 //是否打开整形直通输出功能,SPDIF in信号通过整形电路后输出到PB5
  423. /*****************************************************************************
  424. * Module : IRRX配置
  425. *****************************************************************************/
  426. #define IRRX_HW_EN 0 //是否打IRRX硬件模块
  427. #define IRRX_SW_EN 0 //是否打开timer capture ir
  428. #define IR_NUMKEY_EN 1 //是否打开数字键输入
  429. #define IR_INPUT_NUM_MAX 999 //最大输入数字9999
  430. //可以打开一个或多个
  431. #define IR_ADDR_FF00_EN 1
  432. #define IR_ADDR_BF00_EN 0
  433. #define IR_ADDR_FD02_EN 0
  434. #define IR_ADDR_FE01_EN 0
  435. #define IR_ADDR_7F80_EN 0
  436. #define IR_CAPTURE_PORT() {GPIOEDE |= BIT(6); GPIOEPU |= BIT(6); GPIOEDIR |= BIT(6);}
  437. #define IRRX_MAPPING IRMAP_PE6
  438. #define TMR3CAP_MAPPING TMR3MAP_PE6
  439. /*****************************************************************************
  440. * Module : usb device 功能选择
  441. *****************************************************************************/
  442. #define UDE_STORAGE_EN 1
  443. #define UDE_SPEAKER_EN 1
  444. #define UDE_HID_EN 1
  445. #define UDE_MIC_EN 1
  446. #define UDE_STOAGE_FLASH_EN 0 //外挂flash虚拟U盘
  447. #define UDE_MIC_KARAOK_EN 0 //USB_DEV karaok
  448. #define UDE_MIC_VOLUME_EN 0 //电脑端ude mic音量设置大小
  449. #define USB_MIC_COMPATIBILITY_XP_SYS 0 //USB_MIC兼容xp系统
  450. #define USB_DETECT_ONLY_CHECK_HOST 0 //USB插入检测的新机制 //用于只检测主机,U盘检测功能可能会受影响
  451. /*****************************************************************************
  452. * Module : 系统细节配置
  453. *****************************************************************************/
  454. #define PWM_OUT_EN 0 //设置定时器5 (PA5、PA6、PA7)PWM输出
  455. #define RGB_SERIAL_EN 0 //串行RGB推灯功能
  456. #define PWM_RGB_EN 0 //PWM RGB三色灯功能
  457. #define ENERGY_LED_EN 0 //能量灯软件PWM显示,声音越大,点亮的灯越多.
  458. #define SYS_PARAM_RTCRAM 0 //是否系统参数保存到RTCRAM
  459. #define PWRON_ENTER_BTMODE_EN 0 //是否上电默认进蓝牙模式
  460. #define VBAT_DETECT_EN 1 //电池电量检测功能
  461. #define VBAT2_ADCCH ADCCH_VBAT //ADCCH_VBAT为内部1/2电压通路,带升压应用需要外部ADC通路检测1/2电池电压
  462. #define VBAT_FILTER_USE_PEAK 0 //电池检测滤波选则://0 取平均值.//1 取峰值(适用于播放音乐时,电池波动比较大的音箱方案).
  463. #define VUSB_ADCCH 0 //使用VUSB做ADC检测,蓝牙模式最好关闭宏BT_POWER_OPTIMIZE,不然检测不准确
  464. #define EQ_MODE_EN 1 //是否调节EQ MODE (POP, Rock, Jazz, Classic, Country)
  465. #define MIC_EQ_EN 0 //是否调节MIC_EQ
  466. #define EQ_DBG_IN_UART 0 //是否使能UART在线调节EQ
  467. #define EQ_DBG_IN_SPP 0 //是否使能SPP在线调节EQ
  468. #define EQ_DBG_DUMP 0 //设置DAC EQ时,导出实际EQ设置的数据,怀疑在线调EQ和最终整合的资源EQ不一致。这里导出数据进行对比
  469. #define SYS_EQ_FOR_IDX_EN 0 //是否使能10条EQ独立调节(包括高低音)
  470. #define SYS_EQ_LOUD_EN 0 //是否使能LOUD EQ独立调节(100Hz)
  471. #define SLEEP_DAC_OFF_EN (is_sleep_dac_off_enable()) //sfunc_sleep是否关闭DAC, 复用MICL检测方案不能关DAC。
  472. #define SYS_INIT_VOLUME xcfg_cb.sys_init_vol //系统默认音量
  473. #define LPWR_WARNING_VBAT xcfg_cb.lpwr_warning_vbat //低电提醒电压
  474. #define LPWR_OFF_VBAT xcfg_cb.lpwr_off_vbat //低电关机电压
  475. #define LOWPWR_REDUCE_VOL_EN 1 //低电是否降低音量
  476. #define LPWR_WARING_TIMES 0xff //报低电次数
  477. /*****************************************************************************
  478. * Module : LED指示灯配置
  479. *****************************************************************************/
  480. #define LED_DISP_EN 1 //是否使用LED指示灯(蓝灯)
  481. #define LED_PWR_EN 1 //充电及电源指示灯(红灯)
  482. #define LED_LOWBAT_EN 0 //电池低电是否闪红灯
  483. #define BLED_CHARGE_FULL xcfg_cb.charge_full_bled //充电满是否亮蓝灯
  484. #define BT_RECONN_LED_EN 0//xcfg_cb.bt_reconn_led_en //蓝牙回连状态是否不同的闪灯方式
  485. #define LED_INIT() bled_func.port_init(&bled_gpio)
  486. #define LED_SET_ON() bled_func.set_on(&bled_gpio)
  487. #define LED_SET_OFF() bled_func.set_off(&bled_gpio)
  488. #define LED_PWR_INIT() rled_func.port_init(&rled_gpio)
  489. #define LED_PWR_SET_ON() rled_func.set_on(&rled_gpio)
  490. #define LED_PWR_SET_OFF() rled_func.set_off(&rled_gpio)
  491. /*****************************************************************************
  492. * Module : Loudspeaker mute及耳机检测配置
  493. *****************************************************************************/
  494. #define EARPHONE_DETECT_EN 1 //是否打开耳机检测
  495. #define SDCMD_MUX_DETECT_EARPHONE 1 //是否复用SDCMD检测耳机插入
  496. ///通过配置工具选择检测GPIO
  497. #define EARPHONE_DETECT_INIT() earphone_detect_init()
  498. #define EARPHONE_IS_ONLINE() earphone_is_online()
  499. #define IS_DET_EAR_BUSY() is_detect_earphone_busy()
  500. #define LOUDSPEAKER_MUTE_EN 1 //是否使能功放MUTE
  501. #define LOUDSPEAKER_MUTE_INIT() loudspeaker_mute_init()
  502. #define LOUDSPEAKER_MUTE_DIS() loudspeaker_disable()
  503. #define LOUDSPEAKER_MUTE() loudspeaker_mute()
  504. #define LOUDSPEAKER_UNMUTE() loudspeaker_unmute()
  505. #define LOUDSPEAKER_UNMUTE_DELAY 6 //UNMUTE延时配置,单位为5ms
  506. #define AMPLIFIER_SEL_INIT() amp_sel_cfg_init(xcfg_cb.ampabd_io_sel)
  507. #define AMPLIFIER_SEL_D() amp_sel_cfg_d()
  508. #define AMPLIFIER_SEL_AB() amp_sel_cfg_ab()
  509. /*****************************************************************************
  510. * Module : 充电功能选择
  511. *****************************************************************************/
  512. #define CHARGE_EN 1 //是否打开充电功能
  513. #define CHARGE_OUT_POWER_ON 0 //充电时, 拔出充电则开机(DC不断电才支持)
  514. #define CHARGE_TRICK_EN xcfg_cb.charge_trick_en //是否打开涓流充电功能
  515. #define CHARGE_DC_RESET xcfg_cb.charge_dc_reset //是否打开DC插入复位功能
  516. #define CHARGE_DC_NOT_PWRON xcfg_cb.charge_dc_not_pwron //DC插入,是否软开机。 1: DC IN时不能开机
  517. #define CHARGE_DC_IN() charge_dc_detect()
  518. #define SUPPORT_EXT_CHARGE_IC 0 //外接充电
  519. //充电截止电流:0:2.5mA; 1:5mA; 2:10mA; 3:15mA; 4:20mA; 5:25mA; 6:30mA; 7:35mA
  520. #define CHARGE_STOP_CURR xcfg_cb.charge_stop_curr //0~7
  521. //充电截止电压:0:4.2v;1:4.35v
  522. #define CHARGE_STOP_VOLT 0 //0~1
  523. //恒流充电(电池电压大于2.9v)电流:0: 10mA; 1: 35mA; 2:55mA; 3:80mA; 4:100mA; 5:125mA; 6:150mA; 7:170mA; 8:195mA; 9:220mA;
  524. // 10:240mA; 11:265mA; 12:290mA; 13: 310mA; 14:330mA; 15:350mA
  525. #define CHARGE_CONSTANT_CURR xcfg_cb.charge_constant_curr
  526. //涓流截止电压:0:2.9v; 1:3v
  527. #define CHARGE_TRICK_STOP_VOLT 1
  528. //涓流充电(电池电压小于2.9v)电流:0: 10mA 1: 20mA 2:30mA; 3:40mA
  529. #define CHARGE_TRICKLE_CURR xcfg_cb.charge_trickle_curr
  530. /*****************************************************************************
  531. * Module : UART_UPD功能
  532. *****************************************************************************/
  533. #define UART_S_UPDATE 0 //是否支持从机UART升级
  534. #define UART_M_UPDATE 0 //是否支持主机UART升级
  535. #define UART_UPD_BAUD 115200
  536. #define UART_RX_BIT BIT(3)
  537. #define UART_TX_BIT BIT(4)
  538. #define UART_UPD_PORT_SEL (UART_RX1_G2_PA3|UART_TX1_G2_PA4)
  539. #define UPDATE_UART_SEL UPDATE_UART1
  540. /*****************************************************************************
  541. * Module : 提示音 功能选择
  542. *****************************************************************************/
  543. #define WARNING_TONE_EN 1 //是否打开提示音功能, 总开关
  544. #define WARING_MAXVOL_MP3 0 //最大音量提示音WAV或MP3选择, 播放WAV可以与MUSIC叠加播放。
  545. #define WARNING_WAVRES_PLAY 0 //是否支持WAV提示音播放
  546. #define WARNING_VOLUME xcfg_cb.warning_volume //播放提示音的音量级数
  547. #define LANG_SELECT LANG_EN //提示音语言选择
  548. #define WARNING_POWER_ON 1
  549. #define WARNING_POWER_OFF 1
  550. #define WARNING_FUNC_MUSIC 0
  551. #define WARNING_FUNC_BT 0
  552. #define WARNING_FUNC_CLOCK 0
  553. #define WARNING_FUNC_FMRX 1
  554. #define WARNING_FUNC_AUX 0
  555. #define WARNING_FUNC_USBDEV 0
  556. #define WARNING_FUNC_SPEAKER 0
  557. #define WARNING_LOW_BATTERY 0
  558. #define WARNING_BT_WAIT_CONNECT 0
  559. #define WARNING_BT_CONNECT 1
  560. #define WARNING_BT_DISCONNECT 1
  561. #define WARNING_BT_TWS_CONNECT 0
  562. #define WARNING_BT_TWS_DISCON 0
  563. #define WARNING_BT_INCALL 1
  564. #define WARNING_BT_CALLOUT 0
  565. #define WARNING_USB_SD 0
  566. #define WARNING_MAX_VOLUME 1
  567. #define WARNING_MIN_VOLUME 1
  568. #define WARNING_BT_HID_MENU 0 //BT HID MENU手动连接/断开HID Profile提示音
  569. #define WARNING_BTHID_CONN 0 //BTHID模式是否有独立的连接/断开提示音
  570. #define WARNING_BT_PAIR 0 //BT PAIRING提示音
  571. #define WARNING_UPDATE_DONE 0
  572. #define SW_VERSION "V0.1.0" //只能使用数字0-9,ota需要转码
  573. #define HLW_UI 1
  574. #if HLW_UI
  575. #define HLW_LINEIN_DETECT_EN 1
  576. #define FMRX_QN8035_EN 0
  577. #define FMRX_RDA5807M_EN 1
  578. #if FMRX_QN8035_EN || FMRX_RDA5807M_EN
  579. ///外接收音芯片相关配置
  580. #define FMRX_2_SDADC_EN 1 //外接收音是否进SDADC,否则直通DAC。进SDADC可以调EQ,FMRX录音等功能。
  581. #define FMRX_CHANNEL_CFG (CH_AUXL_PF0 | CH_AUXR_PF1) //选择FMRX的通路
  582. #define FMRX_AUX_ANL_GAIN AUX_N0DB //AUX输入的模拟增益
  583. #define FMRX_CLOCK FM_USE_IO_32KHZ_CLK //FM_SHARE_CRYSTAL_32KHz //FM_USE_IO_12MHZ_CLK //FM_USE_IO_32KHZ_CLK //FM_USE_CRYSTAL_32K //FM_SHARE_CRYSTAL_32KHz //FM_USE_CRYSTAL_32K //FM_USE_CRYSTAL_32K
  584. #define FMRX_CLKOMAP CLKOMAP_PE5
  585. #endif // FMRX_QN8035_EN
  586. #endif // HLW_UI
  587. #include "config_extra.h"
  588. #endif // USER_CONFIG_H