13、SPI串行外设接口

13.1 介绍

主要功能
SPI 总线是⼀种以全双工模式运行的同步串行数据链路。TLF35584 在从机模式下进行通信,其中主机(μC)启动数据帧。TLF35584应该通过专用片选线进行寻址。这允许其他从设备连接到SPI总线。

数据传输
开始通信,μC首先使用小于或等于最大频率的频率配置时钟,µC拉低TLF35584的片选。

功能描述
SPI基本访问:MOSI(引脚SDI)上的所有数据均在 SPI 时钟信号(引脚 SCL)的上升沿接收,并且在 SPI 时钟信号(引脚SCL)的下降沿移位(SpiIf_ShiftClock_shiftTransmitDataOnTrailingEdge)。

CPOL = 0,表示 CLK = 0 时处于空闲态,所以有效状态为 CLK 为高电平时。
CPOL = 1,表示 CLK = 1 时处于空闲态,所以有效状态为 CLK 为低电平时。

CPHA = 0,在时钟的第一个跳变沿(上升沿/下降沿)进行数据采样,在第二个边沿发送数据。
CPHA = 1,在时钟的第二个跳变沿(上升沿/下降沿)进行数据采样,在第一个边沿发送数据。

LeadingEdge:前沿,对应上述的第一个跳变沿
TrailingEdge: 后沿,对应上述的第一个跳变沿

TLF35584 的 SPI 格式:

CMD(1bit)+ Address(6bit)+ Data(8bit)+ Parity(1bit)
0bit:CMD = 1为写操作;CMD = 0为读操作
1~6bit:16进制地址
7~14bit:数据
15bit:Parity,前面15个bit里,1为奇数个,则此位为1;1为偶数个,则此位为0

在这里插入图片描述

在这里插入图片描述

13.2 对受保护寄存器的SPI写访问

在这里插入图片描述

某些内部寄存器(SYSPCFG0、SYSPCFG1、WDCFG0、WDCFG1、FWDCFG、WWDCFG0、WWCDFG1)(04H - 0AH)需要防止被意外覆盖。可以通过读取寄存器 PROTSTAT(28H)中的 LOCK 位来检查保护状态。

仅在通过 SPI 发送专用 32 位 UNLOCK 序列后才能对这些寄存器进行写访问。需要发送四个字节,中间没有任何其他SPI写访问。执行此操作时出错将重置序列检测,即必须发送新的 UNLOCK 序列。如果在期间检测到对任何其他寄存器的写访问,然后访问 PROTCFG,则会生成中断,并且成功检测到的 UNLOCK 序列字节数将设置为零。在 INIT、NORMAL 和 WAKE 状态下可以访问受保护的寄存器。

UNLOCK 序列由 4 个连续字节 (1:0xAB; 2:0xEF; 3:0x56; 4:0x12) 的 32 位序列组成,必须在其间没有其他 SPI 写访问的情况下发送这些序列。通过读取寄存器 PROTSTAT(28H) 可以检查每个写入字节的正确性。⼀旦成功执行解锁序列,就可以写入任何受保护的配置请求寄存器。为了确保正确写入受保护的配置请求寄存器,微控制器应读回寄存器值并通过检查数据来验证正确性。写入受保护的配置请求寄存器的数据位在读取操作期间被反转发回,这意味着微控制器可以计算读取的寄存器数据和预期的数据的异或。如果寄存器数据正确,结果应为 0xFF。TLF35584 不会检查寄存器中值的正确性。

仅在成功执行 LOCK 序列后,所有受保护的配置请求寄存器值才会由相应的功能捕获。成功的 LOCK 序列由 4 个连续字节(1:0xDF;2:0x34;3:0xBE;4:0xCA)组成的 32 位序列组成,发送时必须在其间没有其他 SPI 写访问。通过读取寄存器 PROTSTAT可以检查每个写入字节的正确性。

执行此操作时出错将重置序列检测,即必须发送新的 LOCK 序列。在这种情况下(LOCK 序列之间的任何 SPI 写访问)都会生成中断。

检测到成功的 LOCK 序列后,配置寄存器和所有内部功能都会使用受保护的配置请求寄存器中的值进行更新。uC的责任是通过将新值写入特定寄存器或读回应该保持不变的寄存器来确保所有寄存器都正确配置。不支持对受保护寄存器进行部分重新配置,即仅配置单个功能并保持其他功能不变,因为成功的 LOCK 序列会将所有受保护的配置请求寄存器接管到配置中(RSYSPCFG0、RSYSPCFG1、RWDCFG0、RWDCFG1、RFWDCFG、RWWDCFG0、RWWDCFG1)(0BH-11H)

