OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 22200|回复: 8

SPI三线制 四线制求教

[复制链接]

5

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2012-7-21
在线时间
1 小时
发表于 2012-7-21 09:47:12 | 显示全部楼层 |阅读模式
SPI三线制和四线制在硬件连接上有什么不同的地方?
在用io口模拟spi时的发送指令数据代码上有什么不同?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

11

主题

1044

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3722
金钱
3722
注册时间
2011-5-23
在线时间
2013 小时
发表于 2014-10-17 10:45:15 | 显示全部楼层
这里所说的3线性并不是说没有SPI,而是没有 RS 或叫  DC  线,用数据位来表示数据还是命令,因此数据是9位。
只是,哪来的9位SPI硬件? 还是简单点用4线吧。
不然就用IO模拟,不能用硬件SPI和DMA。

区别于一般说的4线,这里的4线是指   CS  RS  SCK  MOSI,OLED没有回读功能,所以没有MISO。
3线则是 CS  SCK  MOSI(1bit DC + 8bit DATA = 9bit)

常规的4线是说  CS  SCK  MOSI MISO
RT-Thread RTOS 音频,WIFI,蓝牙
回复 支持 3 反对 0

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-7-21 10:16:15 | 显示全部楼层
就是有无片选的区别吧.
无片选的话,你整个SPI,只能给一个设备用.
有的话,可以多个设备共用一个SPI.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

5

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2012-7-21
在线时间
1 小时
 楼主| 发表于 2012-7-21 10:42:39 | 显示全部楼层
回复【2楼】正点原子:
就是有无片选的区别吧.
无片选的话,你整个SPI,只能给一个设备用.
有的话,可以多个设备共用一个SPI.
---------------------------------
在连接SSD1322的时候,用的是三线制的,
模拟SPI的io口输出高低电平检测出来是对的,但是oled点不亮
这个是发送指令和数据函数
void OLEDWriteCommand(unsigned char CommandValue)
{
   unsigned int CommandNum;
    CS0();
DelayUs(1);
//D_C0();
DelayUs(1);
for(CommandNum=0;CommandNum<8;CommandNum++)
{
if(CommandValue&0x80) SDIN1();
else SDIN0();
CommandValue<<=1;

SCLK0();
DelayUs(1);
SCLK1();
DelayUs(1);
}
    CS1();
//D_C1();
}
代码上有什么问题吗?
回复 支持 反对

使用道具 举报

5

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2012-7-21
在线时间
1 小时
 楼主| 发表于 2012-7-21 11:03:28 | 显示全部楼层
回复【3楼】qyanqin:
---------------------------------
soga,三线制的要发送9位,第一位要先发送D/C#位,然后是D7到D0这八位,问题未解决完,继续调试中。。。
回复 支持 反对

使用道具 举报

5

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2012-7-21
在线时间
1 小时
 楼主| 发表于 2012-8-3 15:59:00 | 显示全部楼层
回复【4楼】qyanqin:
---------------------------------
看来要用软件模拟spi,代码还是要根据不同IC的时序进行不同的编写,时序图很重要
回复 支持 反对

使用道具 举报

72

主题

179

帖子

0

精华

高级会员

Rank: 4

积分
615
金钱
615
注册时间
2014-5-12
在线时间
158 小时
发表于 2014-10-17 10:43:01 | 显示全部楼层
求共享 STM32F103 3线SPI  oled 软件模拟程序 
回复 支持 反对

使用道具 举报

15

主题

181

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
389
金钱
389
注册时间
2014-11-8
在线时间
40 小时
发表于 2015-3-9 13:43:07 | 显示全部楼层
SPI比较混乱,主要是没有标准的协议,只有moto的事实标准。所以衍生出多个版本,但没有本质的差异。现在一般有两个标准:一是说4线SPI包括SCLK、SDO、SDI、CS,用在多机模式中,而3线SPI仅包括SCLK、SDO、SDI,没有CS;另一种说法则认为4线SPI包括SCLK、SDO、SDI、CS,而3线SPI包括SCLK、DATA、CS,其中DATA负责数据的发送和接收。SPI没有标准协议,所以应用时需要仔细核对主机、从机器件规格。

我用过3线spi是不用cs片选的,成功了,程序和4现实差不多的,把4线的cs操作程序删除就可以了。。。(其实不删也能用)
Good good study , day day up...
回复 支持 反对

使用道具 举报

7

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
82
金钱
82
注册时间
2014-11-9
在线时间
6 小时
发表于 2015-12-8 16:38:00 | 显示全部楼层
请问各位大侠,如果是没有mosi程序应该怎么改
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-21 01:38

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表