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/TLV320AIC3106:麦克风旁路至扬声器的寄存器设置

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/624028/ccs-tlv320aic3106-register-settings-for-microphone-bypassing-to-speaker

部件号:TLV320AIC3106
主题中讨论的其他部件:CC3200

工具/软件:Code Composer Studio

您好,

我正在将TLV320AIC3106与CC3200配合使用。 麦克风配置已完成,我正在通过I2S从编解码器IC获取数据。 现在我需要将这些数据输出到扬声器,以验证麦克风输入。 执行此操作所需的配置是什么?

这是麦克风配置。  

AudioCodecPageSelect((unsigned char )0x00);
AudioCodecRegWrite((unsigned char) codec_sw_reset, codecPage0Regs.sw_reset);
//时钟生成和控制
AudioCodecRegWrite((unsigned char) codec_clock_generation_control,(unsigned char) 0x02);// codec_CLKIN使用MCLK(CLKDIV_Uert)
AudioCodecRegWrite((unsigned char) codec_additional GPIO控制B,(unsigned char)0x01);
// AudioCodecRegWrite(((unsigned char) codec_PLL_A, 0x91);// codec_PLL_A_RESETVAL);
// AudioCodecRegWrite(((unsigned char) codec_PLL_B, 0x60);// J value 24
// AudioCodecRegWrite(((unsigned char) codec_PLL_C, 0x00;
codec_PLD; codec)

AudioCodecRegWrite((unsigned char) codec_GPIO1_control, 0x28);// GPIO1引脚上的时钟输出

AudioCodecRegWrite((unsigned char) codec_sample_rate,0xAA);//0xAA);// fs = fsref/n

