首页 > 其他分享 >SPI的学习

SPI的学习

时间:2024-10-25 19:45:47浏览次数:7  
标签:SCK SS 低电平 指定 学习 SPI 设备

工作原理

SPI的工作原理基于主从架构。主设备通过四条主要信号线与一个或多个从设备进行通信:

  1. MOSI(主输出,从输入)DI(Master Output Slave Input):主设备发送数据到从设备。
  2. MISO(主输入,从输出)DO(Master Input Slave Output):从设备发送数据到主设备。
  3. SCLK(时钟信号):由主设备生成的时钟信号,用于同步数据传输。
  4. SS(从选择)(Slave Select):选择特定的从设备进行通信。

同步,全双工
支持总线挂载多设备(一主多从) 

在数据传输时,主设备首先激活从设备的SS线,然后通过SCLK发送时钟脉冲,数据在每个时钟脉冲的上升或下降沿被发送和接收。这样,主从设备可以实现高效的全双工通信。

硬件电路

所有SPI设备的SCK、MOSI、MISO分别连在一起
主机另外引出多条SS控制线,分别接到各从机的SS引脚
输出引脚配置为推挽输出,输入引脚配置为浮空或上拉输入

SPI时序基本单元 

起始条件:SS从高电平切换到低电平
终止条件:SS从低电平切换到高电平

交换一个字节(模式0
CPOL=0:空闲状态时,SCK为低电平
CPHA=0:SCK第一个边沿移入数据,第二个边沿移出数据

SPI时序

发送指令

向SS指定的设备,发送指令(0x06)

SCK下降沿,将数据移出,主机将数据移出到MOSI,MOSI变化电平,要在上升沿前完成变化,SCL上升沿数据采样输入(SCK低电平是变化的时期,高电平是读取时期) 
主机用0x06换来了从机的0xFF

注意:下降沿变化电平,上升沿收集变化的电平

指定地址写

向SS指定的设备,发送写指令(0x02) 
随后在指定地址(Address[23:0])下,写入指定数据(Data)

 

指定地址读

向SS指定的设备,发送读指令(0x03),      随后在指定地址(Address[23:0])下,读取从机数据(Data)

标签:SCK,SS,低电平,指定,学习,SPI,设备
From: https://blog.csdn.net/2301_79790385/article/details/143158889

相关文章

  • 人工智能、机器学习领域常见的学习方式
    监督学习监督学习是机器学习的一种重要形式,在这种学习方式中,算法从带有标签的训练数据中学习模式。这些标签通常是人类专家提供的正确答案或目标输出。通过学习输入数据与相应标签之间的映射关系,模型可以预测新的、未见过的数据的标签。定义在监督学习中,训练集包含了一系......
  • 数据库中对MySQL查询的学习
    MySQL查询目录MySQL查询基本语法条件查询条件查询运算符逻辑运算符排序与分页排序分页弊端与解决方案分组查询单字段分组多字段分组where和having的区别常用函数数值性函数字符串函数日期和时间函数流程控制函数(了解)子查询子查询的基本概念子查询的分类子查询的位置子查询的注意......
  • 【强化学习】—— Q-learning算法
    Q-Learning算法Q-learning是一种无模型的强化学习算法,用于寻找最优策略以最大化累积奖励。它通过学习一个状态-动作值函数Q(s,......
  • 《机器学习初步》笔记
    第一章绪论1.1引言机器学习的经典定义:利用经验(数据)改善系统自身的性能经典的机器学习过程:机器学习最重要的理论模型:PAC(概览近似正确)1.2基本术语数据集:一组记录的集合学习/训练:通过执行某个学习算法,得到模型,学的的模型对应数据的某种潜在规律示例:不包含结果(标记label)......
  • 小土堆学习笔记6:常见的Transforms(二)
    Resize()注意一点:Resize(512)是将图像等比例缩放,使得图像的最短边为512像素,保持了原始的宽高比例。而Resize((512,512))则是将图像强制缩放为512x512的正方形,无论图像的原始宽高比是什么。因此,如果你需要不改变比例的缩放,使用Resize(512),如果需要固定大小为正方形的图像,则......
  • 小土堆学习笔记7:torchvision中的数据集使用
    本节视频主要内容如何把数据集和transform结合在一起,毕竟因为不可能只对一张图片进行处理,所以会讲到在科研中需要使用的标准数据集该如何下载、组织、查看、使用。(也就是.dataset和.transforms如何进行联合使用)torchvision的几个模块进入PyTorch官网,点击官方文档(DOCS),看到不......
  • 学习vue——modelValue 与 update:modelValue(父子相传v-model,相互绑定)
    父组件1<scriptlang="ts"setup>2import{ref}from'vue'3constvalue=ref({4page:1,5size:2,6selectId:""7})8</script>910<template>11<search-selectv-model="val......
  • 学习vue——图片、富文本的新增与修改回显
    提要富文本使用链接:https://vueup.github.io/vue-quill/父组件1<tempalte>2<!--抽屉-->3<drawer-pageref="open"@tijiao=EmitData></drawer-page>4</template>1<scriptlang="ts"setup>2constopen......
  • Spring学习笔记_10-@Component
    @Component1.介绍在项目开发过程中,我们自己编写的类如果想注入到Spring中,由Spring来管理Bean的生命周期,就可以使用@Component注解将其注入到IOC容器中。@Component注解还有三个衍生注解,那就是@Repository、@Service和@Controller注解,并且衍生出的注解通常会在使用MVC架构开......
  • Spring学习笔记_09——Environment
    Environment1.介绍Spring框架中的Environment是一个非常重要的概念,它提供了访问当前运行环境配置的API。Environment是一个接口,它包含了多个方法,用于获取配置参数、设置默认配置源、激活特定的配置文件等。在Spring应用中,Environment实例通常被注入到需要访问配置信息的......