PCM1863为何通过I2C无法读取到寄存器值?返回值总是00
但是写成功,声音正常。
不知道有没有遇到同样的问题的朋友?
请不要怀疑I2C驱动写的是否正确。挂在同一总线上的EEPROM读写都是可以的。
william qin:
主要是遇到一个问题,设备开机后有一定概率的一个声道没声音,一个声道正常。
当遇到异常时,再初始化一遍就好了。
所以在异常时我想要读取寄存器的值出来看看是什么问题,但读出来总是00.
Maksim Liu:
回复 william qin:
你好,你是所有的寄存器都无法读取,还是某个寄存器无法读取?如果是某一个寄存器,请告知我是哪一个寄存器,另外该寄存器是否可写?
谢谢。
Kailyn Chen:
读的时候发送一个repeat start 条件进行读。
也就是说读时序是这样的(比如要读取寄存器A中的B数据):
Start–7bit slave address+write bit–ACK—registerA –ACK—repeat start—7bit slave address+read bit—ACK—data B–NACK–Stop
Maksim Liu:
回复 william qin:
您是否确认确实是可以写寄存器了?建议更改一些寄存器的配置,确认一下是否能写。一般来说能写就一定能读了。
另外就是向Kailyn说的,确认一下读写的指令。