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.

CODEC

Other Parts Discussed in Thread: MSP430F5529

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

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

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

  • Hi Xinlu,

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

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

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

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

       当前程序的逻辑如下:

         1、设置MSP430为主机

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

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

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

     

         1、设置MSP430为主机

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

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

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

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