锁定序列后,最大内部配置时间。必须考虑 60µs 以确保新配置被接管。

受影响的功能:

  • WWD 和 FWD 的所有看门狗配置寄存器
  • 在器件处于休眠状态时启用 WD
  • 所有错误引脚监控配置寄存器
  • 在 FSM 处于休眠状态时启⽤错误引脚监控
  • 用于启用或禁用 STDBY LDO 的专用寄存器
  • 不配置 SS2 延迟时间故障事件导致 FAILSAFE 状态
    对任何受保护的配置请求寄存器的读访问始终是可能的

13.3 SPI 写启动状态转换请求和稳压器配置

为了请求 LDO 配置的状态转换或更改,请求数据必须依次写入两个独立的寄存器 DEVCTRL(15H)和DEVCTRLN(16H)。与写入DEVCTRL 的数据相比,写入 DEVCTRLN 的数据必须按位反转。仅当两个寄存器连续写入(第⼀个 DEVCTRL 和第⼆个DEVCTRLN)时,该请求才会被接受,并将在第⼆个命令结束时由CS的上升沿接管。

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

word中如何保存高清图片,并保存为高质量的pdf文件(图像不失真)

word中如何保存高清图片 打开word,选择,选项,高级选项,选择不压缩文件中的图像并保持分辨率高保真 将word保存为高质量的pdf文件 不用另存为或者导出 选择文件,选择打印: 选择中间都打印出pdf即可。 然后再选择打印…

Day03_C语言IO进程线程

01.思维导图 02.创建一个进程扇 #include <25051head.h> int main(int argc, const char *argv[]) {pid_t pid;int i;for(i0;i<4;i){pidfork();if(pid0){//printf("子进程:pid[%d]\n",pid);printf("子进程%d:子进程pid[%d],父进程pid[%d]\n",i1,g…

获取Qwen 2.5 内部网络结构 讲解

