TI中文支持网
TI专业的中文技术问题搜集分享网站

TLV320AIC3204: 我配置了ADC的寄存器,只有BLCLK,WCLK的频率是对的,在示波器上看到的DOUT波形是96hz的波形,不知道是哪里配置错了

Part Number:TLV320AIC3204

这是我的寄存器配置

MCLK=24.576MHZ,WCLK=3.072MHZ,BCLK=48KHZ,AIC3204处于主模式,给FPGA提供WCLK和BCLK

# 寄存器 写入数据

0x00,0x00   // Initialize to Page 0

0x01,0x01   // S/W Reset to initialize all registers

 

0x0b,0x81   // Power up NDAC divider with value 1

0x0c,0x84   // Power up MDAC divider with value 4

0x0d,0X00  // Program OSR for DAC to 128(MSB)

0x0e,0X80  // Program OSR for DAC to 128(LSB)

0x12,0x81   // Power up NADC divider with value 1

0x13,0x84   // Power up MADC divider with value 4

0x14,0x80   // Program OSR for ADC to 128

0x19,0x00   //Select CODEC_CLKIN = MCLK      

0x1b,0x3c   // Set the word length of Audio Interface to 32bits,BCLK,WCLK is output from the device

0x1c, 0x00  // Data Offset = 0 BCLKs

0x1d, 0x06  // BDIV_CLKIN = ADC_CLK

0x1e, 0x88  // Power up BCLK divider with value 8

0x3c,0x04   // Select DAC PRB_P4

0x3d,0x01   // Select ADC PRB_R1

 

 

0x00,0x01   // Select Page 1

0x01,0x08   // Disable Internal Crude AVdd in presence of external AVdd supply or before powering up internal AVdd LDO

0x02,0x00   // Enable Master Analog Power Control

0x14,0x25    //HP soft stepping settings for optimal pop performance at power up

                    //Rpop used is 6k with N = 6 and soft step = 20usec. This should work with 47uF coupling

                   //capacitor. Can try N=5,6 or 7 time constants as well. Trade-off delay vs “pop” sound.

0x0a,0x00   // Set the input common mode to 0.9V

                  

/*—Analog Routing—*/

0x0c,0x08   //Route Left DAC to HPL

0x0d,0x08   //Route Right DAC to HPR

0x0e,0x08   //Route Left DAC to LOL

0x0f,0x08    //Route Right DAC to LOR

0x03,0x00   //Set the DAC PTM mode to PTM_P3/4

0x04,0x00   //Set the DAC PTM mode to PTM_P3/4

0x3d,0x00   // Select ADC PTM_R4

0x10,0x00   //Set the HPL gain to 0dB

0x11,0x00   //Set the HPR gain to 0dB

0x12,0x00   //Set the LOL gain to 0dB

0x13,0x00   //Set the LOR gain to 00dB

0x09,0x3c   //Power up HPL and HPR, LOL and LOR drivers

//Wait for 2.5 sec for soft stepping to take effect

                //Else read Page 1, Register 63d, D(7:6). When = “11” soft-stepping is complete

0x47,0x31   // Set MicPGA startup delay to 3.1ms

0x7b,0x01   // Set the REF charging time to 40ms

0x34,0x80   // Route IN1L to LEFT_P with 20K input impedance

0x36,0x80   // Route Common Mode to LEFT_M with impedance of 20K

0x37,0x80   // Route IN1R to RIGHT_P with input impedance of 20K

0x39,0x80   // Route Common Mode to RIGHT_M with impedance of 20K

0x3b,0x0c   // Unmute Left MICPGA, Gain selection of 6dB to make channel gain 0dB

// Register of 6dB with input impedance of 20K => Channel Gain of 0dB

0x3c,0x0c   // Unmute Right MICPGA, Gain selection of 6dB to make channel gain 0dB

// Register of 6dB with input impedance of 20K => Channel Gain of 0dB

 

0x00,0x00   // Select Page 0

0x3f,0xd6    //Power up the Left and Right DAC Channels with route the Left Audio digital data to

                //Left Channel DAC and Right Audio digital data to Right Channel DAC

0x40,0x00   //Unmute the DAC digital volume control and enable syncronized control (use L-ch)

0x51,0xc0   // Power up Left and Right ADC Channels

