SPI配置

news2024/11/16 12:05:19

I/O配置
主输出、从输入(MOSI)
主出从入(MOSI )引脚是主器件的输出和从器件的输入,用于主器件到从器件的串行数据传输。当SPI 配置为主器件时,该引脚为输出,当 SPI 配置为从器件时,该引脚为输入。数据传输时 MSB 在前。
主输入、从输出(MISO)
主入从出(MISO )引脚是从器件的输出和主器件的输入,用于从器件到主器件的串行数据传输。当SPI 配置为主器件时,该引脚为输入,当 SPI 配置为从器 件时,该引脚为输出。数据传输时 MSB 在前。
串行时钟(SCK)
串行时钟(SCK )引脚是主器件的输出和从器件的输入,用于同步主器件和从器件之间在 MOSI 和MISO 线上的串行数据传输。当 SPI 配置为主器件时,该引脚输出时钟,当 SPI 配置为从器件时,该引脚为输入。
从选择(SSN)
从选择(SSN )引脚用来控制从器件选中,如 图 16-2所示,当 SPI 配置为主器件时, SSN 引脚必须接高电平,当 SPI 配置为从器件时, SSN 引脚必须接 低电平。
SPI主从器件的连接如图 所示:
主从器件的MOSI 、 MISO 和 SCK 分别连在一起,主器件的 SSN 必须接高电平,从器件的 SSN 必须接低电平。主从器件通过 MOSI 、 MISO 连成一个环路,主器件输出时钟,数据传输时,主器件通过MOSI 输出数据,从器件通过 MISO 输出数据。一字节数据传输完毕,主从器件将交换 8 位移位寄存器数值。
在这里插入图片描述
数据传输配置
1、 进行数据传输前需先配置 SPCR.SPE 位和 SPCR.MSTR 位,以使能 SPI 和设置主从模式。
2、 配置 SPCR.CPHA 位和 SPCR.CPOL 位,以设置串行时钟相位和极性(主从器件需一致)。
3、 配置 SPCR1.SPR3 位和 SPCR.SPR[2:0] 位,以设置串行时钟波特率(若为从器件模式则不用设置,串行时钟速率由主器件决定)。
4、 需要时,配置中断,配置 IRCIE2.SPIIE,SPCR.SPIE 和 SPCR.SPIF 位。
5、 主器件模式下数 据传输前需先将从器件的 SSN 引脚拉低,主器件的 SSN 引脚必须保持高电平。主器件模式下 MCU 写 SPDR 寄存器的动作启动数据传输,中断标志 SPIF 置起完成数据传输。
6、 从器件模式处理较为特殊,当 CPHA=0 时,从器件的 SSN 引脚拉低启动数据传输,从器件的SSN 引脚拉高结束数据传输(即使在此之前 SPIF 中断已经产生),因为从器件不知道传输何时开始,当 SSN 引脚拉低后, MISO 引脚立即开始数据 MSB 的传输。
当CPH A=1 时,从器件在串行时钟的第一个沿启动数据传输,在 SPIF 置位后结束数据传输。

数据冲突
当SPITXBUF 数据尚未被读进移位寄存器,或者 SPIRXBUF 中的数据未被 CPU 读取时,对SPITXBUF/SPIRXBUF 寄存器的写操作会产生对应的冲突错误, SPIIF.TXCOL/SPIIF.RXCOL 位会置起,产生中断。导致冲突的写入数据将被忽略。数据冲突错误在主从模式下都会产生。
对SPITXBUF 的写 操作,由芯片内部的 Master 模块发起,包括 CPU 、 DMA 等等。对 SPIRXBUF的写操作,则由外部 SPI 器件发起。
当数据冲突发生时,SPITXBUF 和 SPIRXBUF 内原有数据不会被刷新,新写入的数据丢失。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/509822.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【原创】免费,不限量,使用OpenAI ChatGPT方法大揭秘

