STM32和一个器件进行SPI通讯时,最后一位出错。
主设备是STM32F103,从设备是AD7193模数转换芯片,读取时不对,以下为读的波形的最后几位时对应的SCLK和MOSI波形。按说芯片应该是SCLK下降沿时MISO改变数据,SCLK上升沿时MISO采样。前边的波形都是这样的,就最后一位,SCLK上升沿时,MISO来了个正跳变。
怀疑是CS片选最后被拉高时,MISO也被拉高了,于是修改了下SPI读写函数,CS被拉低后,延时一段时间,再惊醒SPI读写,SPI读写结束后,延时一段时间CS再拉高。
结果,波形依旧。
把CS信号抓出来看看确认片选时序是正确的,另外确认SPI使用的模式是否正确... power568 发表于 2016-3-21 12:42
把CS信号抓出来看看确认片选时序是正确的,另外确认SPI使用的模式是否正确... ...
CS波形:
MISO波形:
MOSI波形:
SPI是标准接口还是模拟时序的?确认使用的SPI是那个模式? 软件模拟SPI的。
页:
[1]