SPI三线制 四线制

2023-10-14 09:40
文章标签 spi 四线 三线

本文主要是介绍SPI三线制 四线制,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

SPI三线制和四线制在硬件连接上有什么不同的地方?
在用io口模拟spi时的发送指令数据代码上有什么不同?
 

收藏收藏3 支持支持 反对反对

 回复

举报

  

aozima

  离线 

 

8

主题

663

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分

1566

金钱

1566

注册时间

2011-5-23

在线时间

667 小时

  • 发消息
推荐

 发表于 2014-10-17 10:45:15 | 只看该作者

【劲爆】点击免费下载正点原子全套STM32开发板全套资料

这里所说的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

 回复 支持 2 反对 0

举报

  

正点原子

  离线 

 

479

主题

8万

帖子

30

精华

管理员

Rank: 12Rank: 12Rank: 12

积分

115775

金钱

115775

注册时间

2010-12-1

在线时间

875 小时

  • 发消息
2#

 发表于 2012-7-21 10:16:15 | 只看该作者

就是有无片选的区别吧. 
无片选的话,你整个SPI,只能给一个设备用. 
有的话,可以多个设备共用一个SPI.

我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
微信公众平台:正点原子   点击扫码添加

 回复 支持 反对

举报

  

qyanqin

  离线 

 

5

主题

16

帖子

0

精华

初级会员

Rank: 2

积分

59

金钱

59

注册时间

2012-7-21

在线时间

1 小时

  • 发消息
3#

  楼主| 发表于 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(); 

代码上有什么问题吗?
 
 回复 支持 反对

举报

  

qyanqin

  离线 

 

5

主题

16

帖子

0

精华

初级会员

Rank: 2

积分

59

金钱

59

注册时间

2012-7-21

在线时间

1 小时

  • 发消息
4#

  楼主| 发表于 2012-7-21 11:03:28 | 只看该作者

回复【3楼】qyanqin: 
--------------------------------- 
soga,三线制的要发送9位,第一位要先发送D/C#位,然后是D7到D0这八位,问题未解决完,继续调试中。。。
 
 回复 支持 反对

举报

  

qyanqin

  离线 

 

5

主题

16

帖子

0

精华

初级会员

Rank: 2

积分

59

金钱

59

注册时间

2012-7-21

在线时间

1 小时

  • 发消息
5#

  楼主| 发表于 2012-8-3 15:59:00 | 只看该作者

回复【4楼】qyanqin: 
--------------------------------- 
看来要用软件模拟spi,代码还是要根据不同IC的时序进行不同的编写,时序图很重要
 
 回复 支持 反对

举报

  

新生

  离线 

 

47

主题

107

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分

431

金钱

431

注册时间

2014-5-12

在线时间

51 小时

  • 发消息
6#

 发表于 2014-10-17 10:43:01 | 只看该作者

求共享 STM32F103 3线SPI  oled 软件模拟程序 
 
 回复 支持 反对

举报

  

Just Beat It

  离线 

 

15

主题

181

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分

368

金钱

368

注册时间

2014-11-8

在线时间

36 小时

  • 发消息
8#

 发表于 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操作程序删除就可以了。。。(其实不删也能用)

这篇关于SPI三线制 四线制的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/209680

相关文章

【STM32】SPI通信-软件与硬件读写SPI

SPI通信-软件与硬件读写SPI 软件SPI一、SPI通信协议1、SPI通信2、硬件电路3、移位示意图4、SPI时序基本单元(1)开始通信和结束通信(2)模式0---用的最多(3)模式1(4)模式2(5)模式3 5、SPI时序(1)写使能(2)指定地址写(3)指定地址读 二、W25Q64模块介绍1、W25Q64简介2、硬件电路3、W25Q64框图4、Flash操作注意事项软件SPI读写W2

stm32之软件SPI读写W25Q64存储器应用案例

