打印
[ZLG-ARM]

关于LPC2148的SPI问题

[复制链接]
1520|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
channyv|  楼主 | 2007-4-28 21:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我对LPC2148的SPI通信有几个疑惑:1。在主机发送给从机数据的同时从机也会返回同样长度的数据给主机,但从机返回的数据内容是什么,表示什么呢。2。现我用两片LPC2148作SPI通信,一主一从,我想建立一个SPI通信的握手机制,即主机发送一个字节数据后,从机收到后应答主机,主机接收到应答后再发送下一个数据给从机,是不是数据的发送只能由主机引起(即只有主机发送数据给从机的同时从机才能发数据给主机),不能让从机也像主机那样发送数据,如果我想建立上述的握手机制,应该怎么做呢,恳请高手指点

相关帖子

沙发
zlgARM| | 2007-4-28 21:50 | 只看该作者

channyv

为了便于理解,我们可以把主机看成是操作者,把从机是一个FLASH芯片。


那么。
1、从机何时返回数据给主机
这是由从机的时序决定的。有的从机是主机给数据的同时就返回数据,有的则不是。

2、数据的发送只能是主机发起吗?
没错。Flash能主动发数据给主机吗?不行,必须主机按照FLASH的时序要求提供时钟信号和正确的命令字,FLASH才能返回主机要读的数据/

3、您说的握手机制
从机如何以及何时应答主机,是由其时序规定决定的。而不是你决定的。

使用特权

评论回复
板凳
channyv|  楼主 | 2007-4-29 00:14 | 只看该作者

多谢周工的回答

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

使用特权

评论回复
地板
zlgARM| | 2007-4-29 07:39 | 只看该作者

channyv

关键还是从机的时序!要从从机的角度去考虑,而不是主机。主机怎么发数据是要看从机的时序的。

发送多少位的数据给从机也好,关键是从机能否接收到这些位,所以问题还是绕到从机的时序上去了。

建议您找来SST25VF016B的用户手册看一看,看看它是如何接收3个字节的数据,在这种情况下,SPI主机根据其时序要求连续发了24位的数据。
也可以看看它是如何返回数据的。

使用特权

评论回复
5
dreambird| | 2007-4-29 13:28 | 只看该作者

当zlg的支持真累:(

使用特权

评论回复
6
mydearm| | 2007-8-28 14:28 | 只看该作者

弄不清!

在主机发送给从机数据的同时从机也会返回同样长度的数据给主机,但从机返回的数据内容是什么,表示什么呢?这个问题ZLGARM好象还没有回答!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

12

帖子

0

粉丝