中科蓝讯蓝牙: 530X_532X 等音量系统调节

本文详细介绍音量调试过程中的关键步骤,包括数字音量和模拟音量的检查方法,音量控制模块图,EQ模块前级增益调整,以及DACVOLCON和AUANGCON3寄存器的作用。此外,还提供了音量设置函数和模拟音量对照表,帮助解决音量过小的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

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 <= VOL_MAX) {
        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 <= VOL_MAX) {
        dig_vol = dac_dvol_table[vol];
        dac_set_dvol(dig_vol);
    }
#endif
}

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

vdddac是dac使用的电源, dac输出的峰峰值不会超过电源的幅度.(电源配置成最大3.2时, dac输出峰峰值只能达到最大2.8V不失真)

这里的DAC最大音量和通话最大音量, 最后更改的均是模拟音量.

7. 模拟音量对应表

模拟音量表( AUANGCON3低 7位)  其中N代表负增益, P代表正增益.

#define N_54DB       0x0F        //000 1111

#define N_53DB       0x1F        //001 1111

#define N_52DB       0x2F        //010 1111

#define N_51DB       0x3F        //011 1111

#define N_50DB       0x4F        //100 1111

#define N_49DB       0x5F        //101 1111

#define N_48DB       0x0E        //000 1110

#define N_47DB       0x1E        //001 1110

#define N_46DB       0x2E        //010 1110

#define N_45DB       0x3E        //011 1110

#define N_44DB       0x4E        //100 1110

#define N_43DB       0x5E        //101 1110

#define N_42DB       0x0D        //000 1101

#define N_41DB       0x1D        //001 1101

#define N_40DB       0x2D        //010 1101

#define N_39DB       0x3D        //011 1101

#define N_38DB       0x4D        //100 1101

#define N_37DB       0x5D        //101 1101

#define N_36DB       0x0C        //000 1100

#define N_35DB       0x1C        //001 1100

#define N_34DB       0x2C        //010 1100

#define N_33DB       0x3C        //011 1100

#define N_32DB       0x4C        //100 1100

#define N_31DB       0x5C        //101 1100

#define N_30DB       0x0B        //000 1011

#define N_29DB       0x1B        //001 1011

#define N_28DB       0x2B        //010 1011

#define N_27DB       0x3B        //011 1011

#define N_26DB       0x4B        //100 1011

#define N_25DB       0x5B        //101 1011

#define N_24DB       0x0A        //000 1010

#define N_23DB       0x1A        //001 1010

#define N_22DB       0x2A        //010 1010

#define N_21DB       0x3A        //011 1010

#define N_20DB       0x4A        //100 1010

#define N_19DB       0x5A        //101 1010

#define N_18DB       0x09        //000 1001

#define N_17DB       0x19        //001 1001

#define N_16DB       0x29        //010 1001

#define N_15DB       0x39        //011 1001

#define N_14DB       0x49        //100 1001

#define N_13DB       0x59        //101 1001

#define N_12DB       0x08        //000 1000

#define N_11DB       0x18        //001 1000

#define N_10DB       0x28        //010 1000

#define N_9DB        0x07        //000 0111

#define N_8DB        0x06        //000 0110

#define N_7DB        0x05        //000 0101

#define N_6DB        0x04        //000 0100

#define N_5DB        0x03        //000 0011

#define N_4DB        0x02        //000 0010

#define N_3DB        0x01        //000 0001

#define N_2DB        0x00        //000 0000

#define N_1DB        0x10        //001 0000

#define N_0DB        0x20        //010 0000

#define P_1DB        0x30        //011 0000

#define P_2DB        0x40        //100 0000

#define P_3DB        0x50        //101 0000

#define P_4DB        0x60        //110 0000

#define P_5DB        0x70        //111 0000  

本章完结, thanks.

### 解决因可疑活动导致请求被阻止的问题 当账户或IP地址因可疑活动被阻止时,通常是因为GitHub检测到异常行为并采取了安全措施。以下是具体的解决方案: #### 1. 验证身份 如果收到类似 `Hi ***! You've successfully authenticated` 的消息,则表明SSH密钥验证已通过[^3]。然而,如果是其他类型的访问受限问题(如OAuth登录失败),则需要进一步确认。 #### 2. 检查授权回调URL设置 对于OAuth集成GitHub登录的情况,确保在应用配置中正确设置了 **Authorization callback URL** 参数值。此参数允许自定义,并指向GitHub登录成功后的回调地址[^1]。如果该URL不匹配实际部署环境中的路径,可能会触发安全警告。 #### 3. 处理Git克隆权限问题 当执行命令 `git clone git@github.com:` 出现错误提示 `Permission denied (publickey)` 时,这通常是由于未正确配置SSH密钥所致[^2]。可以通过以下方法修复: - 确认本地机器上是否存在有效的SSH密钥文件(位于~/.ssh/目录下)。如果没有,请运行以下命令生成新的SSH密钥对: ```bash ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ``` - 将公钥内容复制至GitHub账户的安全设置页面(Settings -> SSH and GPG keys -> New SSH key)。 - 测试连接是否正常: ```bash ssh -T git@github.com ``` #### 4. 更新NPM镜像源 有时依赖包管理工具也可能引发网络层面的误判。例如,在使用Node.js项目时,建议切换国内镜像加速下载速度,从而减少超时风险: ```bash npm config set registry https://registry.npm.taobao.org ``` 注意:部分旧版本库可能已被废弃,需留意官方公告以避免潜在隐患[^4]。 #### 5. 联系支持团队 最后,若上述操作均无法解决问题,可以直接联系GitHub客服说明具体情况。提供受影响邮箱地址(如hi@cursor.com)、时间范围以及具体报错日志有助于加快处理进度。 --- ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值