0x52,0x00   // Unmute Left and Right ADC Digital Volume Control.

Amy Luo:

您好,

Jade wu 说:WCLK=3.072MHZ,BCLK=48KHZ

您这个是写反了吗?应该是BCLK=3.072MHZ,WCLK=48KHZ?还是实测真的是上面频率?

,

Jade wu:

写反了 ,抱歉

,

Jade wu:

实测BCLK=3.072MHz,BCLK=48kHz,dout这个引脚输出的波形是96kHz的,不知道是哪里出现问题,请问我的寄存器配置有需要更改的或者是添加的吗

,

Jade wu:

实测BCLK=3.072MHz,WCLK=48kHz,dout这个引脚输出的波形是96kHz的,不知道是哪里出现问题,请问我的寄存器配置有需要更改的或者是添加的吗

,

Amy Luo:

寄存器没看出问题,建议您检查下硬件,供电电压是否正常?IN1L 、IN1R 输入是否有信号等?或多测试几块板子以排除焊接问题

Jade wu 说:dout这个引脚输出的波形是96kHz的,

DOUT是周期性的像时钟信号似的96KHZ信号吗? 或者您是否可以附上波形我具体看下

,

Amy Luo:

另外在下面指南中第4章节有Example  code,不知道您是否已经看到,尝试下里面的配置看输出怎样?

TLV320AIC3204 Application Reference Guide

,

Jade wu:

这是没有数据流的波形

,

Jade wu:

这是有数据流的波形

,

Jade wu:

供电电压根据硬件工程师给的原理图来看是一样的,IN1L 、IN1R 是有输入信号的,芯片换了一颗了,也是一样的情况

,

Jade wu:

我把时钟那保留,其他的都使用例程中的,我发现一个问题,要配置DAC的分频系数才有时钟输出,不知道是bug还是本应该这样的

,

Amy Luo:

Jade wu 说:要配置DAC的分频系数才有时钟输出,

具体是什么意思我没明白,您这里是指WCLK和BCLK没有输出了吗?而且我看您代码中也有NDAC、MDAC和OSR_DAC的配置

,

Jade wu:

就是DAC和ADC的分频系数都要配置,不然时钟WCLK的时钟输出就没有了

,

Amy Luo:

BCLK我看您也配置了:

,

Jade wu:

是的,我的确配置了,但是我把DAC的系数寄存器注释后,BCLK的确是没有输出,当我恢复注释后又有输出了,所以我想问这是bug还是芯片问题

,

Amy Luo:

Page 0 / Register 33  您可以配置WCLK Output = Generated ADC_FS,应该就不需要配置DAC了:

,

Jade wu:

后面的寄存器配置里面我把这个寄存器也加进去了,还是出现一样的情况

,

Amy Luo:

检查下是不是寄存器配置顺序的问题,您之前不是可以正常输出WCLK和BCLK的吗

,

Jade wu:

之前正常输出的,也是DAC的配置了的,现在为了保证正常的输出我只能保持原有的寄存器配置

,

Amy Luo:

那现在使用您原有的时钟配置 加 参考Example  code 配置采集路径,DOUT是否可以正确输出?

,

Jade wu:

我更改了一个page0的R3d寄存器,将ADC Singal Processing Block PRB_R1更改为ADC Singal Processing Block PRB_R7后,发现不需要配置DAC的分频系数时钟也能正常输出,而且96khz的无数据流频率也消失了,我想问这是什么原因导致的呢

,

Amy Luo:

很高兴可以正常输出了。

Jade wu 说:发现不需要配置DAC的分频系数时钟也能正常输出,

具体指哪些配置?

再向您确认下,寄存器20 您配置的是0x80吗?

是什么原因促使您将ADC Singal Processing Block PRB_R1更改为ADC Singal Processing Block PRB_R7,我想了解下更改的原因

,

Jade wu:

是的,R14H的值是0x80,我最初是根据ADC高性能模式来配寄存器的,后来经过您的提醒我试了一下低功耗的,我发现有几个寄存器的值是不同的,我就一个一个的更改来确认看看有什么不同,奇怪的是,我更改到ADC Singal Processing Block所在寄存器的值的时候,dout波形出现了变化,后面经过多次测试,改为PRB_R7就没有了96khz的波形,所以我想问一下是什么原因造成的

