目前我是写一个寄存器就读该寄存器的值,利用示波器查看,单片机SPI有发送数据给ADS1247,但是ADS1247发回的数据都为0xFF,那样表明通讯不正常,请问有无其他比较好的方法去验证是否通讯正常?SPI总线通讯是SCL空闲是低电平,在下降沿时采样!谢谢!
Xi Lin4:
建议可以先用单片机读取内部寄存器的默认值,先确定SPI读功能是否正常。
jesse yang1:
回复 Xi Lin4:
一开始没注意,DVDD,AVDD都接了3.3V,但是通信引脚接了5V单片机IO,不知会不会烧坏了!我是先写ADS_MUX0寄存器,然后读取ADS_MUX0,结果返回的值都为0xFF
jesse yang1:
回复 Xi Lin4:
直接读取ADS_MUX0寄存器,还是返回0xFF
jesse yang1:
回复 Xi Lin4:
还是不正常,直接读取ADS_MUX0,返回的数据为0xFF
Xi Lin4:
回复 jesse yang1:
你是指芯片的SPI是3.3V的IO电平,直接接到单片机的5V GPIO吗?
jesse yang1:
回复 Xi Lin4:
是的!
Xi Lin4:
回复 jesse yang1:
根据数据手册,这样连接会对芯片造成损坏的。
另外3.3V的IO无法驱动5V的IO。所以也会影响通信的。
jesse yang1:
回复 Xi Lin4:
上面的图我也看了,只是想确定一下,谢谢!但是现在我另外焊好了一块板,确定是IO电平也是3.3V,请问每发一个SPI的数据(比如这条语句:ADS1247_WriteByte(ADS_RREG | regName);)给ADS1247,那是不是都会返回一个数据包?我用示波器在SOUT引脚上,都能看到有数据输出!谢谢!
jesse yang1:
回复 Xi Lin4:
通讯方面已经调通了,我用旧版去试,发现返回的数据还是对的,所以说:当DVDD接3.3V时,IO引脚不会因为直连接5V单片机的IO引脚而烧坏!
user5943637:
回复 jesse yang1:
您好,我现在也是遇到测试SPI通讯时候,读取ADS的寄存器的默认值,打印出来的值要么是0 要么是255也就是0xFF,我可以请教一下您是怎么解决之前的问题的吗?