SiFli_EQ

工具具体介绍参见SiFli_EQ

FAQ1 点击串口连接指示灯为红色

此种情况一般是串口被其他软件打开导致。


FAQ2 在线调试时写入数据到目标板报错

如果通过目标板的串口写入数据,目标板不能处于睡眠状态,否则会导致交互异常。 如果通过蓝牙Dongle写入数据,需要确认目标板固件的HCPU工程menuconfig中是否打开了Enable BLE EQ config server


FAQ3 如何查看在线调试的交互信息

  • 可以通过串口抓数工具,如 Bus Hound,抓取交互数据进行分析;

  • 可以设置工具配置文件 SiFli_EQ.ini 的 SHOW_LOG=1 ,重新打开工具会有Trace窗口,可以查看交互信息。


FAQ4 数据保存时会保存哪些内容

数据保存会保存4个文件,如保存名字为 LB52X_EQ 时各文件如下:

  • LB52X_EQ.bin
    该文件直接放到固件指定的文件系统路径下使用,包含所有会用到的数据信息,如音量配置、硬件EQ、软件EQ、软件VBE/DRC。

  • LB52X_EQ__dac_eq.c
    该文件替换到固件代码中,直接编译使用,保存音量配置、硬件EQ数据。

  • LB52X_EQ__vbe_eq_drc_config.h 该文件替换到固件代码中,直接编译使用,软件EQ、软件VBE/DRC数据。

  • LB52X_EQ__tool.cfg 保存了所有界面上设置的参数,工具载入数据时使用。


FAQ5 在线EQ调试的操作流程

在线改变EQ的操作顺序:

  • 在工具EQ界面配置好参数;

  • 退出手机的播放器;

  • 在工具上点写入EQ

  • 开启手机的播放器播放;

  • 写入到设备中设备重启会丢失,只有最后点了退出EQ调试模式才会保存到设备的临时文件/dyn/eq_debug.bin中重启不丢失。

备注

手机暂停20秒,写入EQ后手机再播放也可以,暂停等一会儿就是让手机播放器发出退出播放请求让设备关闭音频EQ模块,再次播放就会重新打开EQ模块,苹果手机要等15秒,安全起见就每次退出手机播放器。


FAQ6 音量调试流程

音量调试先调试最大音量,保证最大音量达到喇叭想要的最大输出效果,并且不失真;然后再往下衰减,分成Level 0~ 15共16个等级,Level越大声音越大。

在线调试时,手机连接目标设备播放音乐,点击写入最大音量,再把右下角的Level 15的值设置为Max,点Level 15右边的设置按钮就可以用Level 15的值去播放了,其他Level的值,都是点击对应的右边的设置按钮用当前Level的音量等级去播放。

音量等级为1dB为单位设置,最大音量以0.5dB为单位设置。最大值的精调一般不用,分7个等级再往下衰减,不用的话设置为0,其他值就是靠软件把最大音量再往下衰减不超过0.5dB,精调的值越大,衰减越多,对最大音量没有比0.5dB还要精确的需求推荐设置为0,减少播发最大音量时的软件参与。

板子代码在drv_audprc.c中,为了写入EQ后,不用每次开机都要写入,会把当前调试的参数写入EQ_DEBUG_FILE_PATH这个文件里,需要系统配置了文件系统才行, 再重启就从EQ_DEBUG_FILE_PATH里加载eq参数。要根据系统情况修改这两个宏,比如没有/dyn/目录,那写入EQ_DEBUG_FILE_PATH就可能失败,目前系统要求目录已经存在了才能写入文件。

#define EQ_DEBUG_FILE_PATH      "/dyn/eq_debug.bin"  
#define EQ_SYSTEM_FILE_PATH     "/eq.bin"  

上面EQ参数优先使用的顺序从高到底是

  • EQ_DEBUG_FILE_PATH

  • EQ_SYSTEM_FILE_PATH

  • 代码中的参数

其中EQ_DEBUG_FILE_PATH是给调试者临时用的,正式版本里是不能有这个文件的。 EQ_SYSTEM_FILE_PATH是产品里,需要产线烧录或升级的,具体目录由产品决定,这里只是例子放在根目录。
/dyn/eq_debug.bin 退出EQ调试模式时会生成。
/eq.bin 在EQ工具点击保存数据时生成并烧到或OTA到设备里的文件。
生成的代码要合入到drv_audprc.c里
int8_t g_tel_vol_level[16] = {};为电话时16个音量等级对应的增益值, 1db为单位。
int8_t g_music_vol_level[16]= {};为非电话时16个音量等级对应的增益值, 1db为单位。
g_tel_max_vol为电话时的最大增益,0.5db为单位,g_tel_vol_level[]的值都要小于等于g_tel_max_vol * 2
g_music_max_vol为非电话时的最大增益,0.5db为单位,g_music_vol_level[]的值都要小于等于g_music_max_vol * 2
如果想简单改变音量,可以手动改数组里的值,但是系统返回音量等级对应的增益(返回0.5db为单位)会和最大增益比较,如果比最大增益大,则返回电话或非电话的最大增益,手动修改时要注意。