系列文章目录 1. stm32之SPI通信协议 文章目录 系列文章目录前言一、电路接线图二、应用案例代码三、应用案例分析3.1 SPI通信模块3.2 W25Q64模块3.3 主程序 前言 提示:本文主要用作在学习江科大自化协STM32入门教程后做的归纳总结笔记,旨在学习记录,如有侵权请联系作者 本案例使用软件SPI通信的方式实现了STM32与W25Q64 Flas

Flink1.10基于工厂模式的任务提交与SPI机制

《2021年最新版大数据面试题全面开启更新》 Flink任务执行模式包含了yarn-session、standalone、per-job、local, 在1.10中又增加k8s的执行模式,那么在任务提交过程中如何根据不同的执行模式进行任务提交呢?主要通过两个接口来实现:PipelineExecutorFactory 与 PipelineExecutor。PipelineExecutorF

转载 SPI的比喻理解

SPI 传输是一个虚拟的移位寄存器方式。 你这么理解就可以: 主机和从机之间有一条 16 格的传送带。主机一格一格拨动它转动(相当于发送时钟)。 如果是主机发送,它就把一个个的东西放在传送带上,转动 8 次,就传到从机一侧了。这时,从机可以从传送带上将东西取下。如果从机没有取东西,这些东西再转 8 次又回到主机一侧。 如果是主机接收,从机就要把 8 个东西一次放上传送带。当主机转动 8 次,东西就

Java SPI机制源码

文章目录 SPI简介使用案例SPI的应用SPI机制源码SPI与类加载器双亲委派机制 SPI简介 Java的SPI(Service Provider Interface)机制允许第三方为应用程序提供插件式的扩展,而不需要修改应用程序本身的代码,从而实现了解耦。Java标准库本身就提供了SPI机制,通常是通过在META-INF/services目录下放置文件来实现的。 S

W25Q32驱动 基于HAL库的SPI

环境 芯片:STM32F103ZET6 库:来自HAL的STM32F1XX.H 原理图 cubeMX配置 W25Q32.h //// Created by seven on 2024/9/2.//#ifndef SPI_W25Q32_H#define SPI_W25Q32_H#include "spi.h"/*** 初始化W25Q32闪存芯片*/void W25Q32

STM32F10XX中SPI的DMA发送数据

参考资料: http://blog.csdn.net/jdh99/article/details/7603029 http://www.openedv.com/posts/list/3159.htm     上面提到的两篇博文比较详细深刻的说明了DMA的工作方式以及SPI的DMA传输方式的特点。结合对Stm32F103VET6中SPI的DMA传输方式的配置和学习谈谈感受,在看下面的内容之前请

解耦利器 - Java中的SPI机制

为什么需要SPI机制 SPI和API的区别是什么 SPI是一种跟API相对应的反向设计思想:API由实现方确定标准规范和功能,调用方无权做任何干预; 而SPI是由调用方确定标准规范,也就是接口,然后调用方依赖此接口,第三方实现此接口,这样做就可以方便的进行扩展,类似于插件机制,这是SPI出现的需求背景。 SPI : “接口”位于“调用方”所在的“包”中 概念上更依赖调用方。 组织上位于

【STM32项目设计】STM32F411健康助手--硬件SPI (硬件NSS/CS)驱动st7735--1.8寸TFT显示屏(1)

#include "lcd_driver.h"static uint16_t SPI_TIMEOUT_UserCallback(uint8_t errorCode);//液晶IO初始化配置void LCD_Driver_Init(void){SPI_InitTypeDef SPI_InitStructure;GPIO_InitTypeDef GPIO_InitStructure;/* 使

【MCAL】TC397+EB-tresos之SPI配置实战 - (同步/异步)

本篇文章首先从理论讲起,从AUTOSAR规范以及MCAL手册两个不同角度(前者偏理论,后者偏实践)介绍了SPI模块的背景概念与理论,帮助读者在实际配置之前能有个理论的框架。然后详细的介绍了在TC397平台使用EB tresos对SPI驱动模块进行配置与调试的实战过程,帮助第一次接触这个模块的读者能够更快的上手来实现符合自己项目要求的开发工作,完成SPI通信。文章分别从同步和异步两种方式介绍了配置