当前位置: 首页 > news >正文

单片机学习之SPI

物理层

串行全双工总线

需要四根线:SCLK(时钟线),CS(片选线)、MOSI(主设备输出、从设备输入),MISO(主设备输入,从设备输出)。

片选信号

片选信号CS是用来选择主机与哪一个从机进行通信的信号线。当从机的片选信号为1使能时,主机和谁通信,那根CS线就是高电平,其余CS线为低电平。这样SPI至少需要四根线。

通信过程

先发高位,后发低位(与IIC相同),串口则是先发低位,后发高位。

在时钟线上升沿或者下降沿的时候发送器向数据线发送数据,紧接着的下一个上升沿或者下降沿,接收器从数据线上接收数据(取决于四种模式)

四种模式

SPI总线有四种不同的工作模式,取决于极性(CPOL)和相位(CPHL)这两个因素

CPOL表示SCLK空闲时的状态
CPOL=0,空闲时SCLK为低电平

CPOL=1,空闲时SCLK为高电平

CPHA表示采样时刻

CPHA=0,即表示输出(out)端在上一个时钟周期的后沿改变数据,而输入(in)端在时钟周期的前沿(或不久之后)捕获数据。输出端保持数据有效直到当前时钟周期的尾部边缘。对于第一个时钟周期来说,第一位的数据必须在时钟前沿之前出现在MOSI线上。也就是一个CPHA=0的周期包括半个时钟空闲和半个时钟置位的周期。

CPHA=1,即表示输出(out)端在当前时钟周期的前沿改变数据,而输入(in)端在时钟周期的后沿(或不久之后)捕获数据。输出端保持数据有效直到下一个时钟周期的前沿。对于最后一个时钟周期来说,从机设备在片选信号消失之前保持MISO信号线有效。也就是一个CHPA=1的周期包括半个时钟置位和半个时钟空闲的周期。

http://www.dtcms.com/a/109066.html

相关文章:

  • JVM深入原理(七)(一):运行时数据区
  • 图形界面设计理念
  • 使用 PyTorch 的 `optim.lr_scheduler.CosineAnnealingLR` 学习率调度器
  • 蓝桥云客-修建灌木
  • Ubuntu环境基于Ollama部署DeepSeek+Open-Webui实现本地部署大模型-无脑部署
  • 静态库和动态库
  • 数据结构复习(单调栈,单调队列,KMP,manacher,tire,字符串哈希)
  • HTML 音频(Audio)学习笔记
  • 时间数据的可视化
  • 什么是msvcp140.dll?msvcp140.dll丢失的解决方法又有哪些?
  • 运算放大器(四)滤波电路(滤波器)
  • Apollo配置中心登陆页面表单密码加密提交
  • 2025年通信安全员 B 证考试真题分享
  • Windows 系统 Git 2.15.0 (64位) 下载与安装教程
  • 使用 PyTorch 的 `GradualWarmupScheduler` 实现学习率预热
  • Java全栈面试宝典:线程协作与Spring Bean管理深度解析
  • echarts 各类统计图 高分辨下文字模糊
  • SpringBoot全局exception处理最佳实践
  • MySQL深入
  • P10744 [SEERC 2020] Modulo Permutations 题解
  • 基于Contiue来阅读open-r1中的GRPO训练代码
  • 【Pandas】pandas DataFrame select_dtypes
  • SpringBoot3 整合 Elasticsearch
  • 思维链编程模式下可视化医疗编程具体模块和流程架构分析(全架构与代码版)
  • HMI 设计:提升工业设备操作的便捷性与安全性
  • 网络编程—Socket套接字(UDP)
  • 通过发音学英语单词:从音到形的学习方法
  • 用ChatGPT-5自然语言描述生成完整ERP模块
  • 工作记录 2017-03-24
  • ollama导入huggingface下载的大模型并量化