文章目录 微软的Edge浏览器集成WeTab插件就可以免费使用ChatGPT1、安装最新版的Edge浏览器2、选中浏览器的配置中的扩展3、在启动新页时,就可以看到chatGPT了4、这就可以免费使用chatGPT啦 微软的Edge浏览器集成WeTab插件就可以免费使用ChatGPT 1、安装最新版的Edg…

零信任网络安全

什么是零信任 零信任是一种安全思维方式,表示组织不应自动信任其边界内外的任何内容。在授予访问权限之前,必须验证任何尝试连接的实体。零信任安全策略围绕最低特权访问控制和严格的用户身份验证,因为假设不信任任何人。 若要实现这些原则…

4年外包终于上岸,我只能说别去....

我大学学的是计算机专业,毕业的时候,对于找工作比较迷茫,也不知道当时怎么想的,一头就扎进了一家外包公司,一干就是4年。现在终于跳槽到了互联网公司了,我想说的是,但凡有点机会,千万…

你不知道的自动化?使用自动化测试在项目中创造高业务价值...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 脱离数据支撑谈价…

WPF中嵌入web网页控件 WebBrowser

1 WebBrowser特点 <font colorblue>WebBrowser控件内部使用IE的引擎&#xff0c;因此使用WebBrowser我们必须安装IE浏览器。 WebBrowser使用的是IE内核&#xff0c;许多H5新特性都不支持&#xff0c;然后使用谷歌内核和火狐内核会使软件的体积增加至几十MB。 <font c…

《MySQL 必知必会》课程笔记(二)

这么多字段类型&#xff0c;该怎么定义&#xff1f; MySQL 中有很多字段类型&#xff0c;比如整数、文本、浮点数等。如果类型定义合理&#xff0c;就能节省存储空间&#xff0c;提升数据查询和处理的速度。相反&#xff0c;如果数据类型定义不合理&#xff0c;就有可能会导致…

详细版易学版TypeScript - 元组和枚举详解

一、元组(Tuple) 数组:合并了相同类型的对象 const myArr: Array<number> [1, 2, 3]; 元组(Tuple):合并了不同类型的对象 // 定义元组时就要确定好数据的类型&#xff0c;并一一对应 const tuple: [number, string] [12, "hi"]; // 添加内容时&#xff0c;不…

【Shiro】SimpleAuthorizationInfo如何授权

一、前言 本文基于上一篇文章进行介绍【Shiro】SimpleAuthenticationInfo如何验证password。 二、自定义的ShiroRealm类 经过上一篇文章的探求&#xff0c;这回直接找准doGetAuthorizationInfo方法&#xff1b;我们回过头看下ShiroRealm&#xff0c;它继承了AuthorizingRealm…

Hbase入门篇01---基本概念和部署教程

Hbase入门篇01---基本概念和部署教程 HBase基本概念HadoopHadoop的局限 HBase 与 NoSQLHBase应用场景发展历程HBase特点 RDBMS与HBase的对比关系型数据库HBaseHDFS对比HBaseHive对比Hbase总结Hive与HBase HBase集群搭建HBASE_MANAGES_ZK属性的作用安装报错&#xff0c;解决思路…

面试被问到了解哪些开发模型?看这一篇就够了

前言 软件开发模型是指软件开发全部过程、活动和任务的结构框架。一般包括需求、设计、编码和测试等阶段&#xff0c;甚至包括维护阶段。软件开发模型明确规定了软件开发过程中要完成的主要活动和任务&#xff0c;用来指导整个开发过程中的工作。对于不同的系统&#xff0c;可…

SSD系列2——PriorBox

SSD系列&#xff1a; SSD系列1——网络结构 SSD系列2——PriorBox SSD系列3——损失计算 PriorBox SSD采用PriorBox来进行区域生成&#xff0c;其思想与Faster RCNN的Anchor类似。PriorBox的本质是在原图上的一系列矩形框&#xff0c;即特征图上的一个点根据下采样率可以得到在…

