AUTOSAR SPI详解
1.SPI通信
1)SPI通信脚
- SCLO:串行时钟sclk。
- MTSR:主向从方向数据MTSR(主发送从接收)。
- MRST:从向主方向数据MRST(主接收从发送)。
- SLSO:从选择信号SLS,支持16路片选控制。

2) SPI状态机

2.SPI通信波形
在主机模式,QSPI模块产生定时,串行时钟,和从选择信号。
配置QSPI通信阶段长度的可能性:定时延迟、数据长度、占空比和数据采样。
QSPI帧从激活一个从选择信号SLSO(从空闲到前导延迟阶段)开始,到终止(从拖后延迟到等待或空闲阶段)。它是一个由五个阶段组成的序列:空闲延迟、前导延迟、数据阶段、结束延迟和一个可选的等待阶段。IDLE阶段细分为两个长度相等的阶段:IDLE A和IDLE B。
WAIT:等待阶段只是一个循环,等待Tx FIFO,没有预定义的持续时间,也没有定义位域。
IDLE:空闲延迟,IDLE位域定义了两个长度相同的子阶段IDLEA和IDLEB。
LEAD:前导延迟
DATA:数据段
TRAIL:结束延迟

1) 时间延迟
公式里的LPRE和LEAD的值分别对应MCAL的 SpiDelayParamLeadPre 和 SpiDelayParamLeadLength的配置值。
Leading delay 取决于LPRE、LEAD和TPER,如都配置为一样。
可以查看两个模块通道对应的BACON寄存器的实际配置值确认一下。


2) SPI四种时序
SPI模式选择:
CPOL是用来决定SCK时钟信号空闲时的电平,CPHA是用来决定采样时刻的。
CPOL=0,空闲电平为低电平,CPOL=1时,空闲电平为高电平。
CPHA=0,在每个周期的第一个时钟沿采样,CPHA=1,在每个周期的第二个时钟沿采样。

(图片来源于百度百科)
SPI模式设定:主机与从机选择的时钟极性(CPOL)和时钟相位(CPHA)要相同。
slave通信波形,在SLSO信号选择后立即提供第一个比特的有效值。在这种情况下,使用帧中的第一个时钟边缘锁存第一个比特"first data bit"。第二条边传递第二个比特值,以此类推。帧中的最后一条边传递了一个不在乎的比特。
相位:CPH = 0,CPOL = 1

相位:CPH = 1,CPOL = 1

3) 达芬奇配置
(1).配置时钟
SPI模式主机与从机选择的时钟极性(CPOL)和时钟相位(CPHA)要相同。
Data Shift Edge : LEADING / TRAILING
Shift Clock IDLE Level: LOW / HIGH
(2).配置时间延迟
通过修改Idle Time、Time Clk2 Cs、Trailing Time改变通信的整个时间长度。

4) 生成代码

3.SPI的一主多从
1)概述
1.AURIX芯片TC3xx的QSPI支持一主与16路从机分别通信,通过片选脚(SLSO)进行切换选择。
2.支持一主分别与时钟极性(CPH)与时钟相位(CPOL)不同的从机分别通信。
3.主从之间配置为异步通信必须使用DMA,同步通信则可以不需要配置DMA。
2)说明
QSPI架构如图所示支持16路片选脚

示意图如下

3)达芬奇配置
AURIX芯片为主机模式,从机的片选脚连接在P22.2管脚。

(1)Port口配置为GPIO模式

(2)配置SPI外设驱动
保持主机与从机在同一时钟模式下。

SpiExternalDevices:配置SPI的外设驱动,此处配置主机与外设从机通信参数与SLSO脚选择。

配置主机与外设从机通信参数

选择SLSO脚为P22.2脚

