TLF35584 SPI

2023-11-05 00:30
文章标签 spi tlf35584

本文主要是介绍TLF35584 SPI,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

SPI

  • SPI介绍
  • SPI对受保护寄存器的写访问
  • SPI写初始状态转换请求和稳压器配置

SPI介绍

  1. Main functions
    串行外设接口总线或SPI总线是在全双工模式下工作的同步串行数据链路。TLF35584采用从模式通信,由主机(μC)发起数据帧。TLF35584应该通过专用的芯片选择线进行寻址。这允许其他从设备连接到SPI总线。
  2. Data transmission
    要开始通信,μC首先配置时钟,使用小于或等于TLF35584支持的最大频率。μC下拉TLF35584的芯片选择。
  3. Functional description
    SPI基本访问:MOSI(引脚SDI)上的所有数据在SPI时钟信号(引脚SCL)的上升沿上捕获,并在SPI时钟信号(引脚SCL)的下降沿上移位。同样的方法需要在MISO (SDO)的SPI master中应用。读操作必须从CMD-bit为1’b0开始,写操作必须从CMD-bit为1’b1开始。
    在执行写操作的情况下,将写到SDl的命令循环回SDO。
    如果执行读操作,则对输出数据流计算奇偶校验。用于计算的数据包括1’b1, status[5:0]和rd_data[7:0]。如果输出数据流中的“1”为奇数,则奇偶校验位设置为“1”,即异或功能之间的所有15位发送出去。
    对写数据进行奇偶校验。奇偶校验是在输入的位流上计算cmd位、六个地址位和八个数据位的。
    如果状态机(FSM)处于INIT状态、NORMAL状态、WAKE状态或SLEEP状态,则可以随时通过SPI进行配置。在睡眠状态期间,SPI的最大时钟频率降低,详细信息请参见表19。
    SPI访问时序见下图:
    在这里插入图片描述
    • 在写入过程中,来自MOSI的数据直接回圈,在读取过程中,寻址寄存器内容将在相同的SPI帧中提供。
    • cmd位总是设置为1’b1。所有其他状态位被置零。
      在这里插入图片描述

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

某些内部寄存器(SYSPCFGO、SYSPCFG1、WDCFGO、WDCFG1、FWDCFG、WWDCFGO、WWDCFG1)需要防止被意外覆盖。保护的状态可以通过读取寄存器PROTSTAT中的LOCK位来检查。
只有在专用的32位解锁序列通过SPI发送后,才能对这些寄存器进行写访问。这四个字节需要在没有任何其他SPI写访问的情况下发送。发送出错误将重置序列检测,即必须发送新的UNLOCK序列。如果对任何其他寄存器进行写访问,则在两者之间检测到PROTCFG,则产生中断并成功检测到的解锁序列字节数设置为零。在INIT, NORMAL和WAKE状态下可以访问受保护的寄存器。
UNLOCK序列由4个连续字节的32位序列组成(1:0xAB;2:0xEF;3:0x56;4:0x12),必须在没有其他SPI写访问的情况下发送。每个写入字节的正确性可以通过读取寄存器PROTSTAT来检查。一旦UNLOCK序列被成功执行,任何受保护的配置请求寄存器都可以被写入。为了确保正确写入受保护的配置请求寄存器,微控制器应回读寄存器值并通过检查数据来验证正确性。在读取操作期间,写入受保护的配置请求寄存器的数据位被反转然后发送回来,这意味着微控制器可以计算读取和期望的寄存器数据的异或。如果寄存器数据正确,结果应该是OxFF。TLF35584不会检查寄存器中值的正确性。
所有受保护的配置请求寄存器值只有在成功执行LOCK序列之后才由相应的函数捕获。一个成功的锁序列包含一个32位的4个连续字节序列(1:OxDF;2:0x34;3:0xBE;4:0xCA),必须在没有其他SPI写访问的情况下发送。每个写入字节的正确性可以通过读取寄存器PROTSTAT来检查。
发送出错将重置序列检测,即必须发送一个新的锁序列。在这种情况下(在LOCK序列之间的任何SPI写访问)都会产生中断。
一旦检测到成功的LOCK序列,配置寄存器和所有内部函数就会使用受保护的配置请求寄存器的值进行更新。μC的责任是通过将新值写入特定寄存器或通过回读应该保持不变的寄存器来确保所有寄存器都正确配置。不支持部分重新配置受保护的寄存器,即只配置一个函数而保持其他函数不变,因为通过成功的锁序列,所有受保护的配置请求寄存器都被接管到配置中(RSYSPCFGO, RSYSPCFG1,RWDCFGO, RWDCFG1, RFWDCFG, RWWDCFGO, RWWDCFG1)。
在LOCK序列之后,内部配置时间为max。必须考虑60个us,以确保新的配置被接管。
受影响的功能:

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

SPI写初始状态转换请求和稳压器配置

状态机转换可以通过SPI命令启动。如果任何可选电压源(post regular)的状态预计会在下一个状态下发生变化,则该信息必须与命令一起发送到相同的寄存器中。如果特定电压源(后稳压器)的设置应该改变,但状态需要保持不变,则可以采用相同的方法。这基本上意味着,SPI命令包含FSM的当前状态,但对于可配置的电压源(后稳压器)有不同的设置。
为了请求状态转换和/或更改LDO配置,请求数据必须依次写入两个分离的寄存器DEVCTRL和DEVCTRLN。与写入DEVCTRL的数据相比,写入DEVCTRLN的数据必须按位反转。只有当两个寄存器在彼此之后连续写入时(第一个DEVCTRL和第二个DEVCTRLN ),请求才会被接受,并将在第二个命令结束时在CS的上升沿被接管。
在无效请求的情况下(错误的顺序或DEVCTRLN没有倒转到DEVCTRL),它将被拒绝,一个中断被生成,并设置相应的状态标志(NO_OP)。根据第11章的状态机,如果一个无效的状态转换请求,该请求将被忽略而不发出中断。

相关的寄存器可以查看data sheet寄存器,这里不再赘述。

这篇关于TLF35584 SPI的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/346208

相关文章

【STM32】SPI通信-软件与硬件读写SPI

SPI通信-软件与硬件读写SPI 软件SPI一、SPI通信协议1、SPI通信2、硬件电路3、移位示意图4、SPI时序基本单元(1)开始通信和结束通信(2)模式0---用的最多(3)模式1(4)模式2(5)模式3 5、SPI时序(1)写使能(2)指定地址写(3)指定地址读 二、W25Q64模块介绍1、W25Q64简介2、硬件电路3、W25Q64框图4、Flash操作注意事项软件SPI读写W2

stm32之软件SPI读写W25Q64存储器应用案例

系列文章目录 1. stm32之SPI通信协议 文章目录 系列文章目录前言一、电路接线图二、应用案例代码三、应用案例分析3.1 SPI通信模块3.2 W25Q64模块3.3 主程序 前言 提示:本文主要用作在学习江科大自化协STM32入门教程后做的归纳总结笔记,旨在学习记录,如有侵权请联系作者 本案例使用软件SPI通信的方式实现了STM32与W25Q64 Flas

Flink1.10基于工厂模式的任务提交与SPI机制

《2021年最新版大数据面试题全面开启更新》 Flink任务执行模式包含了yarn-session、standalone、per-job、local, 在1.10中又增加k8s的执行模式,那么在任务提交过程中如何根据不同的执行模式进行任务提交呢?主要通过两个接口来实现:PipelineExecutorFactory 与 PipelineExecutor。PipelineExecutorF

转载 SPI的比喻理解

SPI 传输是一个虚拟的移位寄存器方式。 你这么理解就可以: 主机和从机之间有一条 16 格的传送带。主机一格一格拨动它转动(相当于发送时钟)。 如果是主机发送,它就把一个个的东西放在传送带上,转动 8 次,就传到从机一侧了。这时,从机可以从传送带上将东西取下。如果从机没有取东西,这些东西再转 8 次又回到主机一侧。 如果是主机接收,从机就要把 8 个东西一次放上传送带。当主机转动 8 次,东西就

Java SPI机制源码

文章目录 SPI简介使用案例SPI的应用SPI机制源码SPI与类加载器双亲委派机制 SPI简介 Java的SPI(Service Provider Interface)机制允许第三方为应用程序提供插件式的扩展,而不需要修改应用程序本身的代码,从而实现了解耦。Java标准库本身就提供了SPI机制,通常是通过在META-INF/services目录下放置文件来实现的。 S

W25Q32驱动 基于HAL库的SPI

环境 芯片:STM32F103ZET6 库:来自HAL的STM32F1XX.H 原理图 cubeMX配置 W25Q32.h //// Created by seven on 2024/9/2.//#ifndef SPI_W25Q32_H#define SPI_W25Q32_H#include "spi.h"/*** 初始化W25Q32闪存芯片*/void W25Q32

STM32F10XX中SPI的DMA发送数据

参考资料: http://blog.csdn.net/jdh99/article/details/7603029 http://www.openedv.com/posts/list/3159.htm     上面提到的两篇博文比较详细深刻的说明了DMA的工作方式以及SPI的DMA传输方式的特点。结合对Stm32F103VET6中SPI的DMA传输方式的配置和学习谈谈感受,在看下面的内容之前请

解耦利器 - Java中的SPI机制

为什么需要SPI机制 SPI和API的区别是什么 SPI是一种跟API相对应的反向设计思想:API由实现方确定标准规范和功能,调用方无权做任何干预; 而SPI是由调用方确定标准规范,也就是接口,然后调用方依赖此接口,第三方实现此接口,这样做就可以方便的进行扩展,类似于插件机制,这是SPI出现的需求背景。 SPI : “接口”位于“调用方”所在的“包”中 概念上更依赖调用方。 组织上位于

【STM32项目设计】STM32F411健康助手--硬件SPI (硬件NSS/CS)驱动st7735--1.8寸TFT显示屏(1)

#include "lcd_driver.h"static uint16_t SPI_TIMEOUT_UserCallback(uint8_t errorCode);//液晶IO初始化配置void LCD_Driver_Init(void){SPI_InitTypeDef SPI_InitStructure;GPIO_InitTypeDef GPIO_InitStructure;/* 使

【MCAL】TC397+EB-tresos之SPI配置实战 - (同步/异步)

本篇文章首先从理论讲起,从AUTOSAR规范以及MCAL手册两个不同角度(前者偏理论,后者偏实践)介绍了SPI模块的背景概念与理论,帮助读者在实际配置之前能有个理论的框架。然后详细的介绍了在TC397平台使用EB tresos对SPI驱动模块进行配置与调试的实战过程,帮助第一次接触这个模块的读者能够更快的上手来实现符合自己项目要求的开发工作,完成SPI通信。文章分别从同步和异步两种方式介绍了配置