OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2940|回复: 4

SPI通信的遗留问题求解,谢谢各位

[复制链接]

9

主题

46

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1131
金钱
1131
注册时间
2016-11-9
在线时间
97 小时
发表于 2020-4-4 11:23:59 | 显示全部楼层 |阅读模式
1金钱
最近想解决一下SPI遗留的问题,主要4个问题如下:
    1.SPI的4种工作模式,有什么不同,优缺点。
    2.SPI主机从机通讯时的时钟线SCK是由谁控制的?一直是主机?还是主机和从机在不同的时刻分别控制?
    3.如果从机器件的数据手册中写明4种模式都支持,那么主机设置后,从机是怎么知道现在是工作在哪种模式下的?
   (同时支持mode0和mode3,或同时支持mode1和mode2的从机,我认为可以通过空闲时的时钟就能判断工作在哪种模式,
      也就能正常的发送和接收数据了)
    4.我看到的从机一般都是支持mode0和mode3的,没见过全部支持的,也没见过同时支持mode0和mode1,或同时支持
      mode2和mode3的,如果大家使用过这样的器件,希望给我一份技术手册,感谢。

有会的朋友,希望能帮我解答一下,谢谢了。

最佳答案

查看完整内容[请看2#楼]

1, 没有优缺点,都是一样,只是不同厂家不同器件时序不一样,4个模式可以适配所有情况。 2, 从来都是主机。 3,一般不会4个模式都支持, 最多支持2个模式。 因为从机可以通过空闲的CLK信号来区分哪个模式。 4,同3
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2020-4-4 11:24:00 | 显示全部楼层
1, 没有优缺点,都是一样,只是不同厂家不同器件时序不一样,4个模式可以适配所有情况。
2, 从来都是主机。
3,一般不会4个模式都支持, 最多支持2个模式。 因为从机可以通过空闲的CLK信号来区分哪个模式。
4,同3
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

9

主题

46

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1131
金钱
1131
注册时间
2016-11-9
在线时间
97 小时
 楼主| 发表于 2020-4-5 16:12:18 | 显示全部楼层
正点原子 发表于 2020-4-4 11:24
1, 没有优缺点,都是一样,只是不同厂家不同器件时序不一样,4个模式可以适配所有情况。
2, 从来都是主 ...

非常感谢原子哥的回答,但是我对2一直是主机控制SCK有些疑问,如图是我示波器测量的图:
其中黄色的是SCK,紫色的是MOSI,蓝色的是MISO,这个图显示的时刻是,MOSI已经发完读数据命令,
从机正在回复数据,我画的第一个红线框是从机回复完第一个字节了,之后时钟空闲了(从图中看大概是空闲了半个周期(我画的第二个红框)),
之后从机开始回复第二个字节的数据,如果一直是主机控制SCK,那么主机怎么知道从机后续还有没有继续要回复的字节呢?主机怎么能控制SCK在从机回复下一个
字节时拉低SCK呢?
123.PNG
回复

使用道具 举报

9

主题

46

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1131
金钱
1131
注册时间
2016-11-9
在线时间
97 小时
 楼主| 发表于 2020-4-6 11:11:51 | 显示全部楼层
学习阶段 发表于 2020-4-5 16:12
非常感谢原子哥的回答,但是我对2一直是主机控制SCK有些疑问,如图是我示波器测量的图:
其中黄色的是SC ...

我明白了,因为我这个图是mode3时的图,我测量了mode0的图就没有这个了。
但是我还是有个疑问,主机是怎么知道从机回复完最后一个数据的呢?主机怎么就知道
该控制SCK进入空闲了呢?而不是继续产生时钟信号呢?
回复

使用道具 举报

9

主题

46

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1131
金钱
1131
注册时间
2016-11-9
在线时间
97 小时
 楼主| 发表于 2020-4-11 11:22:15 | 显示全部楼层
学习阶段 发表于 2020-4-6 11:11
我明白了,因为我这个图是mode3时的图,我测量了mode0的图就没有这个了。
但是我还是有个疑问,主机是怎 ...

我应该是知道,主机是怎么知道从机回复数据字节数和控制时钟SCK的了。
主机通过发送无用字节0xFF来维持SCK的产生。
主机需要从机回复几个数据,就发送几个无用数据,主机控制从从机获取多少个数据。
SPI1_ReadWriteByte(0XFF);  
感觉这样理解是对的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-25 00:11

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表