[ZLG-ARM] 关于LPC2148的SPI问题

[复制链接]
 楼主| channyv 发表于 2007-4-28 21:36 | 显示全部楼层 |阅读模式
我对LPC2148的SPI通信有几个疑惑:1。在主机发送给从机数据的同时从机也会返回同样长度的数据给主机,但从机返回的数据内容是什么,表示什么呢。2。现我用两片LPC2148作SPI通信,一主一从,我想建立一个SPI通信的握手机制,即主机发送一个字节数据后,从机收到后应答主机,主机接收到应答后再发送下一个数据给从机,是不是数据的发送只能由主机引起(即只有主机发送数据给从机的同时从机才能发数据给主机),不能让从机也像主机那样发送数据,如果我想建立上述的握手机制,应该怎么做呢,恳请高手指点
zlgARM 发表于 2007-4-28 21:50 | 显示全部楼层

channyv

为了便于理解,我们可以把主机看成是操作者,把从机是一个FLASH芯片。<br /><br /><br />那么。<br />1、从机何时返回数据给主机<br />这是由从机的时序决定的。有的从机是主机给数据的同时就返回数据,有的则不是。<br /><br />2、数据的发送只能是主机发起吗?<br />没错。Flash能主动发数据给主机吗?不行,必须主机按照FLASH的时序要求提供时钟信号和正确的命令字,FLASH才能返回主机要读的数据/<br /><br />3、您说的握手机制<br />从机如何以及何时应答主机,是由其时序规定决定的。而不是你决定的。
 楼主| channyv 发表于 2007-4-29 00:14 | 显示全部楼层

多谢周工的回答

当主机向从机发送数据时,一次发送8位或16位的数据,我在这里把它看作一个数据包,我想实现数据包传输的同步,按照您上面的讲解只有通过控制主机发送数据包的频率来实现,即是在主机发送一个数据包后,作一定的延时再发下一个包,这样才会避免主机发送数据包的频率过快而造成从机接收数据错误,我想请问一下这是不是解决SPI数据包收发同步的唯一方法,如果还有其他方法,应该如何处理,谢谢
zlgARM 发表于 2007-4-29 07:39 | 显示全部楼层

channyv

关键还是从机的时序!要从从机的角度去考虑,而不是主机。主机怎么发数据是要看从机的时序的。<br /><br />发送多少位的数据给从机也好,关键是从机能否接收到这些位,所以问题还是绕到从机的时序上去了。<br /><br />建议您找来SST25VF016B的用户手册看一看,看看它是如何接收3个字节的数据,在这种情况下,SPI主机根据其时序要求连续发了24位的数据。<br />也可以看看它是如何返回数据的。
dreambird 发表于 2007-4-29 13:28 | 显示全部楼层

当zlg的支持真累:(

  
mydearm 发表于 2007-8-28 14:28 | 显示全部楼层

弄不清!

在主机发送给从机数据的同时从机也会返回同样长度的数据给主机,但从机返回的数据内容是什么,表示什么呢?这个问题ZLGARM好象还没有回答!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

12

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

8

主题

12

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部