,

Amy Luo:

Jade wu 说:发现不需要配置DAC的分频系数时钟也能正常输出,

您可以说明具体指哪些寄存器不需要配置吗?

Jade wu 说:是的,R14H的值是0x80,

您这里是指R20是0x80是吗? 因为R20配置为0x80的话,即设置AOSR值是128,我之所以这样问是 因为PRB_R7 不支持AOSR为128,而您设置的AOSR是128

,

Jade wu:

但的确是128的值,dout才没有96khz的波形,按照这么来看,我的寄存器配置也还是有点问题的

,

Jade wu:

我试过改成64的,但是dout的波形就会出现96kHz的波形

,

Jade wu:

AIC3204_WriteReg(0x00,0x00); AIC3204_WriteReg(0x01,0x01); AIC3204_WriteReg(0x12,0x81); AIC3204_WriteReg(0x13,0x84); AIC3204_WriteReg(0x14,0x80); AIC3204_WriteReg(0x19,0x00); AIC3204_WriteReg(0x1b,0x3c); AIC3204_WriteReg(0x1d,0x06); AIC3204_WriteReg(0x1e,0x88); AIC3204_WriteReg(0x21,0x5c); AIC3204_WriteReg(0x3d,0x07);

AIC3204_WriteReg(0x00,0x01); AIC3204_WriteReg(0x01,0x08); AIC3204_WriteReg(0x02,0x00); AIC3204_WriteReg(0x0a,0x40); AIC3204_WriteReg(0x3d,0x00); AIC3204_WriteReg(0x47,0x32); AIC3204_WriteReg(0x7b,0x01); AIC3204_WriteReg(0x34,0x80); AIC3204_WriteReg(0x36,0x80); AIC3204_WriteReg(0x37,0x80); AIC3204_WriteReg(0x39,0x80); AIC3204_WriteReg(0x3b,0x0c); AIC3204_WriteReg(0x3c,0x0c); AIC3204_WriteReg(0x00,0x00); AIC3204_WriteReg(0x51,0xc0); AIC3204_WriteReg(0x52,0x00);

这是目前dout能输出波形且没有96kHz的寄存器配置,现在这个没有DAC的分频系数寄存器也可以有WCLK的正常输出的

,

Jade wu:

我想问一下,您说的不支持是代表什么意思呢,是说配置了128是不能正常工作吗,还是其他的?

而且我发现我把R20这个寄存器配置为B或C类抽取滤波器的时候,dout是有输出的,而A类则没有,AOSR均为128

,

Jade wu:

经过多次试验,我发现配置的NADC,MADC,AOSR,ADC Singal Processing Block这四个寄存器的值之间有一个关系,就是NADC,MADC,AOSR这三个配置正确后,ADC Singal Processing Block的滤波器类型要降一级,但此时AOSR的值不能改变,dout才会有正常输出,不然全部按照说明书上的来配置,dout根本就没办法有正常的输出,我不知道是什么原因造成的

,

Amy Luo:

您这个现象真的很奇怪,我想知道您测试几块板子是这种现象?测试的板子都是这种现象吗?

,

Amy Luo:

Jade wu 说:这是目前dout能输出波形且没有96kHz的寄存器配置,现在这个没有DAC的分频系数寄存器也可以有WCLK的正常输出的

您的意思是上面寄存器配置ADC 可以正确采集音频信号?

,

Jade wu:

可以采集到音频信号,但具体效果还不知道,我正在搭建后面的框架程序试图去看效果

,

Amy Luo:

Jade wu 说:可以采集到音频信号,但具体效果还不知道,我正在搭建后面的框架程序试图去看效果

好的,等待您的测试结果;

我想知道您测试几块板子是这种现象?测试的板子都是这种现象吗?您可以告诉我吗?

,

Jade wu:

只有一块开发板,但换了几颗芯片,都是一样的现象

,

Amy Luo:

好的,先等您后续采集音频信号的测试效果吧

赞(0)
未经允许不得转载:TI中文支持网 » TLV320AIC3204: 我配置了ADC的寄存器,只有BLCLK,WCLK的频率是对的,在示波器上看到的DOUT波形是96hz的波形,不知道是哪里配置错了
分享到: 更多 (0)