您好:我遇到一个棘手的问题:
在通过SPI接口读写ADS8331时,我发现,当我向CFR写入数据再读出来时,数据不一样了。是这么个情况,我写入一个值,再读出来,发现,读出来的数据右移一位,就是写入的数据。多次试验,都是这样。我觉得是读的问题。我手动转换通道,发现,ADCIN输入电压是四个通道来回变化的。
在我的设计中,ADS8331的参考电压采用了REF5040提供的4.096V的电压,而模拟电源的电压和数字电源的电压都是3.3V,这个会关系到数据读写不正常吗?
user151383853:
调试到深夜, 不容易啊. SPI 接口, 写入一个值,再读出来,发现,读出来的数据右移一位,就是写入的数据。
通常是时序问题, 或者是时钟触发边沿设置错了, 或者是时钟信号的初始电平错误(特别是软件模拟 SPI 接口时经常出现)
再验证一下时序吧
Zhang Lei:
回复 user151383853:
谢谢您的回答~最开始我是用MSP430的硬件SPI接口来做的,发现不行,于是就换成了软件模拟,结果还是一样。我参考了官方的例子,发现没什么区别啊,于是我想,是不是由于我的参考电压高于电源电压所致;而且,我的电路板上,SPI通信端口,从芯片引脚上出来的一小段线宽采用的8mil,然后剩下的部分我把它变成了15mil,这会不会导致阻抗问题?
JiaChuang Chen:
回复 Zhang Lei:
Zhang Lei1
谢谢您的回答~最开始我是用MSP430的硬件SPI接口来做的,发现不行,于是就换成了软件模拟,结果还是一样。我参考了官方的例子,发现没什么区别啊,于是我想,是不是由于我的参考电压高于电源电压所致;而且,我的电路板上,SPI通信端口,从芯片引脚上出来的一小段线宽采用的8mil,然后剩下的部分我把它变成了15mil,这会不会导致阻抗问题?