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.

[参考译文] TLV320AIC3204:通过 PCM 连接至 Sierra 无线调制解调器

Guru**** 2454890 points
Other Parts Discussed in Thread: TLV320AIC3204

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/733096/tlv320aic3204-connecting-to-sierra-wireless-modem-via-pcm

器件型号:TLV320AIC3204

您好!

我们已选择您的 TLV320AIC3204编解码器与 Sierra Wireless 的调制解调器配合使用、配置它以正确与调制解调器通信时遇到一些问题。

我们的系统如下:  

主机微控制器要通过 SPI 设置3.3V 的编解码器、MCLK 由具有26MHz CLKOUT 引脚的调制解调器提供。 BCLK 连接到调制解调器上的调制解调器 PCM_CLK、WCLK 连接到 PCM_SYNC、DOUT 连接到 PCM_IN。

我们认为我们在设计中犯了一个错误、因为调制解调器的通用 GPIO 工作电压为1.8V、但没有提到 PCM 的电压电平、编解码器上的 IOVDD 被上拉至3.3V 以与微控制器连接。 如果您能在我们进行任何更改或调整之前确认 PCM 级别应处于 IOVDD 级别、我们将不胜感激

其次、我对编解码器进行了混合结果配置、在某些情况下、我能够振铃调制解调器、只能听到沉默、但在其他情况下、我能够听到很多白噪声。

下面是我们的启动配置、它会在调用调制解调器时产生白噪声。 如果您有任何非常感谢的建议、

PROCESSOR_Codec_WriteRegister (0x00、0x00);// Page0
Processor_Codec_WriteRegister (0x01、0x01);

Processor_Codec_WriteRegister (0x12、 0x81);//将 NADC 设置为1
Processor_Codec_WriteRegister (0x13、0x82);//将 mAdc 设置为2
Processor_Codec_WriteRegister (0x14、0x80);//将 AOSR 设置为128

Processor_Codec_WriteRegister (0x3D、0x01);//选择 ADC_R1 Processor_WriteRegister

(0x01、
0x01、0x0001_Codec);
//将 ADC编 解码器编解码器编解码器编解码器_WriteRegister (0x01、0x01、0x01);//打开0x0001_eRegister (0x01、0x01、0x0001_eRegister (0x01);/ ELDC 编解码器 eRegister (0x01);/ E08_LDO (0x01)
//将 VCM 设置为0.75V
Processor_Codec_WriteRegister (0x3D、0x00);//选择 ADC PTM_R4
Processor_Codec_WriteRegister (0x47、0x32);//将 Mic PGA 设置为3.1ms
Processor_Codec_WriteRegister (0x7B、0x01);//将 ref 充电时间设置为40ms
Processor_Codec WriteRegister
(0x02

);0x02 / UneCodec (0x20);0x02编
解码器编解码器编解码器(0x20);0xLE (0x02) // IN1_L 至 PGA_L
Processor_Codec_WriteRegister (0x36、0x02);// CM_至 M_L
Processor_Codec_WriteRegister (0x37、0x20);// IN1_R 至 PGA_R
Processor_Codec_WriteRegister (0x39、0x02);// CM 至 M_L
Processor_Codec
(0x00、0x3c
);0x3c 至0x3c 编解码器编解码器(0x00、0x3c)


;0x3c 至0x3c 至0x3c 编解码器 eRegister (0x00);/ Unmic Processor_eset (0x3c) //为 ADC L&R
加电 Processor_Codec_WriteRegister (0x1D、0x10);//取消 L&R
Processor_Codec_WriteRegister (0x52、0x00)的静音; 

参考:调制解调器设置为 PCM 主机、采样时钟边沿控制在上升沿、PCM 位时钟为512 KHz。  

我的同事通过绕过 ADC/DAC 模块来配置调制解调器以将音频从 IN1_R 和 IN1_L 传递到 LOR 和 LOL、因此我们认为编解码器工作正常、只是不确定编解码器配置。

