欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

qcc304x笔记之常用配置

程序员文章站 2022-06-23 21:18:04
目录打开cvc打开anc打开aec输出功率调整输出方式选择(class D、class AB)离线log的小技巧MIC配置Panic复位增改eq与充电盒交互配置电池电量等级修改log输出等级配对超时时间设置修改回连手机的次数与间隔打开cvc打开anc在projects中使能anc的宏:ENABLE_ANC打开aec在projects中使能aec的宏:ENABLE_AEC_LEAKTHROUGH输出功率调整音乐:appC...

目录

打开cvc

打开anc

打开aec

音量调整

输出方式选择(class D、class AB)

离线log的小技巧

MIC配置

Panic复位

增改eq

与充电盒交互

配置电池电量等级

修改log输出等级

配对超时时间设置

修改回连手机的次数与间隔

强制进headset配对


打开cvc

宏开关:KYMERA_SCO_USE_3MIC / KYMERA_SCO_USE_2MIC

两个宏只能开一个,实际选用哪个配置,根据实际的mic的个数和是否有anc决定

打开anc

在projects中使能anc的宏:ENABLE_ANC

qcc304x笔记之常用配置

打开aec

在projects中使能aec的宏:ENABLE_AEC_LEAKTHROUGH、INCLUDE_KYMERA_AEC

音量调整

音乐:appConfigDefaultVolumedB()        /*a2dp_profile_config.h*/

提示音:KYMERA_CONFIG_PROMPT_VOLUME      /* kymera_config.h*/

Tone: KYMERA_CONFIG_TONE_VOLUME            /* kymera_config.h*/

主音量gain:appConfigMinVolumedB() / appConfigMaxVolumedB()  /* kymera_config.h*/

输出方式选择(class D、class AB)

在subsys3_config2.htf文件中加入Class的配置true为AB,false为D,默认为D

qcc304x笔记之常用配置

离线log的小技巧

有的时候我们想抓log,但是每次都进debug在抓log很麻烦,那怎么办呢?

这里有一个小技巧:

先进入debug模式,然后在点击build或者是rebuild,这个时候你会发现退出了debug模式,但是log还可以正常输出,并且设备重新上电或者插拔调试器,log还是可以正常输出,抓log非常方便

MIC配置

mic的参数配置:microphones_config.h

mic用途配置:kymera_config.h

Panic复位

如下图,修改PanicAction的值为0,默认为2。这里要注意的是就算设置为0之后,短时间2次panic之后也就不会复位了

qcc304x笔记之常用配置

增改eq

当我们使用QACT修改好参数之后,将修改的参数导出来可能是如下图所示,那么我们如何将这些参数导入工程中呢?

qcc304x笔记之常用配置

音频的配置都在ps_cfg文件夹

qcc304x笔记之常用配置

如上图,比如地址为0x002480的参数,我们可以在目下的文件中去搜索,如果存在,我们将从QACT导出的参数替换当前;如果这个地址不存在,直接把该地址的参数添加到对应的htf文件,然后在build、depoly即可。

与充电盒交互

在项目过程中,可能需要与充电盒做简单的交互,在不外加ic的情况下,只能基于已有的硬件为基础(Charge脚)做交互动作,这个时候就需要以5V脉冲做为信号进行交互。

同时这个时候就会发现一个问题,由于512x与514x系列芯片考虑充电稳定性问题,下降沿(掉电)的监测的事件上报比较准,而上升沿(上电,实际是确定了电源稳定之后)的事件上报差不多有两秒左右的延时。所以我们在接收信号的时候,只能以下降沿为准。

下图时序仅供参考,我们可以去读下降沿的间隔来大致确定一个脉冲

qcc304x笔记之常用配置

时间间隔计算参考代码如下:

/*这里参数的单位都是ms。
*不以读取的系统时间us为单位,是因为当计算(0xffffffff + x)的时候会溢出,而且我们的精度也只需要到ms
*/
uint32 delta_time(uint32 last, uint32 now)
{
	/*(0x418936 == 0xffffffff / 1000)*/
	return (now > last) ? (now - last) : (0x418936 + now - last);
}

/*测试接口*/
void test_func()
{
	uint32 last_time,now_time;

	last_time = SystemClockGetTimerTime() / 1000;
	now_time = SystemClockGetTimerTime() / 1000 + 50;

	DEBUG_LOG_INFO("delta_time=%d(ms)", delta_time(last_time, now_time));
}

配置电池电量等级

在battery_monitor_config.h文件中,,修改下述值即可,当然还有一些其他相关配置。

#define appConfigBatteryFullyCharged()      (4200)

#define appConfigBatteryVoltageOk()         (3600)

#define appConfigBatteryVoltageLow()        (3300)

#define appConfigBatteryVoltageCritical()        (3000)

修改log输出等级

修改log等级宏定义的值即可

#define DEFAULT_LOG_LEVEL    DEBUG_LOG_LEVEL_INFO          /*logging.h*/

配对超时时间设置

在pairing_config.h文件中,可以配置包含peer,headset相关的配对超时时间

修改回连手机的次数与间隔

在handset_service_config.h文件:

#define handsetService_BredrAclConnectAttemptLimit()

#define handsetService_BredrAclConnectRetryDelayMs()

强制进headset配对

将下面这段代码,映射到一个input ui事件,就可以通过按键操作强制进入手机配对。在peer未配对情况下也适用,但是是断开连接之后不会回连手机,适用于测试场景,正式场景慎用

appSmClearUserPairing();
appSmSetState(APP_STATE_OUT_OF_CASE_IDLE);
ConManagerAllowHandsetConnect(TRUE);
appSmSetState(APP_STATE_HANDSET_PAIRING);

 

相关的工具资料等,请到我的博客<qcc514x_qcc304x开发调试笔记>最下面的网盘链接中下载。

本文地址:https://blog.csdn.net/ylangeia/article/details/110110489