打印

如何实现4位SPI从接口的数据传送

[复制链接]
3911|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
aolin|  楼主 | 2009-7-14 16:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
ayb_ice| | 2009-7-14 20:24 | 只看该作者

软件模拟

好多硬件SPI也支持4位格式

使用特权

评论回复
板凳
lnskngdc| | 2009-7-14 20:39 | 只看该作者

用io加延时模拟

使用特权

评论回复
地板
aolin|  楼主 | 2009-7-14 22:37 | 只看该作者

软件模拟不可取

软件模拟SPI,只能模拟主模式,地球上会单片机的人都懂,但用普通MCU软件模拟SPI从模式,即使你说你能模拟,我也不相信你的软件能可靠工作,因为一般SPI的时钟周期只有几个US而已。
从模式只能用硬件SPI,但现在的SPI都是8位的,怎么让它收4位就完成呢,这个才是正道。

使用特权

评论回复
5
古道热肠| | 2009-7-15 10:30 | 只看该作者

实在不行,用硬件做个接口

每接收4个CLK后送中断给单片机,取数.清标志,等待下一个4位的数据传送过来.

使用特权

评论回复
6
aolin|  楼主 | 2009-7-15 13:04 | 只看该作者

现在的想法

就采用现在流行的带SPI接口的MCU,让SPI工作于从模式,检测SPI时钟脉冲个数,当收到4个脉冲时,由MCU自己补足另外4个脉冲,以便SPI接口完成一次完整接收。
这个方法应该可行!

使用特权

评论回复
7
古道热肠| | 2009-7-16 10:21 | 只看该作者

楼上的想法,感觉不行,SPI模块似乎无法这样控制的.

使用特权

评论回复
8
aolin|  楼主 | 2009-7-17 18:01 | 只看该作者

通讯部分已经成功实现

通讯部分已经成功实现,并仿真通过:
仿真原理图:MCS51是主器件(就是那个用4-BIT SPI做显示的老设备),MEGA16是带SPI接口的AVR MCU。


通讯波形:
第1路是SDIS
第2路是SCK
第3路是SDAT
第4路是ACK
其中在SCK波形中,每个通讯字节的前面4个脉冲是主器件产生发送出来的,后面4个是从器件自己补上的。

使用特权

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

本版积分规则

101

主题

396

帖子

2

粉丝