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

TLV320AIC3106 左右声道区分问题

用的创龙C6748例程控制AIC3106,无论怎么配置,LEFT_LOP/M和RIGHT_LOP/M输出完全一样,输出等于DAC_L和DAC_R的叠加。把所有的相关寄存器都试过一直没法分开。

怎么配置才能实现左右声道分开,左声道输出DAC_L,右声道输出DAC_R,谁以前成功分开左右声道,讲一下应该配置哪些寄存器?

下面是我的配置:

// 左右声道 DACs 上电
I2CRegWrite(baseAddr, AIC31_P0_REG37, 0xE0);

// 配置DAC的datapath
I2CRegWrite(baseAddr, AIC31_P0_REG7, 0x0A);

// 选择 DAC L1 R1 路径
I2CRegWrite(baseAddr, AIC31_P0_REG41, 0x50);
I2CRegWrite(baseAddr, AIC31_P0_REG42, 0x6C);

// LEFT_LOP/M 输出
I2CRegWrite(baseAddr, AIC31_P0_REG86, 0x09);
// RIGHT_LOP/M 输出
I2CRegWrite(baseAddr, AIC31_P0_REG93, 0x09);

// 设置 DAC 衰减
I2CRegWrite(baseAddr, AIC31_P0_REG43, dac_atten);
I2CRegWrite(baseAddr, AIC31_P0_REG44, dac_atten);

Amy Luo:

您好,
您输入的音频信号是通过I2S输入的吗,I2S传输的是左右声道的数据,如果音源数据是一样的或者立体声的,左右声道靠人耳听声音基本差不多。

user5922973:

回复 Amy Luo:

我用I2S给左声道500HZ正弦波,右声道5kHZ正弦波,输出结果在示波器上显示,左右声道输出轨迹完全重合,都是这两种正弦波的叠加。

关掉其中一个DAC,相应那一路的正弦信号就没了,比如关掉DAC_L,输出就是5k正弦波,但是左右声道都有输出并且完全一样。

user5922973:

有人有立体声配置寄存器的代码吗

Amy Luo:

回复 user5922973:

看数据手册16页框图,感觉不应该这样,读一下REG41的值看看有没有改变呢

user5922973:

回复 Amy Luo:

用I2CRegRead指令读reg40得到的值是给reg41设的值,应该是读指令不对,写操作控制输出音量是没问题的

Amy Luo:

回复 user5922973:

为什么用reg40的值设定reg41的值呢?是reg41控制左右DAC输出路径,读一下REG41的值是为了验证0x50是否写进去了

user5922973:

回复 Amy Luo:

我是说 I2CRegRead 这条指令可能有问题,直接用这条指令读寄存器的值都是 regAddr+1 的寄存器的值,实际上0x50是写成功的,DAC_L/R 1/2/3 path都可以控制

LIOU JB:

回复 user5922973:

user5922973:

您的这段话,真是惠我良多!感谢!

LIOU JB:

回复 LIOU JB:

以logical analysis来看才会真相:

写0 到reg 2

写0x20 到reg 3

但读出来要从reg 1开始:

才会读到你刚才写入的值

赞(0)
未经允许不得转载:TI中文支持网 » TLV320AIC3106 左右声道区分问题
分享到: 更多 (0)