历史上的今天

今天是:2024年10月26日(星期六)

2021年10月26日 | #51单片机#SPI时序初步认识

发布者:精灵宠儿 来源: eefocus关键字:51单片机  SPI  时序 手机看文章 扫描二维码
随时随地手机看文章

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使能的边沿,二上一帧数据的最后一个时钟沿。有时两种情况会同时生效。


以下是这四种模式的通信时序图:

在这里插入图片描述
在这里插入图片描述

关键字:51单片机  SPI  时序 引用地址:#51单片机#SPI时序初步认识

上一篇:#51单片机#DS18B20硬件原理以及通信的工作时序
下一篇:#51单片机# I2C时序初步认识和寻址模式

推荐阅读

        有些用户一直很抗拒将手机系统升级到最新版本,原因除了新系统可能会不太稳定之外,手机运行的本身还有可能会被新固件所拖累,也就是所谓的“负优化”。  去年苹果就被爆出在新手机固件中添加了一些控制手机速度的功能,虽然可能出发点是好事,想要提高老苹果用户手机的续航,防止设备突然断电,但是该功能一开始为强制开启,让很多用户...
丰田汽车研究所(Toyota Research Institute, TRI)日前宣布,其 Platform 4(P4)自动驾驶测试车将于明年夏天驶上东京公开道路。具体来说,P4 将于 2020 年 7 月至 9 月(覆盖东京奥运会期间),在特定的 “移动出行即服务”(MaaS)驾驶环境中展示丰田的 SAE Level-4 级别自动驾驶功能。P4 的相关体验与展示将在东京的御台场(Odaiba...
据台媒《工商时报》报道,晶圆代工龙头台积电在上周的法说会上透露了其3nm制程的更多细节。据悉,3nm采用FinFET架构及EUV技术,3nm相对5nm逻辑密度将大幅增加70%,性能提升10-15%,功耗在同样性能下将降低25-30%,面积为原来的1/1.7,且EUV光罩层数将倍增。此前ASML CEO Peter Wennink在财报会上指出,5nm制程采用的EUV光罩层数将超过10层,3nm制程采...
经检测,RF前端混频器故障,导致测不到信号,自校准报错。维修过程更换损坏器件,工程师调整指标。维修结果仪器自检正常,测试信号正常,完成修复。

史海拾趣

问答坊 | AI 解惑

单片机应用编程技巧100问(真的很经典)

单片机应用编程技巧100问 1.C语言和汇编语言在开发单片机时各有哪些优缺点? 答:汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。其主要优点是占用资源少、程序执行效率高。但是不同的CPU,其汇编语言可能有所 ...…

查看全部问答∨

没新币在买东西阿

没新币在买东西阿…

查看全部问答∨

CVI调用VC++的2个问题

1。我用VC++编写了一个汇编代码生成DLL,控制IO口,无参数传递。编译的时候提示insufficient number of arguments to a function,后来在定义函数的时候特意加上2个参数,可以编译成功。 2。调用这个函数的时候,提示the program has caused a \'p ...…

查看全部问答∨

国赛论文格式

本帖最后由 paulhyde 于 2014-9-15 09:01 编辑 大家分享一下  …

查看全部问答∨

RMS Power Dissipation (TA = 70°C) =1.8W这个说明该电源芯片工作时的功耗吗?

RMS Power Dissipation (TA = 70°C) =1.8W 这个说明该电源芯片工作时的功耗吗? 它和芯片输出能力有关系吗 来自EEWORLD合作群:arm fpga linux 嵌入1(63762526) 群主:wangkj…

查看全部问答∨

pda中datagrid底色改变问题

小弟用c#开发,在pda上使用datagrid控件 想问,如果我查询出的结果,需要使符合条件的数据行,底色进行改变,可以实现吗? 谢谢!…

查看全部问答∨

P3口能接74LS138吗?

74LS138不是地址线输入吗?能用P3口能控制吗? 另外:象ADC0832.74LS377的片选端.能用P3口控制吗??不是也应该是地址线输入吗?…

查看全部问答∨

求助:ADDRESS SPACE OVERFLOW SPACE: DATA

*** ERROR 107: ADDRESS SPACE OVERFLOW     SPACE:   DATA     SEGMENT: _DATA_GROUP_     LENGTH:  005AH 请问我用51单片机做开发,上边的这个编译错误应该怎么解决?谢谢各位。帮忙说出 ...…

查看全部问答∨

菜农升级发布适应于STM32的CRC32的网上演算器及正确算法

JavaScript语言的CRC32代码摘要,点击直接在网上运行"菜农的CRC网上在线演算器"/*左移crc32算法: CRC32=X32+X26+X23+X22+X16+X12+X11+X10+X8+X7+X5+X4+X2+X1+1 初值:crcvalue = 0xFFFFFFFF权值:crcval  &nb ...…

查看全部问答∨

如何使用IAR搭建9B96的开发环境?

如题,已经安装了IAR6.1  和 PDL-LM3S-3223 驱动库 ,编译调试1138的程序没有任何问题的, 但是如何开发9B96这个芯片呢? 有没有9B96的工程模板呢?…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

更多往期活动

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved