![](https://img-blog.csdnimg.cn/73016be7c9834a059596a32167b7fd07.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
英飞凌Tc3xx EB-tresos Mcal配置详解
文章平均质量分 93
基于英飞凌AURIX2G Tc3xx系列产品,详细记录MCAL各个模块的实现过程以及在实际项目实施过程中所遇到与解决的问题,基于Tc37x开发板进行实验。
剑从东方起
高级软件工程师,汽车电子行业深耕者。
展开
-
TC3XX - MCAL知识点(三十一):FlsLoader MCAL配置及代码实战
FlsLoader Driver的初衷是英飞凌的同步驱动,支持Boot loader 的。在第二代AURIXTM (TC3xx)微控制器中实例化了两种类型的非易失性存储器(NVM)。程序Flash (PFlash)存储程序代码和常量数据DFlash (Data Flash)用于存储特定于应用程序的数据FLSLOADER驱动提供以下服务:Flash的初始化和去初始化将程序和数据写入Flash擦除Flash中的内容锁定和解锁Flash。原创 2023-08-15 13:35:10 · 1117 阅读 · 0 评论 -
TC3XX - MCAL知识点(三十):FEE MCAL配置及代码实战
FEE模块是“内存硬件抽象”层的一部分。FEE应从设备特定的寻址方案和分段中抽象出来,并为上层提供虚拟寻址方案和分段以及“实际上”无限次的擦除/写入周期。软件的上层不应依赖于持久数据存储的类型,即数据是否存储在内部Flash或内部EEPROM或外部存储设备中。上层软件不需要关心存储设备的物理约束。所有这些设备细节都应该封装在Flash EEPROM仿真中。软硬件匹配关系如下图,从图中可以观察出FEE操作的是DF空间,将DF空间看作EEPROM使用。原创 2023-08-15 13:35:02 · 1084 阅读 · 4 评论 -
TC3XX - MCAL知识点(二十九):FLS MCAL配置及代码实战(英飞凌DFLASH)
FLS驱动程序为DFlash 0的初始化、读取、写入和擦除提供了定义良好的配置和标准服务。除此之外,我们还提供一些非autosar服务示例 Fls_17_Dmu_CompareWordsSync、Fls_17_Dmu_CancelNonEraseJobs、Fls_17_Dmu_VerifyErase,LFls_17_Dmu_VerifySectorErase、Fls_17_Dmu_GetNotifCaller等。用户通过FLS驱动程序获得对底层DFlash0的封装访问。原创 2023-08-15 13:34:52 · 1332 阅读 · 0 评论 -
TC3XX - MCAL知识点(二十八):HSSL Mcal配置及代码实战(高速串行链路)
HSSL是五根线的数据通信HSSL模块提供单个数据值和称为流的大数据块的点对点通信。通信设备可以是复杂的微控制器,或者一个微控制器和一个只有基本执行能力的设备。有四个通道来传输单个值到/从目标。它们支持从启动器直接写入8/16/32位数据到目标寄存器,以及从目标读取值,由模块内部主机在目标端执行。为了传输大数据块,有一个包含fifo的通道。HSSL模块完成传输层任务,并将数据移交给另一个模块,该模块提供数据链路层和物理层服务,数据序列化和传输。所有传输都受到CRC和超时等安全功能的保护。原创 2023-08-15 13:34:40 · 1019 阅读 · 1 评论 -
TC3XX - MCAL知识点(二十七):SENT Mcal配置及代码实战(单边半字节传输协议)
SENT协议只有一根线,异步传输!Sent协议的全称为Single Edge Nibble Trans .isson,单边半字节传输协议,是一种单线异步串行通信协议。Sent报文包含8个Nibble和一个校准位如图1所示,每一个Nibble数据被编码成PWM方式。设计这种协议的目的是用在与汽车ECU快速交互信息的传感器上,以此来取代低精确度的10bit AD和PWM。Sent是一种点对点的单方向从传感器到控制端的协议,控制器不需要同步信号。原创 2023-08-15 13:34:23 · 887 阅读 · 0 评论 -
TC3XX - MCAL知识点(二十六):GETH MCAL配置及代码实战(以太网)
以太网(ETH)驱动程序负责提供AUTOSAR指定的标准ETH控制器服务。这使得上层(ETH接口)能够以统一的方式访问底层总线系统。ETH驱动程序提供配置、初始化、数据传输和接收功能。ETH驱动程序提供可选功能,如校验和卸载,时间戳,更新物理源地址,读或写接口到ETH收发器,ETH统计和ETH丢弃计数。软硬件匹配关系从上图可以看出,并没有使用DMA,但是,ETH里面也确实存在DMA,下文会做相应解释。原创 2023-08-15 13:34:00 · 925 阅读 · 6 评论 -
TC3XX - MCAL知识点(二十五):I2C MCAL配置及代码实战(同步、异步)
MCAL的I2C驱动程序负责初始化12C硬件模块。它还提供将数据写入从服务器和从服务器读取数据的服务。它提供了同步(数据传输将在没有中断调用的情况下进行)和异步(数据将通过中断调用进行传输)读/写操作模式。I2C驱动程序实现为构建后变体或变体PB。原创 2023-08-15 13:33:31 · 1274 阅读 · 5 评论 -
TC3XX - MCAL知识点(二十四):UART MCAL配置及代码实战
UART驱动程序负责按照UART协议提供通信服务。ASCLIN模块为异步通信提供硬件支持,实现UART协议。UART驱动程序提供了配置、初始化、数据传输、接收等功能,还提供了中止传输和中止接收 abort等可选特性。软硬件匹配关系如下:UART驱动程序使用ASCLIN进行数据的传输和接收。驱动程序使用的关键硬件功能特性是:1、全双工异步工作模式2、支持半双工工作模式3、16字节的TXFIFO4、16字节的RXFIFO5、2 ~ 16位数据帧6、校验位生成/检查7、一个或两个停止位。原创 2023-08-11 09:22:31 · 786 阅读 · 2 评论 -
TC3XX - MCAL知识点(二十三):ASCLIN MCAL配置及代码实战
对于MCAL来说,LIN驱动程序负责提供符合AUTOSAR指定的LIN 2.1协议的通信服务。ASCLIN模块为LIN协议提供硬件支持。LIN驱动程序提供了UI选项来配置AUTOSAR LIN规范(Version AS 4.2.2)中描述的驱动程序参数,以及配置aslin的各种功能块的附加参数。LIN驱动程序只支持主模式下的LIN通道。在从属模式下操作超出了范围。LIN驱动程序被实现为AUTOSAR指定的Post-Build变体。原创 2023-08-10 08:40:52 · 785 阅读 · 1 评论 -
TC3XX - MCAL知识点(二十二):QSPI 同步与异步 Mcal配置及代码实战
通过QSPI2 分别实现QSPI的同步与异步,资源占用如下P14.7CSP15.6MOSIP15.7MISOP15.8CLK。原创 2023-08-09 09:40:36 · 1893 阅读 · 9 评论 -
TC3XX - MCAL知识点(二十一):QSPI 基础概念梳理
首先什么是QSPI呢?QSPI中的Q是“Queue”的缩写,指的是一块通用的内存,其中包含两种数据,分别为配置数据和传输数据,配置数据就是寄存器的配置,传输数据就是实际要发送的数据,最简单的Queue组成如下图所示,一个4byte的配置数据以及一个4byte的传输数据组成。Tx-FIFO可以保留要发送的数据,并为SPI模块附加配置数据那QSPI有什么好处呢?Queue 使得不同格式的SPI数据的传输更高效,例如:1. 使用一个DMA通道就可以完成Queue和QSPI外围设备的数据传输;原创 2023-08-09 09:40:00 · 857 阅读 · 3 评论 -
TC3XX - MCAL知识点(二十):CAN MCAL配置及代码实战(CAN/CANFD/extenen CAN)
CAN驱动程序负责提供AUTOSAR指定的标准CAN通信服务。M_CAN单元是底层的CAN硬件单元,它由共享消息RAM(在AUTOSAR中称为硬件对象)的节点(在AUTOSAR中称为控制器)组成。CAN驱动提供以下服务:·初始化CAN控制器以控制CAN控制器的行为和状态·设置和修改CAN控制器的波特率配置·支持CAN和CAN FD帧的收发·在轮询和中断模式下,成功的帧传输通知,专用和FIFO消息的接收和总线事件通知·数据接收使用接收FIFO功能·假装网络模式处理·支持多读/写周期功能。原创 2023-08-08 08:30:01 · 2013 阅读 · 4 评论 -
TC3XX - MCAL知识点(十九):EDSADC MCAL配置及代码实战(DSADC实现旋变解码功能)
DSADC驱动提供基于Delta Sigma (DS)转换原理的模数转换。DSADC驱动程序提供对EDSADC IP的功能块的各种参数的配置。驱动程序负责EDSADC IP中通道(内部调制器、解调器、滤波器链)的初始化和配置,从而提供以可选输出速率将模拟输入信号转换为数字数据流的接口。dsadc驱动程序不支持多核处理。驱动程序作为构建后的变体交付。原创 2023-08-07 08:57:53 · 1879 阅读 · 1 评论 -
TC3XX - MCAL知识点(十八):EDSADC基础分析
DSADC驱动提供基于Delta Sigma (DS)转换原理的模数转换。DSADC驱动程序提供对EDSADC IP的功能块的各种参数的配置。驱动程序负责EDSADC IP中通道(内部调制器、解调器、滤波器链)的初始化和配置,从而提供以可选输出速率将模拟输入信号转换为数字数据流的接口。dsadc驱动程序不支持多核处理。驱动程序作为构建后的变体交付。原创 2023-08-07 08:57:12 · 1153 阅读 · 0 评论 -
TC3XX - MCAL知识点(十七):BFx Mcal代码浅析
BFX库为AUTOSAR指定的定点数据提供位处理功能。该库支持8位、16位和32位数据。该库提供了独立于任何底层硬件IP的所有功能。AUTOSAR中的bfx库是用于处理位操作的库。bfx代表"bitfield extension",它提供了对位的操作和转换功能。位字段是一特殊的数据类型,可以将多个位组合在一起,并对其进行操作。bfx库提供了一组API,用于在位字段中设置、清除和读取位,以及进行位字段之间的转换。它可以方便地处理位操作,提高代码的可读性和可维护性。原创 2023-08-04 08:51:45 · 376 阅读 · 0 评论 -
TC3XX - MCAL知识点(十六):EVADC MCAL配置及代码实战
EVADC的EB-tresos配置方面不是特别复杂,难点是各个形式的组合,例如中断与DMA,选择各个硬件触发源等,记录一下自己在实际调试中用到的配置与测试代码加上测试结果,声明一下EVADC这块自己对配置摸索的不是很透彻,文档中有不足的地方请谅解,更欢迎指正,自己的猜想也行,我会注意验证然后再修改进此文档,再次声明!注意!注意!注意!此记录与其他记录的不同点是,此文档Demo猜想居多,如有多雾,多欢迎指正,也感激各位大牛指导。原创 2023-08-04 08:49:26 · 1505 阅读 · 1 评论 -
TC3XX - MCAL知识点(十五):EVADC基础认知
EVADC提供一系列模拟输入通道,连接到几个模拟/数字转换器集群,使用逐次逼近寄存器(SAR)原理将模拟输入值(电压)转换为离散数字值。EVADC基于SAR转换器,每个转换器包括采样保持单元和转换器块。模拟多路复用器从几个输入通道中选择一个,具有多个请求源的专用控制逻辑定义连续转换的顺序。这就形成了一个转换组。ADC集群中的每个转换器都可以独立运行。每个通道的结果可以存储在专用通道特定的结果寄存器中,也可以存储在特定于组的结果寄存器中。原创 2023-08-03 10:23:39 · 1259 阅读 · 5 评论 -
TC3XX - MCAL知识点(十四):CRC EB-tresos配置说明及代码浅析
CRC驱动程序提供API来配置8位,16位和32位多项式的CRC功能,由AUTOSAR规定。CRC驱动程序通过硬件、运行时方法和基于表的方法执行CRC计算。CRC驱动程序使用FCE硬件在硬件上执行CRC计算。CRC驱动程序是作为预编译变体开发的。软硬件匹配关系如下FCE: Flexible CRC Engine,灵活的CRC引擎FCE提供了循环冗余码(CRC)算法的并行实现。原创 2023-08-02 14:01:18 · 524 阅读 · 0 评论 -
TC3XX - MCAL知识点(十三):IOM EB-tresos配置说明及代码浅析
输入输出监视器(IOM)驱动程序作为比较单元,检查系统外设输出的正确操作,这些输出可以作为监视功能的输入。监控功能需要通过配置IOM硬件来实现。它向SMU生成全局系统事件。IOM驱动程序初始化并控制微控制器的IOM单元。驱动程序还为用户提供初始化和设置IOM内部单元的阈值的服务。它还应该提供重置IOM内核的服务。应该提供该服务来组合单个或多个本地事件,以生成单个全局系统事件。IOM驱动程序严重依赖于初始化和配置。软硬件关系如下图缩写解释LAM逻辑分析模块ECM事件组合模块FPC。原创 2023-07-31 08:39:06 · 786 阅读 · 1 评论 -
TC3XX - MCAL知识点(十二):OCU EB-tresos配置说明及代码浅析
OCU的概念,也是在AURIX2G里面第一次去真正认知,缩写OCU,全称Output compare unit,汉语解释输出比较单元,这个牵涉到定时单元相关内容,所以接着ICU、PWM、WDG进行了解浅析一下。OCU驱动程序负责触发一个自由运行的计数器比较匹配的事件。事件可以是引脚电平变化,DMA触发,ADC触发或仅仅是一个通知。OCU驱动提供的服务包括:·启动/停止一个通道·配置比较匹配值·在随后的比较匹配上设置引脚动作·启用/禁用通知并在停止通道上设置引脚电平。原创 2023-07-27 08:45:17 · 891 阅读 · 0 评论 -
TC3XX - MCAL知识点(十一):WDG EB-tresos配置说明与代码浅析
在AUTOSAR中,看门狗栈实现了三种监控机制:实时监控:用于周期软件的定时监控期限监督:针对非周期软件逻辑监督:用于监督执行顺序的正确性看门狗(WDG)驱动实现AUTOSAR(4.2.2)中规定的看门狗SWS,提供初始化、改变操作模式和设置触发条件(超时)等服务,供看门狗硬件(WDT)用户使用。WDG驱动的用户包括:模式管理模块(用于初始化),WdgM通过Wdglf设置触发条件和驱动运行模式设置。WdgM实施上述监督机制。AUTOSAR扩展触发概念,以支持窗口看门狗模式。原创 2023-07-25 08:40:22 · 1571 阅读 · 28 评论 -
TC3XX - MCAL知识点(十):ICU EB-tresos配置说明与代码浅析
支持四种类型的ICU通道(IcuMeasurementMode)边沿计数(ICU_MODE_EDGE_COUNTER):测量指定边沿的个数。边沿检测(ICU_MODE_SIGNAL_EDGE_DETECT):检测到指定边沿后产生中断。信号测量(ICU_MODE_SIGNAL_MEASUREMENT):输入信号的周期和占空比;输入信号的高电平时间;输入信号的低电平时间;输入信号周期。时间戳捕获(ICU_MODE_TIMESTAMP):检测到指定边沿后捕获时间戳信号。原创 2023-07-23 18:54:59 · 1340 阅读 · 6 评论 -
TC3XX - MCAL知识点(九):PWM EB-tresos配置说明及代码浅析
脉冲宽度调制(PWM)驱动器负责提供与AUTOSAR指定的PWM信号生成相关的标准服务。PWM通道的底层定时器驱动是GTM (TOM或ATOM片)或CCU6 (T12或T13片)定时器通道。软硬件匹配关系如下:PWM直接引用的是GTM与CCU6模块,然后GTM与CCU6再关联到Port的,根据软硬件匹配关系,也能调用中断来使用,本例子没使用中断。CCU6是一个高分辨率的16位捕获和比较单元,具有特定的应用模式,主要用于交流驱动控制。特殊的工作模式支持控制无刷直流电机使用霍尔传感器或反电动势检测。原创 2023-07-20 11:07:15 · 1377 阅读 · 2 评论 -
TC3XX - MCAL知识点(八):STM EB-tresos配置说明及代码浅析
STM为实时操作系统和其他系统用途(高精度和远程)提供自由运行的64位定时器。STM复杂驱动程序负责启用STM中断并定期提供alarms。软硬件匹配关系如下硬件功能特性:STM为实时操作系统和其他系统用途(高精度和远程)提供自由运行的64位定时器。STM复杂驱动程序负责启用STM中断并定期提供alarms应用程序复位后自动开始计数64位STM的内容可以与CMP0或CMP1寄存器中存储的比较值的内容进行比较。服务请求可以在STM与CMP0或CMP1寄存器的比较匹配上生成。原创 2023-07-18 08:34:12 · 1166 阅读 · 0 评论 -
TC3XX - MCAL知识点(七):Irq EB-tresos配置说明与代码浅析
中断路由器(IR)模块,它调度来自外部资源、内部资源和SW的中断(这里称为服务请求)到CPU和DMA模块(这里称为服务提供商)。中断请求既可以由cpu处理,也可以由DMA模块处理。中断请求在英飞凌描述中被称为“服务请求”而不是“中断请求”,因为它们可以由任何一个服务提供者提供服务。按照惯例放置一个AUTOSAR图示,本章节可忽略。原创 2023-07-16 14:35:30 · 1096 阅读 · 3 评论 -
TC3XX - MCAL知识点(六):Port&Dio EB-tresos配置说明与代码浅析
PORT驱动程序帮助用户将端口引脚分配给外设,并配置底层硬件提供的特征/特性。由于可用性有限,这些端口引脚在几个芯片外设之间共享。然而,在任何给定的时间点,一个端口引脚被分配给一个外设,并被一个外设精确地使用。软硬件匹配关系如下从上图可以看出,Port相较来说是比较独立的模块,对其他模块的依赖性很小。PORT驱动程序依赖于SCU的时钟、ENDINIT和复位功能。DIO驱动程序使用端口外设。端口外设的使用责任由AUTOSAR划分为两个模块。PORT驱动程序配置和设置端口引脚的属性。原创 2023-07-13 08:44:09 · 1267 阅读 · 0 评论 -
TC3XX - MCAL知识点(五):GPT12 EB-tresos配置说明与代码浅析
通用定时器单元块GPT1和GPT2具有非常灵活的多功能定时器结构,可用于定时、事件计数、脉宽测量、脉冲产生、倍频等用途。统称为GPT12而已。它们包含了5个16位定时器,它们被分组到两个定时器块GPT1和GPT2中。每个块中的每个计时器可以在许多不同的模式下独立运行,例如门控计时器或计数器模式,或者可以与同一块的另一个计时器连接。GPT12模块时钟为FgptGPT1包含三个定时器/计数器:核心定时器T3和两个辅助定时器T2和T4。最大分辨率为fGpT/4。原创 2023-07-11 10:41:10 · 1009 阅读 · 0 评论 -
TC3XX - MCAL知识点(四):GPT EB-tresos配置说明与代码浅析
GPT驱动程序负责为AUTOSAR指定的标准定时器函数提供api。底层定时器驱动是第二代AURIXTM微控制器中可用的GTM定时器通道[TOM/ATOM切片]和GPT12定时器。用户可以为驱动配置多个通道,每个通道可以执行以下操作:1、启动\停止定时器;2、开启与关闭唤醒功能;3、开启与关闭回调函数;4、单次或连续操作模式;5、定时特性通过TOM切片实现,也就是时间片的方式。在AUTOSAR里面的位置如下。原创 2023-07-09 10:46:19 · 1756 阅读 · 4 评论 -
TC3XX - MCAL知识点(三):MCU EB-tresos配置说明及代码浅析
AURIX 2G Tc3xx的配置相较AURIX 1G Tc2xx来讲简化了许多,但是依赖于数据手册的理解来讲整个MCU功能做了较大增强,此处先简单的介绍一下,本文前期先补充介绍一下英飞凌手册的阅读规则,因为后面的文章会基于此文的一些缩写进行截图寄存器之类的。MCU在AUTOSAR架构里面的图示如下MCU驱动程序负责配置SCU、GTM、CCU6、GPT12和STM外设。驱动程序提供由AUTOSAR指定的运行时服务。原创 2023-07-06 08:59:08 · 1526 阅读 · 0 评论 -
TC3XX - MCAL知识点(二):新建Tc3xx的Hightec工程详细步骤
新建Hightec工程的方式有有许多种,随着Hightec版本的更迭发现前几年新建与现在新建一个基础工程的方式稍微有些不同,不过最终产生的导向都是一致的,记录一下新建Hightec工程的方式。如何下载Hightec一年适用版本见链接Hightec试用一年下图为Hightec工程界面。原创 2023-07-04 09:24:43 · 1437 阅读 · 1 评论 -
TC3XX - MCAL知识点(一):新建Tc3xx EB-tresos工程
基于EB-tresos建立Hightec或者Tasking工程的时候,第一个步骤就是需要新建一个EB-tresos的工程,本文记录一下如何新建一个EB-tresos工程,以及对其进行简单的操作。那么Tc3xx的MCAL包含哪些内容呢?原创 2023-06-29 14:58:31 · 1583 阅读 · 4 评论