历史上的今天
今天是:2024年10月26日(星期六)
2021年10月26日 | #51单片机#SPI时序初步认识
2021-10-26 来源:eefocus
SPI,全程Serial Peropheral Interface,译为串行外围设备接口,是一种高速的、全双工的、同步通信总线。
SPI常用于单片机和E2PROM、FLASH、实时时钟、数字信号处理器等器件的通信。SPI通信原理主要是主从方式通信,这种模式通常只有一个主机和一个或多个从机。
标准的SPI有4根线,分别是SSEL、SCLK、MISO、MOSI。
SSEL:从设备片选使能信号。若从设备为低电平使能,则当此引脚拉低后,从设备被选中,主机同被选中的从机进行通信。
SCLK:时钟信号。 由主机产生,类似于I2C中的SCL。
MOSI:主机给从机发送指令或者数据的通道。
MISO:主机读取从机的状态或者数据的通道。
实际应用中,存在只使用2根或3根线的SPI。用户可以根据自己的实际需求,取舍SPI功能线。
SPI的读写时序过程有四种模式。在接触他们之前,需要学习两个名词。
CPOL:Clock Polarity,时钟的极性。整个通信过程分为空闲时刻和通信时刻。若在数据发送之前和之后SCLK的空闲状态是高电平,则CPOL = 1,若为低电平,则CPOL = 0;
CPHA :Clock Phase,时钟相位。
同步通信的一个特点是所有数据的变化和采集都伴随着时钟沿进行。一个时钟周期必定包括一个上升沿和一个下降沿。数据从产生到稳定需要一定时间,故一般来说同一个周期内,上升沿产生的数据,在下降沿收集,下降沿产生的数据,在上升沿收集。
CPHA = 1,表示在一个时钟周期的第一个沿上,进行数据输出。CPOL = 1,该沿是下降沿。CPOL = 0,该沿是上升沿。
CPHA = 0,表示在一个时钟周期的第一个沿上,进行数据采集。CPOL = 1,该沿是下降沿。CPOL = 0,该沿是上升沿。
这里可能出现这样的情况:在第一个时钟沿就采集了第一帧数据传输的第一个bit,这个数据是何时输出的呢?情况有二:一在SSEL使能的边沿,二上一帧数据的最后一个时钟沿。有时两种情况会同时生效。
以下是这四种模式的通信时序图:

史海拾趣
|
摘要:针对现有水轮发电机组振摆监测系统永久性结构模式 问题,构建了基于CC2430的水轮发电机组无线振摆监测系 统。给出了系统的体系结构和工作流程;设计基于CC2430模 块的无线传感器节点;详尽给出系统能源、信号同步及采样 精度测试等关键技 ...… 查看全部问答> |
|
请教,bootloader中有这么一个函数: // lqm: 1G08:dwStartSector = 7 * 64 (boot:7个block) HANDLE BP_OpenPartition(DWORD dwStartSector, DWORD dwNumSectors, DWORD dwPartType, BOOL fActive, DWORD dwCreationFlags) { & ...… 查看全部问答> |
|
wince5.0下 问题: 怎样定制内核,让系统默认语言是英文,但是我能浏览中文及中文繁体的网站? 我在定制内核的时候 platform --setting LOACL 选了三种 中文、中文(台湾)、英文。 defaulte language:英语(美国)的时候,中文网页显示不出 ...… 查看全部问答> |
|
CC430F5137开发板空板免费送 活动正式开始啦 从即日起,leftenvoy为大家准备了100套CC430F5137空板,每个人可以申请一套,即两个空板! 温馨提示:邮费需自理! 申请方式:淘宝拍下(http://item.taobao.com/item.htm?id=13646431922&stp=1364 ...… 查看全部问答> |
|
本人新手,求教各位大神,我用Altium Designer summer 09直接打开TI提供的原理图时,能打开,但是没有任何内容,这是为什么? 然后我用导入的方法时,遇到了无法导入的问题,见图,这又是什么原因呢?… 查看全部问答> |
|
本帖最后由 jameswangsynnex 于 2015-3-3 20:02 编辑 作为屌丝IT宅,又忙了大半年,这个十一说什么也要出去玩一玩。看着台湾游最近挺火,就四处翻了翻旅游介绍。不看不要紧,居然在杨宗纬为台湾宣传的MV上看到了联想新出的MIIX。 这是神马情况? ...… 查看全部问答> |
|
ZedBoard学习手记(八) 更大的目标!在Linux下开发图形用户 在Linux下做GUI,比较简单的方法是使用QT。QT一直被用于跨平台的应用程序开发,之前属于Nokia,现在被卖给了Digia,开源版本的主页是http://qt-project.org/。QT的开发语言是C++和QML,可以用各种工具来进行开发设计,官方的IDE是QT Creator。要说 ...… 查看全部问答> |
|
本帖最后由 37°男人 于 2014-6-24 09:47 编辑 和大家分享一下自己的调试笔记 (技术交流xubbwd@gmail.com) 1、用fdisk 命令查看sd卡是否接入,接入的位置在什么地方root@xubbwd-VirtualBox:~# fdisk -l Disk /dev/sda: 429.5 GB, 429496729600 ...… 查看全部问答> |