获取Qwen 2.5 内部网络结构 讲解 Qwen2DecoderLayer( (self_attn): Qwen2Attention( (q_proj): Linear(in_features=2048, out_features=2048, bias=True) (k_proj): Linear(in_features=2048, out_features=256, bias=True) (v_proj): Linear(in_features=2048, out_features…

在深度学习中,batch、epoch 和 iteration 的关系

用一个实际例子和简单代码来清晰解释 batch、epoch 和 iteration 的关系&#xff1a; ------------------------------------------------------------------------------------ 假设场景 你有一个数据集&#xff1a;1000 张猫狗图片 你设置 batch_size 100&#xff08;每次…

RabbitMQ 高级特性之持久性

1. 简介 在 RabbitMQ 的消息发送流程中&#xff0c;一共有三种消息丢失的情况&#xff1a; 生产者给 broker 发送的消息&#xff0c;broker 没有收到broker 将消息丢失broker 给消费者发送消息时消息丢失 对于第一种情况&#xff0c;我们可以使用 RabbitMQ 提供的发布确认模…

应急响应靶机-近源OS-1-知攻善防实验室

前景需要&#xff1a; 小王从某安全大厂被优化掉后&#xff0c;来到了某私立小学当起了计算机老师。某一天上课的时候&#xff0c;发现鼠标在自己动弹&#xff0c;又发现除了某台电脑&#xff0c;其他电脑连不上网络。感觉肯定有学生捣乱&#xff0c;于是开启了应急。 1.攻击…

Linux 内存管理与缓存机制

文章目录 内存介绍buff/cache 与匿名页Swap&#xff08;交换空间&#xff09;&#xff1a;内存的临时仓库 内存回收与Swap机制内存页的两种类型内核回收决策流程如何解读内存状态drop_caches 参数说明 实践操作查看内存状态查看Swap状态释放 buff/cache 缓存 内存介绍 当使用 …

【嵌入式电机控制#6】编码器原理与内部构造

一、简介 编码器是一种将直线位移和角位移数据转换为脉冲信号、二进制编码的设备。常用于测量物体运动的位置、角度或速度。 二、分类 1. 按检测分类&#xff1a; &#xff08;1&#xff09;光电式编码器 &#xff08;2&#xff09;磁电式编码器 2. 编码类型分类&#xff1a; …

FastAPI 安装使用教程

一、FastAPI 简介 FastAPI 是一个现代、快速&#xff08;高性能&#xff09;的 Web 框架&#xff0c;基于 Python 3.7 和标准类型提示构建&#xff0c;广泛应用于 API 服务开发。它使用 Pydantic 进行数据验证&#xff0c;集成自动生成 OpenAPI 和文档 UI&#xff0c;非常适合…

【WPF】WPF(样式)

Window.Resources 当前窗体作用域资源 TargetType“Button” 使得当前窗体的组件类型都适配此样式<Window.Resources><Style TargetType"Button"><Setter Property"Background" Value"WhiteSmoke"></Setter><Setter…

Jmeter(六):json断言元件,jmeter参数化实现

&#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 json断言元件 json断言元件介绍 json断言元件与响应断言元件的功能类型&#xff0c;它只针对响应正文为json数据格 式的内容进行断言功能。 添加路径&…

python3常用模块

1 数学运算模块 math “math”模块提供了许多常用的数学函数&#xff0c;例如三角函数、四舍五入、指数、对数、平方根、总和等 import math1.1 常数 math.pi 返回圆周率的数学常数。math.e 返回指数的数学常数示例&#xff1a; print(math.pi) print(math.e)1.2 fabs(x) …

基于Pandas和FineBI的昆明职位数据分析与可视化实现(二)- 职位数据清洗与预处理

文章目录 一、数据集介绍二、缺失值处理三、重复值处理四、薪资数据格式处理五、技能格式处理六、拆分薪资列并处理异常值七、拆分工作区域列八、清洗后的数据集九、完整代码 一、数据集介绍 这份昆明职位数据集源自 Boss 直聘&#xff0c;数据量颇为丰富&#xff0c;包含 177…

工业4.0核心引擎!意法STM32F407ZET6 单片机 赋能智能PLC/网关设计

STM32F407ZET6 单片机深度解析 1. 产品定位 STM32F407ZET6 是意法半导体&#xff08;STMicroelectronics&#xff09;推出的 高性能ARM Cortex-M4单片机&#xff0c;采用 LQFP144封装&#xff0c;主打 浮点运算、丰富外设和工业级可靠性&#xff0c;广泛应用于需要复杂算法和实…

[Andrej Karpathy_2] vibe coding | 大型语言模型的1960年代 | 自主性滑块

Hugging Face的Tom Wolf分享了一段我非常喜欢的视频&#xff0c;这些孩子正在进行氛围编程。 我觉得这是一个非常治愈的视频&#xff0c;我爱这个视频。&#xff08;they grow up "knowing" they can build anything &#x1f62d;greatness) 未来是美好的 前文&…

uv包管理常用命令

uv常用命令 uv init 初始化项目 uv add 包名 添加包&#xff1b;多个包名&#xff0c;中间用空格 uv tree 包的关系 uv remove 删除所有包 uv sync 重新解析 安装工具 1、mypy 检测工具 uv tool install mypy uv tool run mypy xxx.py 使用 2、Ruff uv tool…

Nano-vLLM 源码学习

以下内容由Trae生成。我只管问和排版。 Nano-vLLM 是一个从零构建的轻量级vLLM实现项目&#xff0c;具备快速离线推理、代码可读性高和优化功能丰富等特点&#xff0c;性能表现和原版vLLM相媲美。以下是该项目各目录和文件的功能说明&#xff1a; 1. 根目录&#xff1a; benc…

MySQL 8.4 备份与恢复完全指南

本文全面解析MySQL 8.4的备份与恢复机制&#xff0c;涵盖备份类型、方法、策略及实际操作示例。 一、备份类型解析 1. 物理(原始)备份 vs 逻辑备份 特性物理备份逻辑备份原理直接复制数据库目录/文件&#xff08;如数据文件、日志&#xff09;导出逻辑结构&#xff08;CREATE…

Mac 部署Latex OCR并优化体验(打包成App并支持全局快捷键)

&#x1f341; 前言 最近阅读论文&#xff0c;在做笔记的时候总是要手动输入一些latex公式&#xff0c;非常耗时。我使用Hapigo的Latex 公式识别&#xff0c;感觉还挺好用&#xff0c;但是缺陷是只有30次免费额度&#xff0c;于是在网上搜索了一下&#xff0c;发现可以通过本地…

128K 长文本处理实战:腾讯混元 + 云函数 SCF 构建 PDF 摘要生成器

一、背景 在数字化办公时代&#xff0c;PDF 文档因其格式稳定、兼容性强等特点&#xff0c;成为知识分享与文档存储的主要载体之一。但随着文档规模的增长&#xff0c;如何快速提取关键信息成为亟待解决的问题。尤其对于 128K 字符及以上的长文本 PDF&#xff0c;传统处理方法…