打印
[STM32F1]

软件模拟的SPI和硬件自带的SPI分别如何实现 单工 通讯?

[复制链接]
3420|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wpll|  楼主 | 2017-4-26 11:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
       一般我们使用的SPI都是4线的,全双工地通讯,但是要如何实现单工通讯呢?情况就是现在只有3根线,1根数据线,1根时钟线,1根片选线,软件模拟或者硬件自带的SPI如何实现单工通讯啊,只有一根数据线,发送数据之后要怎样进行及时接收数据呢??请大神帮帮忙,谢谢!
沙发
mmuuss586| | 2017-4-26 12:55 | 只看该作者
通讯部分可以参考单总线通讯;

及时接收,最好用硬件IO中断或加个系统去做;

使用特权

评论回复
板凳
Prry| | 2017-4-27 17:35 | 只看该作者
1、其实,不需要看单工还是双工通信,简单粗暴一点设为全双工都可以解决很多非标准spi的时序,最重要是学会看时序图。要么就2中情况:只发或者只收。
2、只发情况:这个简单,一个劲发就行了,比如spi的屏幕、spi的LED屏。
3、只收情况:这个一般是根据时钟相位来接收数据,如下图一个3线ADC时序图:(以硬件spi为例])
   1)最少需要22个时钟才可完整获取16位数据,那么我需要发送3个字(非真实发送,只是产生24个时 钟);
   2)时序从第六个时钟开始,为有效数据,最后2个时钟也为无效数据;
   3)接收完成,从spi的数据寄存器读出数据,把无效的位去掉即为有效数据。假设读到3个字节数据,获取      有效数据为:(((recv_buff[0] << 16) | (recv_buff[1] << 8) | recv_buff[2])>>2)。
   C:\Users\und\Desktop\QQ截图2017042717262

使用特权

评论回复
地板
Prry| | 2017-4-27 17:37 | 只看该作者
没法发图片?举例ADC为AD7684,可自己找相关手册查看时序图,参考链接http://www.ic37.com/AD/AD7684_datasheet_1245151/

使用特权

评论回复
5
Prry| | 2017-4-27 17:39 | 只看该作者

使用特权

评论回复
6
wpll|  楼主 | 2017-4-28 10:29 | 只看该作者
Prry 发表于 2017-4-27 17:39
这个有时序图http://www.ic37.com/AD/AD7684_datasheet_1245150/AD7684_5.html#view

学习了!谢谢!

使用特权

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

本版积分规则

2

主题

3

帖子

0

粉丝