中科蓝讯蓝牙: 530X

您所在的位置:网站首页 中科蓝讯蓝牙耳机芯片大全 中科蓝讯蓝牙: 530X

中科蓝讯蓝牙: 530X

2024-07-14 08:40| 来源: 网络整理| 查看: 265

目录

0. 如果没有声音, 可以打印查看 "数字音量" 和 "模拟音量" 是否正常

1. 530X, 532X 常用音量控制模块图

2. EQ模块前级增益 (有用到EQ才有效, 默认EQ或不启用EQ时,此增益为0DB)

3.  数字音量, 可打印DACVOLCON 低16位查看.

4.  模拟音量: 可打印AUANGCON3 低8位查看. (模拟音量表见后面)  

 5. 程序中对音量的总设置函数: bsp_change_volume(bsp_dac.c中). 

6. 如果音量还小, 还可以留意VDDDAC电源配置电压是否正常

7. 模拟音量对应表

0. 如果没有声音, 可以打印查看 "数字音量" 和 "模拟音量" 是否正常

调试过程中, 经常会遇到没有声音的情况, 可以直接打印一下"数字音量"和模拟音量.

 建议在公共处理函数 func_process中增加如下printf_info打印, 1秒打印一次, 查看数字音量和模拟音量是否正常.

 如果数字音量或模拟音量均是最小, 可以尝试调用dac_fade_in函数淡入声音(此函数会自动淡入数字音量和模拟音量).

//530X,532X,536X,889X等都是这两个寄存器 #define AUANGCON3 SFR_RW (SFR1_BASE + 0x3f*4) //模拟音量,音量值查看其低7位, 对应增益见本文末尾模拟音量表 #define DACVOLCON SFR_RW (SFR1_BASE + 0x11*4) //数字音量,音量值查看其低16位, 最大值0x7FFF (0DB) AT(.text.func.bt) void printf_info(void) { static u32 ticks = 0; if (tick_check_expire(ticks,1000)) { //1000ms打印一次 ticks = tick_get(); printf("--------------->\nDACVOLCON = 0x%X , AUANGCON3 = 0x%X\n", DACVOLCON&0xFFFF,AUANGCON3&0x7F); } } AT(.text.func.process) void func_process(void) { WDT_CLR(); printf_info();  ...... }

1. 530X, 532X 等常用音量控制模块图

530X/532X声音输出最大值可达到2.8V不失真(峰峰值,常规串电容双声道输出)

2. EQ模块前级增益 (有用到EQ才有效, 默认EQ或不启用EQ时,此增益为0DB)

   在配置工具Equalizer中, 可以设置EQ前级增益, 范围(-24~+12)DB

   当音量小时, 可以提高此增益. 

   曾经遇到有台样机, 音量怎么也调不上去, 最后发现是生成的EQ文件, 前级增益配置太小了.

    

3.  数字音量, 可打印DACVOLCON 低16位查看.

   最大值为0x7FFF (对应0DB)    //寄存器为  #define DACVOLCON       SFR_RW (SFR1_BASE + 0x11*4)

   程序中是调用dac_set_dvol 函数进行设置数字音量,参数范围(0~0x7FFF)

4.  模拟音量: 可打印AUANGCON3 低8位查看. (模拟音量表见后面)  

   最大值为0x70, 对应+5DB

   寄存器为#define AUANGCON3       SFR_RW (SFR1_BASE + 0x3f*4)

   程序中是调用 dac_set_volume 设置模拟音量, 参数范围(0~59) 分别对应(-54~+5)DB增益

 5. 程序中对音量的总设置函数: bsp_change_volume(bsp_dac.c中). 

      在这个函数中, 可以看到, 按键调音量, 一般有两种做法:

     1) 固定数字音量,  调音量时只调模拟音量.  (SDK默认使用这种做法)

     2) 固定模拟音量, 调音量只调数字音量.(需要打开宏 SYS_ADJ_DIGVOL_EN)

AT(.text.bsp.dac) void bsp_change_volume(u8 vol) { #if !SYS_ADJ_DIGVOL_EN ///sys adjust dac analog volume u8 anl_vol = 0; if (vol 0) { anl_vol = dac_avol_table[vol] + sys_cb.anl_gain_offset; } dac_set_volume(anl_vol); } #else ///sys adjust dac digital volume u16 dig_vol = 0; if (vol


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3