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

CODEC

如题,现在用DSP的I2C接口配置CODEC芯片的寄存器,CODEC的型号为TVL320AIC12K,现在将CODEC芯片配置成从机模式,I2C写数据给寄存器,CODEC芯片也有应答,但读出寄存器的数据显示为默认值,说明没写进去,这是怎么回事?假如要求CODEC芯片本身输出FS和SCLK信号,务必得将CODEC配置成主机模式,但配置为主机后,I2C写数据CODEC没应答,没法配置寄存器!望各位大神帮忙

user151383853:

I2C 写数据给寄存器没写进去,这是怎么回事? 检查时序吧, 特别是看看它的应答是否正常.

配置成主机后, 从机并不能主动向主机发指令了

Roman Wang:

Hi Xinlu,

先将I2C与I2S分开来分析,首先是解决I2C寄存器不成功的问题, 最好是分析I2C的波形,比如写入某一个寄存器,是否有正常的ACK.

另要求AIC12K为I2S的主模式,叫I2C的从模式是两回事.

congcong cao:

您好,请问您解决这个问题了吗?我们现在采用MSP430进行I2C控制,也遇到同样的问题,I2C能写数据给寄存器,但是读取后还是寄存器的默认值?您能分享一下您的解决方案吗?

congcong cao:

回复 Roman Wang:

您好,我也遇到和题主一样的问题,我使用MSP430F5529与AIC12K进行配置,430是主机,AIC12K是从机,首先430对某个寄存器写入数据,这中间都能正常收到ACK信号,写完寄存器之后重新对该寄存器进行读取,发现还是初始化的值,请问这是什么原因呢?

   当前程序的逻辑如下:

     1、设置MSP430为主机

     2、 设置MSP430为发送模式,发送起始位,发送需要操作寄存器的地址,发送改写的值,发送停止位。

     3、 设置MSP430为接收模式,发送起始位,接收收到的第一个数据。发现收到的数据为该寄存器的初始值。

还有问题是单独发送寄存器的index地址,改变需要读写的寄存器的地址,发现没有用,该测试如下:

 

     1、设置MSP430为主机

     2、 设置MSP430为发送模式,发送起始位,发送需要操作寄存器的地址,发送改写的值,发送停止位。

     3、 设置MSP430为发送模式,发送起始位,仅仅发送需要读取的第二个寄存器的地址,发送停止位。

     3、 设置MSP430为接收模式,发送发送起始位,接收收到的第一个数据。

       发现收到的数据仍然为第一个寄存器的初始值。

赞(0)
未经允许不得转载:TI中文支持网 » CODEC
分享到: 更多 (0)