相关文章:
AUTOSAR SPI详解
1.SPI通信 1)SPI通信脚 SCLO:串行时钟sclk。MTSR:主向从方向数据MTSR(主发送从接收)。MRST:从向主方向数据MRST(主接收从发送)。SLSO:从选择信号SLS,支持16路片选控制。 2) SPI状态机 2.SPI通信波形 在主…...
SpringBoot快速入门(黑马学习笔记)
需求 需求:基于SpringBoot的方式开发一个Web应用,浏览器发起请求/hello后,给浏览器返回字符串"Hello World~"。 开发步骤 第一步:创建SpringBoot工程项目 第二步:定义HelloController类,添加方…...
压力测试工具Jmeter的下载与使用
1、进入官网下载Jmeter https://jmeter.apache.org/ 国内镜像(下载的慢的话可以用国内镜像下载) https://mirrors.cloud.tencent.com/apache/jmeter/binaries/ 2、跳转到下载页面 3、根据不同系统下载相应版本的Jmeter压缩包,Linux系统下载…...
kubectl 陈述式资源管理方法
目录 陈述式资源管理方法 项目的生命周期 1.创建kubectl create命令 2.发布kubectl expose命令 service的4的基本类型 查看pod网络状态详细信息和 Service暴露的端口 查看关联后端的节点 编辑 查看 service 的描述信息 编辑在 node01 节点上操作,查看…...
从 iOS 设备恢复数据的 20 个iOS 数据恢复工具
作为 iPhone、iPad 或 iPod 用户,您可能普遍担心自己可能会丢失存储在珍贵 iOS 设备中的所有宝贵数据。数据丢失的原因多种多样,这里列出了一些常见原因: 1. iOS 软件更新 2. 恢复出厂设置 3. 越狱 4. 误操作删除数据 5. iOS 设备崩溃 …...
cpp基础学习笔记03:类型转换
static_cast 静态转换 用于类层次结构中基类和派生类之间指针或者引用的转换。up-casting (把派生类的指针或引用转换成基类的指针或者引用表示)是安全的;down-casting(把基类指针或引用转换成子类的指针或者引用)是不安全的。用于基本数据类型之间的转换ÿ…...
H3C OSPF 外部路由引入实验
H3C OSPF 外部路由引入实验 实验拓扑 实验需求 按照图示配置 IP 地址R1,R2,R3 运行 OSPF 使内网互通,所有接口(公网接口除外)全部宣告进 Area 0;要求使用环回口作为 Router-id业务网段不允许出现协议报文…...
ARM简介
ARM:ARM是Advanced RISC Machine的缩写,意为高级精简指令集计算机。 英国ARM公司,2016年被软银创始人孙正义斥资320亿美元收购了。现在是软银旗下的芯片设计公司,总部位于英国剑桥,专注于设计芯片,卖芯片生…...
MySQL(基础篇)——事务
一.事务简介 事务是一组操作的集合,他是一个不可分割的单位,事务会把所有的操作作色一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。 默认MySQL的事务是自动提交的,也就是说,…...
XGB-15:调参注意事项
参数调优是机器学习中的一门黑艺术,一个模型的最优参数可能取决于许多情境。因此,要为此提供全面的指南是不可能的。 了解偏差-方差权衡Bias-Variance Tradeoff 当能允许模型变得更加复杂(例如更深),模型具有更好的拟…...
蓝桥杯_定时器的基本原理与应用
一 什么是定时器 定时器/计数器是一种能够对内部时钟信号或外部输入信号进行计数,当计数值达到设定要求时,向cpu提出中断处理请求,从而实现,定时或者计数功能的外设。 二 51单片机的定时/计数器 单片机外部晶振12MHZ,…...
【跨境电商须知】FP独立站的特点和痛点有哪些?
无论是做独立站,还是做亚马逊,都有各自的难点。自己做独立站若要在跨境行业长足发展,既要知道FP独立站有什么特点,要清楚FP独立站的痛点并一一克服。 一、FP独立站的特点 与依赖第三方平台相比,拥有自己的域名、服务器…...
js 精确计算(解决js四则运算精度缺失问题)
js的小数的运算,可能会得到一个不精确的结果,因为所有的运算都要转换成二进制去计算,然而,二进制无法精确表示1/10。 var a 0.1 0.2; console.log(a); //打印结果:0.30000000000000004因此需要使用以下方法实现精确…...
SpringBoot之统一事务管理配置
SpringBoot之自定义Jackson反序列化日期类型转换配置类 文章目录 SpringBoot之自定义Jackson反序列化日期类型转换配置类1. SpringBoot版本2. 统一事务管理配置类3. 主启动类加入开启事务的注解 统一事务管理配置 1. SpringBoot版本 <parent><groupId>org.springfr…...
荒岛生存:以牙签为核心资源的生存策略与思考
设想一下,当你不幸流落荒岛,随身携带的唯一物品是一盒牙签,面对极端环境与匮乏资源,如何运用这一看似微不足道的工具进行生存,成为了一项严峻的挑战。本文旨在探讨如何最大限度地发挥牙签在荒岛生存中的作用࿰…...
云计算 2月26号 (进程管理和常用命令)
一、权限扩展 文件权限管理之: 隐藏权限防止root误删除 文件属性添加与查看 [rootlinux-server ~]# touch file1 file2 file3 1.查看文件属性 [rootlinux-server ~]# lsattr file1 file2 file3 ---------------- file1 ---------------- file2 ---------------- f…...
Pytorch中,dim形象化的确切意义是什么?
在Pytorch中涉及张量的操作都会涉及“dim”的设置,虽然也理解个大差不差,但是偶尔还是有点犯迷糊,究其原因还是没有形象化的理解。 首先,张量的维度排序是有固定顺序的,0,1,2,.....…...
跨域引起的两个接口的session_id不是同一个
来源场景: RequestMapping(“/captcha”)接口设置了SESSION_KEY,也能获取到,但是到了PostMapping(“/login”)接口就是空的,由于跨域导致的两个session_id不是同一个 /*** 系统用户 前端控制器*/ Controller CrossOrigin(origins…...
解释一下前端框架中的虚拟DOM(virtual DOM)和实际DOM(real DOM)之间的关系。
聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…...
【MyBatis-Plus】之queryWrapper.apply用法
目录 一、queryWrapper.apply的含义及其用法 二、其他方法 三、注意事项 官网地址:MyBatis-Plus https://baomidou.com/ 一、queryWrapper.apply的含义及其用法 QueryWrapper.apply() 是 MyBatis-Plus 提供的方法,用于构建动态 SQL 查询条件。它允许…...
Xshell远程连接Kali(默认 | 私钥)Note版
前言:xshell远程连接,私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...
阿里云ACP云计算备考笔记 (5)——弹性伸缩
目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...
Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...
大型活动交通拥堵治理的视觉算法应用
大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动(如演唱会、马拉松赛事、高考中考等)期间,城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例,暖城商圈曾因观众集中离场导致周边…...
基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
基于 UniApp + WebSocket实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...
JVM垃圾回收机制全解析
Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...
OkHttp 中实现断点续传 demo
在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...
MySQL账号权限管理指南:安全创建账户与精细授权技巧
在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则…...
Python 包管理器 uv 介绍
Python 包管理器 uv 全面介绍 uv 是由 Astral(热门工具 Ruff 的开发者)推出的下一代高性能 Python 包管理器和构建工具,用 Rust 编写。它旨在解决传统工具(如 pip、virtualenv、pip-tools)的性能瓶颈,同时…...
使用LangGraph和LangSmith构建多智能体人工智能系统
现在,通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战,比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...
