硬件:请教CS5522芯片的读数 我现在设计了一块数据采集板,adc用的是24bit的CS5522,我按照SPI接口的编程方法,对
照cs5522资料上提供的时序,对CS5522中的配置寄存器进行读写操作,但是写入以后,立即读出
的结果与自己写进去的内容不一样。我的程序是按cs5522芯片资料里提供的对其操作的例程源代
码改写的,例如什么发送一个字节,接受一个字节,初始化等程序均是按照例程中源代码的逻辑
用c改写的。只不过在我自己的电路中,在cs5522与处理器之间,我加了光耦,而例程中没有光
藕,处理器是直接与cs5522接口的,这样,在编写读写程序的时候,每次片选,串行时钟变化,
和串行数据输入(对cs5522而言是输入),以及读去串行数据输出,我都加入了1ms的延时,以
避免由于光耦带来的延时(用示波器测看,从0v变为5v时有250uS的延时,当然,由于是TTL电
平,到2.4v时就会被认为是高电平)。对于,从处理器发出的高低电平,用万用表测量了,都能
引起CS5522相应管脚的正确的高低电平变化,但是读出来的数据总是不对,读出的数据也有高低
电平变化,而不只是0xff,或者0x00。用万用表测量cs5522的正负电源以及负偏电源均正确,
cs5522所需的32768Hz的晶振也振荡。
那位熟悉cs5522的高手,请帮帮我,告诉一下,读入数据和写入数据不一样的原因所在,
我真有点怀疑是芯片本身坏了。而我用的是贴片的cs5522,国内就北高智有样品,而仅有的3片
样品均被我们买回来了。现在已经用了两片,还剩一片,实在不敢冒然换芯片!
希望各位高手帮帮忙!