创新驱动 共建生态|鲲鹏开发者峰会2023·GBASE南大通用技术论坛成功举办

5月7日&#xff0c;鲲鹏开发者峰会2023 GBASE南大通用技术论坛如约而至&#xff0c;吸引了数十位数据库技术专家、开发者参与讨论。本次论坛是GBASE南大通用联合openGauss社区、行业用户和生态伙伴共同举办的交流分享活动&#xff0c;邀请到包括鲲鹏计算产品部部长颜叶、四川信…

【Linux Network】序列化和反序列化

目录 1. 序列化和反序列化的简单介绍 2. 使用 json 组件完成数据的序列化和反序列化 1. 安装 jsoncpp 组件 2. 序列化 3. 反序列化 Linux网络编程✨ 1. 序列化和反序列化的简单介绍 序列化&#xff1a;将一个结构体数据转化为字符串数据&#xff1b; 反序列化&#xff1a;将…

Mysql 学习(十)基于成本的优化 一

什么是成本 执行一个查询可以有不同的执行方案&#xff0c;优化器会选择一个成本比较低的方案去执行&#xff0c;但是现在有个疑问&#xff0c;MySQL的查询执行成本是哪些呢&#xff1f;主要有两方面组成&#xff1a; I/O成本&#xff1a;myisam和innodb存储引擎将数据和索引存…

盘点慢查询原因及优化方法

目录 一&#xff0c;前言二&#xff0c;准备type重点看 三&#xff0c;慢查询原因和解决1&#xff0c;sql未加索引2&#xff0c;索引失效3&#xff0c;limit深分页问题&#xff08;1&#xff09;limit深分页为什么会慢&#xff08;2&#xff09;深分页优化 4&#xff0c;in元素…

网安笔记 09 PKI PMI

PKI PMI PKI 公钥基础设施 public key infrastructure 遵循标准的&#xff0c;利用公钥理论和技术建立的提供安全服务的基础设施 **目的&#xff1a;**身份认证&#xff0c;点滴信息不完整&#xff0c;不可抵赖&#xff0c;提供可靠安全服务 **任务&#xff1a;**可信任数字…

【发表案例】智能传感类、持续学习模型、计算建模、边缘计算等领域SCI,最快仅1个月14天录用

3区智能传感类SCI&EI 【期刊简介】IF:1.5-2.0&#xff0c;JCR3区&#xff0c;中科院4区 【检索情况】SCI&EI 双检&#xff0c;正刊 【征稿领域】智能信号处理技术在基于机器学习中遥感相关的应用研究 录用案例&#xff1a;2个月零5天录用 2023.04.28 | Accept 20…

OpenPCDet系列 | 7.PointPillars模型测试KITTI数据集流程解析

文章目录 模型的测试流程1. AnchorHeadTemplate.generate_predicted_boxes部分2. Detector3DTemplate.post_processing部分3. KittiDataset.generate_prediction_dicts部分4. KittiDataset.evaluation部分模型的测试流程 对于模型来说,训练过程是为了计算构建损失训练模型的参…

小程序安全架构分析

小程序大家已经再熟悉不过了&#xff0c;就是一种在移动操作系统中运行的轻量级应用程序&#xff0c;小程序发展这么多年来&#xff0c;是中国 IT 行业里为数不多的能够真正影响到普通程序员的创新成果。 当然随着小程序的流行&#xff0c;小程序的各个方面都是开发者讨论的热…

20230503 - 二叉树2 | 二叉树的层序遍历、226. 翻转二叉树、101. 对称二叉树

1、二叉树的层序遍历 二叉树的层序遍历&#xff0c;就是图论中的广度优先搜索在二叉树中的应用&#xff0c;需要借助队列来实现&#xff08;此时又发现队列的一个应用了&#xff09;。 来吧&#xff0c;一口气打十个&#xff1a; 102.二叉树的层序遍历 class Solution {pub…