大家好,
我们在TLV320ADC3101的实验中遇到了一些意外情况。
我们正在尝试从TLV320ADC3101获取立体样片,作为I2S从属设备。 主设备的MCLK为12.8MHz,计划采样速率为50ksps。 根据我们的理解和提供的时钟工具,这可以通过简单的时钟划分来实现。 我们选择MCLK作为ADC_CLKIN输入,并设置NADC=1,mAdc=2,AOSR=128。 50kHz WCLK和3.2MHz BCLK也由主设备生成并连接到CLK引脚。 所有时钟信号都已通过示波器验证,但我们在DOUT引脚上只得到了无效的数字,如032767,-3.2768万,...。
我 已经检查了参数组合的种类。 有趣的是,当mAdc设置为3或4时,我们可以获得读数, 得到的数据在某种程度上是合理的,除了mAdc=4,每个采样点重复一次(A A B B C D ...),当mAdc=3时,重复问题每隔一个数字(A B B C D ...)发生。 我认为这可以验证PCB上的硬件连接,重复问题是由于时钟速度不够快造成的。 但是当我设置mAdc=2时,无法从DOUT获得有效的数字。
有人能给我们一些关于这个问题的提示 吗?我们如何解决这个问题? 谢谢。
附注:寄存器是根据 数据表上的示例设置的。
//第0页:
{0x00,0x00};//选择第0页;
{0x04,0x00};// MCLK作为PLL CLKIN和编解码器
//{0x05,0x11};// PLL向下,P = 1,R = 1; (未使用)
//{0x06,0x04};// PLL J = 16; (未使用)
//{0x07,0x00};// PLL D-Val MSB = 0; (未使用)
//{0x08,0x00};// PLL D-Val LSB = 0; (未使用)
{0x12,0x81};// NADC通电,N=1
{0x13,0x82};// mAdc通电,M=2;
{0x14,0x80};// AOSR = 128
{0x1B,0x00};//I2S,16位,BCLK输入, WCLK输入,禁用DOUT 3-state
{0x3D,0x01};//选择ADC信号处理块PRB_R1
//第1页
{0x00,0x01};//选择第0页;
{0x33,0x00};//未使用麦克风偏置
{0x3b,0x00};//左PGA = 0dB
{0x3c,0x00};//右PGA = 0dB
{0x36,0x0F};//左通道= IN1L (P)- IN1R (M)差分
{0x37,0x3f};//右通道= IN2R (P)- IN3R (M)差分
//第0页
{0x00,0x00};//选择第0页;
{0x51,0xC2};//打开两个ADC
{0x52,0x00};//取消静音音量控制并将微增益设置为0dB