SPI小问题

2019-08-14 01:22发布

硬件SPI,当数据输出的时候要上升沿,数据接受的时候要下降沿怎么办(发完以后马上就要收,所以感觉不能马上变化时序),该怎么处理?
SPI.jpg

我看历程的时候,它直接没变,模式依然也是上升沿有效,但是是对的,我想问下这是为什么?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
xuande
1楼-- · 2019-08-14 03:08

你没有理解SPI的机制。
时钟始终都是主机发出的,这一点很重要。

如果主机要发送,一切边沿都是自己在控制,
它一定是在输出数据、并且数据稳定之后,才发出边沿信号通知从机接收,并且预留足够的时间;

如果主机要接收,边沿同样是主机在控制,
如果主机在某个边沿接收数据,意味着:在此边沿的前面一个边沿,子机已经把数据放在数据线了。所以,这两个边沿必然是相反的。

自己理一理。


SNEZSTM32
2楼-- · 2019-08-14 05:39
 精彩回答 2  元偷偷看……
SNEZSTM32
3楼-- · 2019-08-14 09:53
结论是不是发送和接受的边沿总是反的
来俩不甜的
4楼-- · 2019-08-14 15:36
读数据要在下降沿,发数据在上升沿。有啥冲突的吗?
SNEZSTM32
5楼-- · 2019-08-14 18:44
来俩不甜的 发表于 2017-9-11 16:05
读数据要在下降沿,发数据在上升沿。有啥冲突的吗?

没冲突,我只是觉得数据有效都是一个边沿,感觉也没有问题,因为我感觉MISO MOSI是两条线,互不干扰。
不太明白为什么一个边沿是读,一个边沿是写
shuaigew88
6楼-- · 2019-08-14 20:17
SPI通讯可以配置成4种模式,时钟空闲为0、时钟空闲为1(这两个不是很重要)、数据在时钟上升沿采样、数据在时钟下降沿采样。主机应该配置成哪种模式完全由从设备来决定。如果从设备的时钟有效是上升沿的话那么就表示从机是在主机的时钟上升沿到来后即采样主机MOSI上的数据同时从机会在此时从miso管脚发送一位数据,比如从机在时钟的上升沿采样那么具体的操作就是:

SPI_SCK =0;  //主机拉低时钟线,主从双方都将准备发送数据
SPI_MOSI =x;  //主机将数据放置发送数据总线,此时从机也准备将数据放在MISO管脚等待时钟上升沿
SPI_SCK =1; //在时钟上升沿后从机采样主机MOSI上的数据同时在MISO数据线上发送一位数据给主机
m =SPI_MISO; //主机采样从机发送的数据

应该是这样了。

一周热门 更多>