感谢你能抽出时间。

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

    您好!

    首先、您的假设是正确的、编解码器上所有 I/O 引脚的逻辑电平由在 IOVDD 引脚上施加的电压决定。 从您的注释中可以看到编解码器配置正确。 但是、在某种程度上、调制解调器和编解码器之间的接口不正确。 寄存器是否仅共享用于配置编解码器的寄存器?、似乎缺少一些时钟设置、因此这可能是问题所在。  您能否共享提供给编解码器的所有时钟的使用采样率和频率?  

    此致、

     Diego Melendez López í a
      音频应用工程师

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

    您好、Diego、

    感谢您花时间回应、不胜感激。

    是的、这些寄存器是目前唯一使用的寄存器、我们希望将来使用编解码器的更多功能、但现在只想让音频成功发送到调制解调器。

    我们不确定配置寄存器是否正确、因为此器件和数字音频对我们来说是全新的。

    提供给编解码器 MCLK 引脚的时钟是调制解调器提供的26MHz 时钟信号-我们不确定这是否过高?

    从调制解调器方面来说、我们能够将 PCM 位时钟更改为256kHz384kHz512kHz。 调制解调器当前使用的默认值为512kHz、但我们很乐意根据您的建议将其更改为其他2个可用值之一。 我们将其连接 到编解码器上的 BCLK 引脚。

    调制解调器的采样率固定为8kS/s、遗憾的是我们无法更改。

    我在原理图中添加了一段内容、概述了编解码器和调制解调器之间的连接、调制解调器是 Sierra Wireless HL7692。

    感谢你的帮助。

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

    您好!

    感谢您提供更多信息。 我可以看到 时钟配置有问题。 您使用的 MCLK 为26MHz、默认情况下、MCLK 用作内部时钟的源。 应将内部时钟设置为适应正确的采样率和内部处理时钟、根据您的当前设置、编解码器在内部配置为以101.56KHz 的采样率运行、这是不正确的。

    为了解决此问题、您需要更改时钟系数、一种方法 是使用 BCLK 作为内部时钟的源、并对 PLL 进行编程以调整适当的时钟频率。

    请尝试以下设置、并告知我您是否有任何改进。

    寄存器:0x04值:0x07
    寄存器:0x05值:0x94
    寄存器:0x06值:0x28
    寄存器:0x07值:0x00
    寄存器:0x08值:0x00
    寄存器:0x12值:0x81
    寄存器:0x13值:0x82
    寄存器:0x14值:0x80
    寄存器:0x0B 值:0x81
    寄存器:0x0C 值:0x82
    寄存器:0x0D 值:0x00
    寄存器:0x0E 值:0x80

    此致、

    Diego Melendez López í a
    音频应用工程师

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

    非常感谢您的帮助。

    您友好地提供的时钟设置使我们能够将音频传递到调制解调器、但它严重失真。
    我们将尝试调整一些设置、以查看是否可以清除失真、并为 PCM_CLK 和 PCM_SYNC 和 PCM_IN 信号添加1v8-3V3电平转换器、以查看这是否有用。

    如果您有任何有关如何清除失真的其他提示、我们将不胜感激。

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

    您好、Diego、

    我们设法在时钟和数据线路上插入调制解调器的电平转换器、以纠正之前的设计问题。

    使用您为我们提供的寄存器值、我们能够通过编解码器向调制解调器获取一些音频、但它严重失真。

    此外、它只能拾取较大的噪声、就像需要超出某个阈值一样。

    我在下面添加了寄存器值、我们添加了一些位来尝试从线性输出中获取音频、以检查它是否是调制解调器端的问题而不是编解码器内的配置设置、遗憾的是、我们通过线性输出具有相同的失真。

    提前感谢您的帮助。

    PROCESSOR_Codec_WriteRegister (0x00、0x00);// Page0
    Processor_Codec_WriteRegister (0x01、0x01);//软件复位
    //根据 Diego Melendez @ Texas Instruments
    Processor_Codec_WriteRegister (0x04、0x07)的建议;//将 PLL 输入设置为 BCLK 和 PLL 时钟为 CODEC_CLKIN
    Processor_Codec_WriteRegister (0x05、0x94);// PLL 上电 P=1 R=4
    Processor_Codec_WriteRegister (0x07、
    0x07);// Processor_Codec_WriteRegister
    (0x07、0x07、0x07、0x07、/ Codec_E = 0x07、0x07、0x07、0x07);// 0x00);// D=0
    Processor_Codec_WriteRegister (0x12、0x81);// NADC 上电 NADC=1
    Processor_Codec_WriteRegister (0x13、0x82);// MADCPadup mAdc=2
    Processor_Codec_WriteRegister (0x14、0x80);// AOSR = 128 (
    0x80)
    ;/ DAC_Codec Powered mac (0x80)= 0x80 (0x80);0x80 (ADC_Codec Powered eCodec = 0x80) Register
    
    (0x80);/ ADCc = 0x80 (0x80) // DAC OSR LSB = 128
    
    Processor_Codec_WriteRegister (0x3D、0x01);//选择 ADC PRB_R1
    Processor_Codec_WriteRegister (0x3F、0xD6);// DAC 通道设置- LR DAC 加电、将左侧 DAC 路由到左侧音频数据路由到右侧音频数据并禁用软步进
    Processor_Codec_WriteRegister (0x00); //左 DAC 数字音量控制+0dB
    Processor_Codec_WriteRegister (0x42、0x00);//右 DAC 数字音量控制+0b
    
    PROCESSOR_Codec_WriteRegister (0x00、0x01);//第1页
    PROCESSOR_Codec_WriteRegister (0x01、0x08);//关闭弱 LDO
    PROCESSOR_Codec_WriteRegister (0x02、0x01);//打开 LDO
    PROCESSOR_Codec_WriteRegister (0x0A、0x7B);//将 VCM 设置为0.000_SCM_编
    
    解码器(0x0004
    );0x40ms、0x301DR_E 编解码器/设置为0x40ms;0x40ms (0x000_E 编解码器/ E 编解码器/ E 编解码器(0x0004)
    //左侧 DAC 路由到 LOL
    Processor_Codec_WriteRegister (0x0F、0x08);//右侧 DAC 路由到 LOR
    Processor_Codec_WriteRegister (0x12、0x00);// LOL Unmute
    Processor_Codec Codec_WriteRegister (0x13、0x00);// LOL Unmute Processor_Codec
    
    Processor_WriteRegister (0x20、0x02
    
    );// ZLM_Codec (0x39);//
    0x24 ACT_PGA 编解码器:0x24 (0x24)
    
    // CM 至 M_R
    Processor_Codec_WriteRegister (0x3B、0x0C);//取消 PGA_L
    Processor_Codec_WriteRegister (0x3C、0x0C)的静音;//取消 PGA_R
    Processor_Codec_WriteRegister (0x33、0x68)的静音;//将麦克风偏置设置为2V
    
    PROCESSOR_Codec_WriteRegister (0x00、0x00);//第1页
    Processor_Codec_WriteRegister (0x51、0xC0);//加电 ADC L&R
    Processor_Codec_WriteRegister (0x1D、0x10);//将 ADC 循环到
    
    DAC Processor_MUTE_WriteRegister (0x52、0x00);Processor_Codec UneRegister (0x40、/ UneRegister)