你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

SPI读写Flash的理解

[复制链接]
Pure Tiger 提问时间:2023-3-4 23:17 / 未解决

利用SPI读写Flash指令的过程中,当主机发送指令后,为什么还需要再发送“任意的数据”,才能够获取指令解释后的返回值。

当读取Flash的JEDEC_ID指令时,按FLASH的ID指令时序图可知,得到的数据分别为:M7-M0,ID15-ID8,ID7-ID0。

问题1:主机给Flash发送JEDEC_ID指令以后,Flash内部会把JEDEC_ID指令解释成M7-M0,ID15-ID8,ID7-ID0,,那么这些数据也就应该时一并返回来的,为什么还需要再向FLASH发送其他的“任意数据”才能够读取该指令解释得到的数据,M7-M0,ID15-ID8,ID7-ID0???如图中所示

问题2:这样再发送数据过去,难道不会覆盖了JEDEC_ID指令得到的M7-M0,ID15-ID8,ID7-ID0吗?

11.jpg

收藏 评论4 发布时间:2023-3-4 23:17

举报

4个回答
lemonboard 回答时间:2023-3-5 08:15:00
[md]这个问题实现就是这样实现,但原理性解释就有点长了。

首先,SPI外设是同步外设,简单可理解为数据交互的时钟由主设备提供。

其次,基于主设备提供时钟,所以从设备在返回数据时,必须需要主设备提供时钟;

最后,主设备发送时钟的方式,与发送一个dummy数据的方式是相同的



结论:如代码所呈现的样子。

不知道楼主明白了吗?

还有疑问,再回帖即可
butterflyspring 回答时间:2023-3-6 09:49:43
简单讲,SPI是主从设备方式,只有主设备能发时钟,而从设备只能在主设备发的时钟时发送数据。
因此,主设备发送完成命令后,从设备收到解析并准备好回应数据,需要主设备再次发出时钟(主设备的数据是不关心了),才能将数据打到总线上,让主设备收到。
ForestShy 回答时间:2023-3-6 11:40:05

butterflyspring 发表于 2023-3-6 09:49
简单讲,SPI是主从设备方式,只有主设备能发时钟,而从设备只能在主设备发的时钟时发送数据。
因此,主设备 ...

主设备怎么知道从设备什么时候要发送数据从而发送时钟?

butterflyspring 回答时间:2023-3-6 11:54:38

ForestShy 发表于 2023-3-6 11:40
主设备怎么知道从设备什么时候要发送数据从而发送时钟?

从设备有响应时间,这个看规格书,一般纯硬件的都很快。 有些器件需要发命令查询状态,READY后才能读到数据。FLASH的是读写,所以操作频率不应该快与它的相应时间,就可以接着读。

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版