发新帖我要提问
12
返回列表
打印

SPI接口问题

[复制链接]
楼主: crazy2012
手机看帖
扫描二维码
随时随地手机跟帖
21
配置为主机时:MOSI为输出,MISO为输入;配置为从机时:MOSI为输入,MISO为输出,所以A图解法是对的

使用特权

评论回复
22
crazy2012|  楼主 | 2013-8-17 14:02 | 只看该作者
NE5532 发表于 2013-2-24 22:56
不是网上所有东西都是正确的,判断的愿意我已经给你说了,要学会根据是否有道理来判断谁对谁错,要不然会 ...

受教了。

使用特权

评论回复
23
dqgcjude| | 2013-12-8 23:33 | 只看该作者
路过 A图正确

使用特权

评论回复
24
星辰yyt| | 2013-12-9 16:02 | 只看该作者
第一个问题:A图正确,MOSI就是主机输出从机接收的意思。
第二个问题:单片机与NRF24L01连接,单片机永远是主机,NRF24L01是从机,接收数据时,需要也是单片机主模式去读写NRF24L01相关的寄存器将其配置成接收模式接口即可。
第三个问题:从机想要发数据,也是需要主机提供时钟的,所以没有主机提供的时钟,从机是不能主动发送数据的。

使用特权

评论回复
25
wlgazxm| | 2014-4-3 09:59 | 只看该作者
NE5532 发表于 2013-2-24 16:44
前两个理解都是错的,SPI总线,谁发时钟谁就是主机,从机只能在时钟的驱动下工作。MOSI=MASTER OUTPUT SLAV ...

太好了,我也正在苦恼这个问题,看了你的回复现在解决了,谢谢了!

使用特权

评论回复
26
kmani| | 2014-4-5 23:17 | 只看该作者
两个常见芯片的datasheet里面分别是A图、B图接法。
这让我十分疑惑,到底该怎么搞。

B图依据.JPG (15.44 KB )

B图依据.JPG

A图依据.JPG (22.47 KB )

A图依据.JPG

使用特权

评论回复
27
kmani| | 2014-4-5 23:27 | 只看该作者
本帖最后由 kmani 于 2014-4-6 00:22 编辑
NE5532 发表于 2013-2-24 16:44
前两个理解都是错的,SPI总线,谁发时钟谁就是主机,从机只能在时钟的驱动下工作。MOSI=MASTER OUTPUT SLAV ...

你好,版主。
我认为就楼主给的图上标的而言,B图是正确的。因为他那是两个单片机,而非一个单片机和一个从器件。

自己浅见:当是两个单片机的时候,需要交叉连接也就是图B,对应连接MISO~MOSI、MOSI~MISO。
                  当一个是单片机一个是从器件比如MS5611,对应连接 MISO~SDO、MOSI~SDI。

其实本质上还是交叉连接的只要因为引脚标的问题,比如MISO,是主器件输入,和他对应的必须是输出脚MOSI或者SDO。
不同情况下接法不一样,所以有的认为A正确,有的则实践过说B正确。
希望自己的理解是正确的,因为我在画电路图,要是错了,那就麻烦了

事情总是不是那么一帆风顺,我找到了跟自己看法相反的接线图,这下我更矛盾了....

捕获.JPG (18.07 KB )

捕获.JPG

使用特权

评论回复
28
yubsh| | 2014-4-6 14:24 | 只看该作者
ATMEL网站上TWI总线的**,详细讲了用法,还有例程。

使用特权

评论回复
29
wuzx-61| | 2014-4-6 15:04 | 只看该作者
做个实验调试一下就出来.

使用特权

评论回复
30
NE5532| | 2014-4-8 08:30 | 只看该作者
kmani 发表于 2014-4-5 23:27
你好,版主。
我认为就楼主给的图上标的而言,B图是正确的。因为他那是两个单片机,而非一个单片机和一个 ...

不用去纠结,直接看他的手册描述,哪个输出哪个输入就可以了。

使用特权

评论回复
31
fushaobing| | 2014-4-9 14:59 | 只看该作者
SPI通讯一定是Master,Slave方式。
在B图中,MOSI接MISO。Master Output 接Slave Output, 两边都是输出,怎么通信?
B图一定是错误的。

同意9楼。
“标明MOSI与MISO的一定是A图的接法
标明SO与SI的很可能是B图的接法
你参考的那篇**确实有问题”

也同意7楼。
“不是网上所有东西都是正确的,判断的愿意我已经给你说了,要学会根据是否有道理来判断谁对谁错,要不然会迷茫的。”

使用特权

评论回复
32
fushaobing| | 2014-4-9 15:46 | 只看该作者
第二个问题:
没用过NRF24L01,但是用过NRF24AP2。 它以SPI方式与单片机通信时,单片机必须配置为从机,不管你是用来做发射端还是接收端。NRF24AP2与单片机的连接除了SCLK,SIN,SOUT,还有两个握手信号线,分别是AP2输出到单片机和单片机输出到AP2。所以,无论是主机还是从机,都可以通过拉低握手信号线,主动发起数据通信。不是说只能由主机发起数据通信。主机只是在通信中提供同步的时钟信号。
对于NRF24L01应该设置为主机还是从机,你应该去看它的datasheet.

第三个问题: 上面已经说了。从机也可以发起数据通信。但是需要额外的握手信号。我发个图片给你参考一下。

使用特权

评论回复
33
fushaobing| | 2014-4-9 15:49 | 只看该作者
图片在这里。

未命名.JPG (15.35 KB )

未命名.JPG

使用特权

评论回复
34
夙最| | 2016-1-18 14:44 | 只看该作者
学习了   我也很迷糊呢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则