SPI通信问题

[复制链接]
1818|7
 楼主| crazy2012 发表于 2014-1-16 19:49 | 显示全部楼层 |阅读模式
为什么在主机在向从机发送数据的时候,从机会把自己的数据寄存器里的数据移位到主机。



有必要这样么,我只需要主机给从机发送指令,不需要接收从机的指令。

这样设计有什么目的。





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
NE5532 发表于 2014-1-16 20:06 | 显示全部楼层
这样设计的目的是提高数据吞吐量,在8个时钟内可以完成“双向”的数据交换,你应该看的是ATMEL的资料,其实这个说法也不全对,仅限于部分情况下成立。比如主机发送“采样”命令给从机,从机肯定要收到命令后,采样完成才能把结果返回给主机,这样的通讯当然不可能“同时完成”。

很多SPI接口的芯片,例如RTC、EEPROM、FLASH都不可能在主机发送命令的时候就传输答案。

楼主如果不需要收从机的数据,只需要把发送以后当次收到的数据抛弃掉就可以了。
leehp 发表于 2014-1-16 22:21 | 显示全部楼层
2楼好厉害!
yhn1973 发表于 2014-1-17 09:24 | 显示全部楼层
比如说主机要向从机中写32字节,还要从从机中读32字节,先发送1个字节命令,在发送地址,然后再有32×8个时钟就可完成写32字节、读32字节,不然的话就得需要64×8个时钟,效率提高了将近1倍。
 楼主| crazy2012 发表于 2014-1-17 09:49 | 显示全部楼层
NE5532 发表于 2014-1-16 20:06
这样设计的目的是提高数据吞吐量,在8个时钟内可以完成“双向”的数据交换,你应该看的是ATMEL的资料,其实 ...

“如果不需要收从机的数据,只需要把发送以后当次收到的数据抛弃掉就可以了”

我是不是可以这样理解
比如我现在只需要主机发送数据给从机,不需要读取从机返回的数据,那么这样来说只需要接MOSI线,MISO就可以不用接了?
 楼主| crazy2012 发表于 2014-1-17 09:51 | 显示全部楼层
NE5532 发表于 2014-1-16 20:06
这样设计的目的是提高数据吞吐量,在8个时钟内可以完成“双向”的数据交换,你应该看的是ATMEL的资料,其实 ...

这个是ST MCU的参考手册上面的图,其他MCU很多也有。
NE5532 发表于 2014-1-17 09:58 | 显示全部楼层
crazy2012 发表于 2014-1-17 09:49
“如果不需要收从机的数据,只需要把发送以后当次收到的数据抛弃掉就可以了”

我是不是可以这样理解

可以。
ningling_21 发表于 2014-1-17 10:22 | 显示全部楼层
crazy2012 发表于 2014-1-17 09:49
“如果不需要收从机的数据,只需要把发送以后当次收到的数据抛弃掉就可以了”

我是不是可以这样理解

SPI接口是双向传输,不接MISO,就只能单向发送数据...
您需要登录后才可以回帖 登录 | 注册

本版积分规则

150

主题

939

帖子

9

粉丝
快速回复 在线客服 返回列表 返回顶部