This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS/TLV320DAC3101:TLV320DAC3101输出信号的失真

Guru**** 2353820 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/617002/ccs-tlv320dac3101-the-distortion-of-the-output-signal-of-tlv320dac3101

部件号:TLV320DAC3101

工具/软件:Code Composer Studio

我们的产品使用DAC3101,输出信号失真非常大,达到1.86 %。

外部记录仪缩放H6,失真仅为0.0012 %。

我使用44.1k采样率1kHz正弦波wav文件,在ZOOM H6上播放,并使用音频分析器AP ATS-2测试0.0012 % 的失真。 (这表明wav文件是正常的。)

使用相同的wav文件在我们的产品上播放,AP ATS-2测试对1.86 % 来说失真非常高。

原因是什么?

处理块使用PRB_7,IIR使用默认参数,

您还尝试使用PRB_1,使用默认参数,

因此,失真是相同的。

DAC3101调谐已经过测试(下图的右侧部分),没有问题。

测试方法是:来自AIN1和AIN2的输入信号,还设置了信号路由,信号源的两个输入和其他信号源设置为断开,测试输出信号。 变形0.014 %。

另外,使用标准I2S模式检查I2S控制信号(下图左侧),信号正时是否正确。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好Yong:

    欢迎使用e2e。
    您能否共享您的注册设置? 增益和衰减阶段的设置是什么?
    失真是指THD+N? 您在何处测量,它是否在D类输出中?

    此致,
    Ivan Salazar
    音频应用工程师-低功率音频和执行器
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    void tlv320_setup(void)

    // uint8_t eq_id;
    //
    // eq_id = sample_rate / 4.41万;
    // 开关(eq_id){
    // 案例0:
    // 案例1:eq_id = 0;中断;
    // 案例2:eq_id = 1;中断;
    // 案例3:
    // 案例4:eq_id = 2;中断;
    // 默认:eq_id = 2;中断;
    // }

    //步骤1初始化起始指针
    tlv320_write_reg (0x00,0x00); //设置寄存器页为PAGE 0
    tlv320_write_reg (0x01,0x01); //软复位

    //步骤2编程时钟设置
    tlv320_write_reg (0x04,0x03); // PLL_CLKIN = MCLK,CODEC _CLKIN = PLL_CLK
    tlv320_write_reg (0x06,0x08); // J = 8
    tlv320_write_reg (0x07,0x00); // D[13:8]=0
    tlv320_write_reg (0x08,0x00); // D[7:0]=0
    tlv320_write_reg (0x05,0x91); //给PLL上电,且P = 1,R=1
    tlv320_write_reg (0x0B,0x88); //给NDAC上电,并设置为8
    tlv320_write_reg (0x0C,0x82); //给MDAC上电,并设置为2

    //特别注意:使用A型滤波器时D0SR必须是2的倍数,使用B型时D0SR必须是4的倍数,使用C型时D0SR必须是8的倍数
    tlv320_write_reg (0x0D,0x00); // D0SR[9:8]=0
    tlv320_write_reg (0x0E,0x80); // D0SR[7:0]=128

    tlv320_write_reg (0x1B,0x30); //标准I2S格式,32bit字宽,从机模式
    tlv320_write_reg (0x1C,0x00); //数据延迟0个BCLK

    // tlv320_write_reg (0x3C,0x0B); //选择处理模块PRB _p11
    // tlv320_write_reg (0x3C,0x01); //选择处理模块PRB _p1
    tlv320_write_reg (0x3C,0x04); //选择处理模块PRB _p4
    // tlv320_write_reg (0x3C,0x07); //选择处理模块PRB _p7
    // tlv320_set_eq (960000);//r ö 音效,正常----------------------------------

    //音效设置
    // tlv320_write_reg (0x00,0x08); //跳到寄存器页PAGE 8
    // tlv320_write_reg (0x01,0x04); //使能自适应滤波器
    //
    //// 写左声道参数
    // tlv320_write_regs (0x02,(uint8_t*) eq_coeff[eq_id][eq_type],60);
    //// 写右声道参数
    // tlv320_write_regs (0x42,(uint8_t*) eq_coeff[eq_id][eq_type],60);
    //// 切换Buffer
    // tlv320_write_reg (0x01,0x05);
    //
    // tlv320_write_reg (0x00,0x0C); //跳到寄存器页PAGE 12
    //// 再次写左声道参数
    // tlv320_write_regs (0x02,(uint8_t*) eq_coeff[eq_id][eq_type],60);
    //// 再次写右声道参数
    // tlv320_write_regs (0x42,(uint8_t*) eq_coeff[eq_id][eq_type],60);

    tlv320_write_reg (0x00,0x00); //返回寄存器页PAGE 0

    tlv320_write_reg (0x74,0x00); //禁用DAC音量控制引脚

    //步骤3编程模拟模块
    tlv320_write_reg (0x00,0x01); //跳到寄存器页PAGE 1

    tlv320_write_reg (0x1F,0x04); //编程通用模式电压,默认1.35V
    tlv320_write_reg (0x21,0x4E); //耳机设置,开机= 1.22s,步长= 3.9ms
    tlv320_write_reg (0x23,0x44); // DAC路由输出:LDAC->HPL,RDAC->HPR 0100 0100
    // tlv320_write_reg (0x23,0x22); // DAC路由输出:LDAC -> HPL,RDAC -> HPR 0010 0010

    tlv320_write_reg (0x28,0x06); // HPL禁止静音,输出0dB
    tlv320_write_reg (0x29,0x06); // HPR禁止静音,输出0dB
    // tlv320_write_reg (0x28,0x36); // HPL禁止静音,输出6dB
    // tlv320_write_reg (0x29,0x36); // HPR禁止静音,输出6dB

    //喇叭 Ω/线路OUT增益,位4:位3 = 00,6dB;= 01,12dB;= 10,18dB;= 11,24dB;
    tlv320_write_reg (0x2A,0x04 |(LINE_OUT增益<3)); // D类左输出增益LINE_OUT增益= 0x00
    tlv320_write_reg (0x2B,0x04 |(LINE_OUT增益<3)); // D类右输出增益

    tlv320_write_reg (0x1F,0xC4); // HPL和HPR上电
    tlv320_write_reg (0x20,0xC6); // D类驱动上电

    //模拟音量,0x80+N,N的单位是- 0.5 ,如N = 18,则输出为- 9dB
    tlv320_write_reg (0x24,0x80 | 0); //使能HPL输出模拟音量,set =-0dB
    tlv320_write_reg (0x25,0x80 | 0); //使能HPR输出模拟音量,set =-0dB

    // tlv320_write_reg (0x26,0x80 | 12); //使能D类左声道输出模拟音量,set =-6dB
    // tlv320_write_reg (0x27,0x80 | 12); //使能D类右声道输出模拟音量,set =-6dB
    tlv320_write_reg (0x26,0x80 | 0); //使能D类左声道输出模拟音量,set =-0dB
    tlv320_write_reg (0x27,0x80 | 0); //使能D类右声道输出模拟音量,set =-0dB

    //步骤4给DAC上电
    tlv320_write_reg (0x00,0x00); //跳到寄存器页PAGE 0

    // tlv320_write_reg (0x3F,0xD4); //给DAC左声道上电 Ω 软步进使能0xD4 = 1101 0100
    tlv320_write_reg (0x3F,0xFC); //给DAC左声道上电 Ω 软步进使能0xFC = 1111 1100


    // DAC前级音量
    tlv320_write_reg (0x40,0x00); //关闭DAC左右声道静音功能
    // tlv320_write_reg (0x40,0x0C); // DAC左右声道静音

    //R65,R66取值范围48~-127
    tlv320_write_reg (0x41,0x00);// DAC左声道增益,= 0时为0dB,步进0.5dB
    tlv320_write_reg (0x42,0x00);// DAC右声道增益,= 0时为0dB,步进0.5dB

    // DAC后级音量(线路输出)
    // tlv320_write_reg (0x00,0x01); //跳到寄存器页PAGE 1
    // ///R36,R37取值范围0x80 | 0~127前面已经写
    // tlv320_write_reg (0x24,0x80 | 0);// HPL衰减0dB
    // tlv320_write_reg (0x25,0x80 | 0);// HPR衰减0dB
    // //// R40,R41前面已经写
    // tlv320_write_reg (0x28,0x06); // HPL禁止静音,输出0dB
    // tlv320_write_reg (0x29,0x06); // HPR禁止静音,输出0dB

    // DAC后级音量(扬声器)
    // tlv320_write_reg (0x00,0x01); //跳到寄存器页PAGE 1
    // ///R38,R39取值范围0x10 | 0~127前面已经写
    // tlv320_write_reg (0x26,0x00 | 0x00);// SPL静音并衰减0dB
    // tlv320_write_reg (0x27,0x00 | 0x00);// SPR静音并衰减0dB
    // ///R42,R43前面已经写
    // tlv320_write_reg (0x2A,0x04 |(LINE_OUT增益<3)); // D类左输出增益
    // tlv320_write_reg (0x2B,0x04 |(LINE_OUT增益<3)); // D类右输出增益

    //音量设置
    // tlv320_write_reg (0x41,0xF4);//-6dB tlv320_write_reg (0x41,0xD4); // DAC左声道增益-22dB
    // tlv320_write_reg (0x42,0xF4);//-6dB tlv320_write_reg (0x42,0xD4); // DAC右声道增益-22dB
    //使能音量输出
    // tlv320_write_reg (0x40,0x00); //关闭DAC左右声道静音功能
    }