AudioCodecRegWrite(((unsigned char) codec_mic_bias control, 0x80);//(unsigned char)0xC0);// mic bias

//选择输入时,在路由输入并为ADC通电后取消PGA的静音。
AudioCodecRegWrite((unsigned char) codec_LINE2L_left_ADC_CONTROL,0x80);
AudioCodecRegWrite((unsigned char) codec_LINE1L_left_ADC_CONTROL,0x7C);//打开左侧ADC的电源
AudioCodecRegWrite(((unsigned char) codec_left_ADC_PGA_Gain _control, 0x00);//取消PGA的静音 

下面是所附的示意图。

谢谢,此致,

Vishnu Pradeep

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

    您好,Vishnu,

    基本上,如果您只想通过扬声器输出回放麦克风输入,您可以配置 LINE2L旁路[Reg 40],然后选择LINE2L作为MONO_LOP输出[Reg 73]的源。

    我已请我的同事看看这件事,以防您有其他问题。  

    此致,

     -Diego Mel é ndez López ñ a
      音频应用工程师

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

    感谢您的回复。 实际上,我的应用程序需要回放从外部源连续接收的数据。 但现在我需要检查麦克风和扬声器是否正常工作。

    我将检查您提到的注册表。
    请您帮助我解决我的主要要求,即通过I2S接收的数据必须通过原理图中连接的扬声器播放。

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

    您好,Vishnu,

    感谢您的反馈。 要将DAC配置 为Mono_LOP输出的源,需要根据DAC通道配置寄存器75或78。  

    我建议您查看此应用说明,它包含有关如何配置TLV320AIC310x系列编解码器的一般指南。

    此致,

     -Diego Mel é ndez López ñ a
      音频应用工程师

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

    您好,Diego,

    这是我的配置,

    AudioCodecRegWrite((unsigned char) codec_clock_generation_control,(unsigned char) 0x02);// codec_CLKIN使用MCLK(CLKDIV_Out)
    
    AudioCodecRegWrite(((unsigned char) codec_addic_gp_control_B,(unsigned char)// audioCodec_regchar
    
    
    
    ;Audio_12char;
    
    
    
    Audio_21 ((((((((((((((ETC))
    
    // GPIO1引脚
    
    AudioCodecRegWrite(((unsigned char) codec_sample_rate,0x00);//0xAA);// fs = fsref/n
    
    AudioCodecRegWrite(((unsigned char) codec_mic_bias control, 0x80);//(unsigned char)0xC0);//选择
    
    输入路由后取消麦克风//输入的静音
    
    AudioCodecRegWrite((unsigned char) codec_LINE2L_left_ADC_CONTROL,0x80);
    
    AudioCodecRegWrite((unsigned char) codec_LINE1L_left_ADC_CONTROL,0x7C);//打开左侧ADC
    
    AudioCodecRegWrite((unsigned char) codec_left_ADC_PGA_GAFGA_CONTROL,0x00;===================================================================================================================================================================
    
    扬声器配置
    
    //===绕过
    
    AudioCodecRegWrite(((unsigned char)codec_high _power _output_stage控制,0x30);
    
    AudioCodecRegWrite(((unsigned char)codec_LINE2L_mono_LOPM_volume_control,0x80); 

    AudioCodecRegWrite(((unsigned char)codec_mono_LOPM_output_leve_control,0x0B);

    我的扬声器里没有什么东西。

    谢谢,此致,

    Vishnu Pradeep

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

    您好,Vishnu,

    感谢您的反馈。 Mono Line Output (单声道输出)似乎已正确路由,但是输出驱动程序块似乎未打开。 请将寄存器79配置为取消静音,并通过将0x09写入reg来打开MONO_LOP/M。 79. (注意D0位应为R/W)。

    此致,

     -Diego Mel é ndez López ñ a
      音频应用工程师

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


    感谢您的回复。 我也用0x0B值配置了寄存器79,但仍然没有结果! 我将查看电路并再次检查。

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

    您好,Diego,

    现在我绕过了信号。 但我无法使其与通过I2S发送的外部数据配合使用。 我正在尝试使用从I2S中的硬件编解码器获得的相同数据播放声音。 我尝试使用以下设置通过I2S将16位数据发送回音频编解码器。

    AudioCodecPageSelect((unsigned char )0x00);
    AudioCodecRegWrite((unsigned char) codec_sw_reset, codecPage0Regs.sw_reset);
    //时钟生成和控制
    AudioCodecRegWrite((unsigned char) codec_clock_generation_control,(unsigned char) 0x02);// codec_CLKIN使用MCLK(CLKDIV_Uert)
    AudioCodecRegWrite((unsigned char) codec_additional GPIO控制B,(unsigned char)0x01);
    // AudioCodecRegWrite(((unsigned char) codec_PLL_A, 0x91);// codec_PLL_A_RESETVAL);
    // AudioCodecRegWrite(((unsigned char) codec_PLL_B, 0x60);// J value 24
    // AudioCodecRegWrite(((unsigned char) codec_PLL_C, 0x00;
    codec_PLD; codec)
    
    AudioCodecRegWrite((unsigned char) codec_GPIO1_control, 0x28);// GPIO1引脚上的时钟输出
    
    AudioCodecRegWrite((unsigned char) codec_sample_rate,0x00);//0xAA);// fs = fsref/n
    
    AudioCodecRegWrite((unsigned char) codec_mic_bias control, 0xC0);//(unsigned char)0xC0);// mic bias
    
    //选择输入时,在路由输入并为ADC通电后取消PGA的静音。
    AudioCodecRegWrite((unsigned char) codec_LINE2L_left_ADC_CONTROL,0x80);
    AudioCodecRegWrite((unsigned char) codec_LINE1L_left_ADC_CONTROL,0x7C);//打开左侧ADC的电源
    AudioCodecRegWrite(((unsigned char) codec_left_ADC_PGA_Gain _CONTROL,0x00);//取消PGA
    
    AudioCodecRegWrite(((unsigned char)codec_dac _power _output_driver_control的静音(0x80);
    AudioCodecRegWrite(((unsigned char)codec_left_dAC) digital_volume_control,0x00);
    AudioCodecRegWrite(((unsigned char)codec_DACL1_Mono_LOPM_volume_control,0x80); 

    配置中是否缺少任何内容??

    谢谢,此致,

    Vishnu Pradeep