久芯网

SPI读写Flash的理解

avatar Pure Tiger 提问时间: 2023-07-07 12:01:18 / 未解决

利用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吗?

SPI读写Flash的理解 [相关图片]

4个回答
  • avatar lemonboard
    回答时间: 2023-07-07 12:22:32

    [md]这个问题实现就是这样实现,但原理性解释就有点长了。 首先,SPI外设是同步外设,简单可理解为数据交互的时钟由主设备提供。 其次,基于主设备提供时钟,所以从设备在返回数据时,必须需要主设备提供时钟; 最后,主设备发送时钟的方式,与发送一个dummy数据的方式是相同的 结论:如代码所呈现的样子。 不知道楼主明白了吗? 还有疑问,再回帖即可

  • avatar butterflyspring
    回答时间: 2023-07-07 12:40:39

    简单讲,SPI是主从设备方式,只有主设备能发时钟,而从设备只能在主设备发的时钟时发送数据。 因此,主设备发送完成命令后,从设备收到解析并准备好回应数据,需要主设备再次发出时钟(主设备的数据是不关心了),才能将数据打到总线上,让主设备收到。

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

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

  • avatar butterflyspring
    回答时间: 2023-07-07 13:41:49
    ForestShy 发表于 2023-3-6 11:40
    主设备怎么知道从设备什么时候要发送数据从而发送时钟?

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

会员中心 微信客服
客服
回到顶部