- 博客(259)
- 收藏
- 关注
原创 TC3XX - MCAL知识点(四十二):AURIX™ TC3xx实现多相电机需要多核配合使用的场景与实操分析
本文探讨了多相电机控制系统中的关键技术问题,重点分析了多核处理器在电机控制中的应用。针对十二相电机等复杂应用场景,提出了同步采样、多核协同等解决方案。文章详细阐述了相电流同步采样原理及EBTresos配置方法,分析了ADC硬件触发机制和多核配合策略。通过Core0和Core1的协同工作设计,解决了位置信息采集与FOC算法执行的时序问题,并提供了代码实现示例。实验验证了采用ATOM0_7同时触发两个核ADC中断的可行性,为多相电机控制系统的实现提供了技术参考。
2025-11-23 07:30:00
67
原创 汽车电子笔记之:多核OS部署方案与性能优化策略(转载)
本文探讨了汽车电子领域多核OS的部署方案与性能优化策略。文章首先分析了从单核到多核架构的必然转变,指出功能集成、实时性要求和成本控制是推动多核化的关键因素。随后系统介绍了多核OS的基础理论,包括同构/异构架构、内存设计原理,以及AUTOSAR标准的演进历程。重点剖析了多核系统的五大性能瓶颈(同步通信、上下文切换、资源争用、干扰效应、内存分配),并提供了五个实战案例:负载均衡优化、主从架构设计、协议栈分布式部署等。最后从哲学层面总结了多核设计的平衡艺术,强调在性能与可靠性、通用性与专用性之间寻找最优解。文章融
2025-11-02 07:30:00
884
原创 TC3XX - MCAL知识点(四十一):AURIX™ TC3xx 的EDSADC实现旋变解码功能(代码实战:结果值获取+时间戳捕获)
本文详细介绍了基于TC3XX实现软解码位置信息采样的方法,重点阐述了PWM中断和EDSADC中断时间戳的获取技术。通过EB工具配置EDSADC模块,包括通道设置、滤波器配置等关键参数,并给出了硬件连接方案(正弦/余弦输入、励磁信号输出)。在时间戳获取方面,分别讲解了PWM触发信号(通过TIM2_7捕获P15.4边沿)和EDSADC触发信号(通过TIM2_6连接SRM0)的实现方法,提供了完整的寄存器配置代码示例。最后通过UDE工具成功验证了时间戳差值计算功能,为旋变解码等应用提供了可靠的时间同步解决方案。
2025-10-26 07:30:00
152
原创 TC3XX - MCAL知识点(四十):AURIX™ TC3xx 的EDSADC实现旋变解码功能(实现过程疑惑点)
本文总结了TC3XX微控制器EDSADC模块实现旋变软解码过程中的关键问题与解决方案。主要内容包括: 结果获取方式:论证了中断与轮询两种方式,推荐使用中断方式(102.4μs周期)以保证实时性,详细分析了中断触发机制和DRDY标志的作用。 信号同步问题:解释了为何不需单独获取sin/cos值,硬件已实现同步采样和解码;分析了9.76kHz励磁频率与采样频率的关系,说明过采样机制。 延时补偿:深入探讨了CGSYNC寄存器的SDCAP/SDCOUNT功能,说明如何计算和补偿信号翻转延迟,并对比了相位同步延迟与系
2025-10-19 07:30:00
142
原创 TC3XX - MCAL知识点(三十九):AURIX™ TC3xx 的EDSADC实现旋变解码功能(应用笔记记录)
本文总结了英飞凌应用笔记中关于EDSADC旋变解码系统的关键内容。系统通过调幅解调获取电机位置和速度信号,支持内外载波生成方案,其中内部载波方案更常用(需2个DSADC通道)。重点介绍了滤波器链配置建议(避免FIR1)、系统条件要求(如偶数积分周期)以及群延迟计算方法。特别分析了SDCAP功能对硬件延迟的补偿机制,指出温度等因素可能导致外部电路延迟变化,需通过计数器测量并通过软件调整积分器起始点来消除角度误差。文中还提供了不同硬件延迟情况下的信号处理示例。
2025-10-12 07:30:00
126
原创 TC3XX - MCAL知识点(三十八):AURIX™ TC3xx 的EDSADC实现旋变解码功能(理论知识+手册阅读)
本文系统梳理了英飞凌AURIX系列芯片EDSADC模块的技术手册内容。首先概述了该模块的架构特点,包括模拟/数字输入通道和总线地址信息。重点解析了手册中的关键知识点:1)模拟量输入的差分/单端模式;2)数字量连接的触发、数据源和时钟源选择;3)功能配置中的寄存器操作注意事项;4)输入通道的三种数据来源模式;5)滤波器链的组成和工作原理;6)旋变应用中的载波信号生成和延迟补偿机制。最后对SRM、SAUL、SBLL等专业术语进行了详细解释。全文为理解EDSADC模块的硬件特性和配置方法提供了系统的技术参考。
2025-09-28 07:30:00
219
原创 TC3XX - MCAL知识点(三十七):AURIX™ TC3xx 的BootLoader烧录APP完成之后跳转使多个核均正常运行
摘要:针对AURIX TC3xx多核芯片在软件复位后仅Core0能启动的问题,分析发现该芯片在Cold Power-on Reset(断电复位)时会完整执行多核启动流程,而Application Reset(软件复位)会跳过从核初始化。解决方案包括:1)在BootLoader中显式调用IfxCpu_startCore()函数启动其他核;2)通过跳转函数强制各核从指定地址启动;3)双Boot场景下让每个核独立响应复位命令。实测表明,软件复位后需手动触发从核启动,或采用断电复位方式确保所有核正常初始化。
2025-09-21 07:30:00
141
原创 NXP实战笔记(十八):S32K3xx基于RTD-SDK在S32DS上配置I2C驱动,代码实现及测试
本文主要记录了在S32K3xx平台上配置I2C通信的过程及注意事项。文章首先回顾了I2C协议的关键要点,包括起始/停止信号判断和数据传输时序要求。重点指出了S32K3xx配置中的三个关键点:1)引脚必须配置为开漏输出加上拉电阻;2)波特率计算公式及参数选择;3)必须配置中断处理状态标志。通过实验验证发现,当主机发送数据时若没有从机响应,总线上只会出现地址信息和NACK信号。最后展示了主从机通信的完整配置代码和两种数据接收方式,为S32K3xx的I2C实现提供了实用参考。
2025-09-14 07:30:00
1256
2
原创 NXP实战笔记(十七):S32K3xx普通IO口当作中断使用SIU2 Irq的用法
S32K3xx芯片IO口外部中断配置方法总结:1)查阅RM文档SIUL2章节,确认硬件支持;2)通过RTD配置三个模块:IO设为eirq功能、Siul2_Icu模块配置通道和触发条件、IntCtrl_Ip设置中断向量;3)代码实现需调用初始化、使能中断和设置触发条件等函数;4)测试时通过下降沿触发中断,在回调函数中控制IO电平。配置时需注意中断向量号与触发条件的匹配。
2025-09-07 07:30:00
460
原创 AURIX芯片笔记:TriCoreTM TC1.6.2核心架构手册 - Part1-第十三章节:核心寄存器表(翻译加理解)
下表列出了所有 TriCore™ CSFR 和 GPR。内存保护系统是模块化的,寄存器的实际数量取决于具体实现。2)这些寄存器受SAFETY_ENDINIT保护。1)这些寄存器受ENDINIT保护。MTCR指令不使用这些地址偏移量。
2025-08-31 07:30:00
218
原创 AURIX芯片笔记:TriCoreTM TC1.6.2核心架构手册 - Part1-第十二章节:核心调试控制器(翻译加理解)
TriCore™ 调试功能是架构、实施和软件工具的接口。请用户注意,后续架构的机制可能会有所不同。 核心调试控制器旨在支持需要非侵入式调试的实时系统。CPU内核和内核片上存储器中的大多数架构状态都可以通过系统地址映射访问。 对核心调试的访问通常通过包含CPU的系统的片上调试支持(OCDS)提供。
2025-08-24 07:30:00
866
原创 AURIX芯片笔记:TriCoreTM TC1.6.2核心架构手册 - Part1-第十一章节:时间保护系统 (翻译加理解)
写入零值将停用定时器。写入非零值则启动定时器。任何写入都会清除相应的 TPS_CON.TEXP 标志。读取则返回定时器当前值。
2025-08-17 07:30:00
1277
原创 AURIX芯片笔记:TriCoreTM TC1.6.2核心架构手册 - Part1-第十章节:内存保护(翻译加理解)
保护系统不区分访问权限级别。对于指令获取,将根据当前保护集的启用执行的选定代码保护范围检查获取的PC值。在每个寄存器中,如果寄存器的第 x 位为 1,则范围-x 的权限被启用,否则权限被禁用。对于需要虚拟内存的应用程序,可选的内存管理单元(memory Management Unit, MMU)支持一种熟悉的模型,该模型为每个内存页提供自己的访问权限。当发现某个地址不在所有选定范围内时,将拒绝该地址的访问权限。内存保护时间起来比较简单,难的是地址范围的选择及寄存器的计算这块,之前的文章里面是有描述的。
2025-08-10 07:30:00
1009
原创 AURIX芯片笔记:TriCoreTM TC1.6.2核心架构手册 - Part1-第九章节:浮点单元(翻译加理解)
FPU执行兼容IEEE-754的单精度浮点运算指令,并支持以下特性集:- 浮点加法、减法、乘法、MAC 和除法指令。- 将有符号和无符号整数以及 32 位有符号分数(Q31 格式)转换为或从 IEEE-754 单精度格式转换为 TriCore 有符号和无符号整数以及 32 位有符号分数(Q31 格式)。- QSEED.F 指令用于获取近似值,以便在牛顿-拉斐森迭代中执行平方根运算。- 两个浮点数的比较。- 实现了所有四种 IEEE-754 四舍五入模式。
2025-08-03 07:30:00
760
原创 AURIX芯片笔记:TriCoreTM TC1.6.2核心架构手册 - Part1-第八章节:地址映射和内存配置(翻译加理解)
Tricore 架构将 4 GB 字节(32 位)的物理地址空间划分为 16 个大小相等的 256MB 字节段。这些段的编号从 0H 到 FH,由地址的高 4 位标识。如本章所述,不同的段可配置为不同的访问特性。8.2、暂存RAMTriCore 架构支持使用紧密耦合的 SRAM,即暂存 RAM。程序和数据均支持独立的 SRAM。程序擦写板 RAM (PSPR) 位于 CH 段。数据划拨板 RAM (DSPR) 位于 DH段划拨板 RAM 的大小取决于执行情况。访问超出执行内存大小的段将导致陷阱。
2025-07-27 07:30:00
932
原创 AURIX芯片笔记:TriCoreTM TC1.6.2核心架构手册 - Part1-第七章节:减少内存完整性错误(翻译加理解)
本地指令内存中检测到的内存完整性错误将导致以下两种情况之一:- 本地数据内存中检测到的内存完整性错误将导致以下两种情况之一: 可纠正错误和一个 CCPIE 计数器的增量- 不可纠正错误触发 PIE 陷阱 本地数据内存中检测到的内存完整性错误将导致以下两种情况之一: 可纠正错误和一个 CCDIE 计数器的增量 - 不可纠正错误触发 DIE 陷阱:- 可纠正错误和一个 CCDIE 计数器的增量- 触发 DIE 陷阱的不可纠错 内存完整性错误的实际检测方法取决于执行情况。
2025-07-20 07:30:00
706
原创 AURIX芯片笔记:TriCoreTM TC1.6.2核心架构手册 - Part1-第六章节:Trap系统(翻译加理解)
第三种可能是不直接终止任何任务,而是将一个或多个不活动任务的调用链复制到未缓存的外部内存或二级内存(这些内存不能直接用于 CSA 存储),并将复制的 CSA 释放到空闲列表。所有陷阱服务例程的入口点都存储在内存的陷阱向量表中。对于 MMU 陷阱(陷阱类别 0),异常条件要么是找不到指令引用的虚拟页面的 TLB(转换旁路缓冲区)条目(VAF 陷阱),要么是该页面的访问违规(VAP 陷阱)。陷阱发生时,陷阱矢量表的入口地址由该陷阱的陷阱类别生成,左移 5 位,然后与 BTV 寄存器的内容进行 ORd。
2025-07-13 07:30:00
1648
原创 AURIX芯片笔记:TriCoreTM TC1.6.2核心架构手册 - Part1-第五章节:中断系统(翻译加理解)
例如,如果中断 14 被服务,它只能被优先级高于 17 的请求中断,而不能被其自身优先级组的请求或优先级较低的请求中断。当中断被接受时,中断向量表的入口地址由该中断的优先级号(取自 PIPN)生成,左移 3 位或 5 位,然后与 BIV 寄存器的内容进行 OR。根据 ISR 的代码大小,在传统的中断系统中,ISR 必须检查中断请求的当前优先级,并执行分支到相应的代码段,从而导致对请求的响应延迟。英飞凌的中断优先级组是英飞凌微控制器中用于管理中断优先级的一种机制,它允许将多个中断划分为不同的优先级组。
2025-07-06 07:30:00
875
原创 AURIX芯片笔记:TriCoreTM TC1.6.2核心架构手册 - Part1-第四章节:任务与功能(翻译加理解)
如果在尝试执行保存上下文的操作时,FCX 的值与 LCX 的值相匹配,则操作完成,并在下一条指令中执行自由 CSA 列表耗尽陷阱(FCD);调用或需要更多寄存器的处理程序通常会执行 BISR(开始中断服务例程)或 SVLCX(保存下层上下文)指令,以保存中断或陷阱序列中未保存的下层上下文寄存器。对于中断和陷阱,当前 PCXI 中现有的 PCPN 和 PIE 值将保存在上层上下文的 CSA 中,ICR 中现有的 IE 和 CCPN 值将复制到 PCXI.PIE 和 PCXI.PCPN 字段。
2025-06-29 07:30:00
950
原创 AURIX芯片笔记:TriCoreTM TC1.6.2核心架构手册 - Part1-第三章节:通用与系统寄存器(翻译加理解)
两个连续的偶数数据寄存器可以连接成八个扩展大小寄存器(E[0]、E[2]、E[4]、E[6]、E[8]、E[10]、E[12]和 E[14]),以支持 64 位数值。I/O访问权限级别控制位(Access Privilege Level Control),控制对TriCore™内核外设寄存器的访问权限:0为User-0 Mode(无权访问外设),1为User-1 Mode(常规访问权限),2为Supervisor Mode(完全访问权限),3为保留值。如果发生中断嵌套,则不作任何操作,继续使用中断栈。
2025-06-22 07:30:00
896
原创 AURIX芯片笔记:TriCoreTM TC1.6.2核心架构手册 - Part1-第二章节:编程模型(翻译加理解)
这一章讨论了TriCore架构在软件中可见的以下方面:支持的数据类型寄存器和内存中的数据格式内存模型寻址模式。
2025-06-15 07:30:00
1012
原创 AURIX芯片笔记:TriCoreTM TC1.6.2核心架构手册 - Part1-第一章节:架构概述(翻译加理解)
TriCore架构手册描述了英飞凌TriCore微控制器架构的核心架构和指令集。TriCore是一个统一的32位微控制器- dsp,针对实时嵌入式系统进行了优化的单核架构。本文档是为系统开发人员和程序员以及硬件和软件工程师编写的。第1卷(本卷)提供了核心体系结构和系统交互的详细描述。卷2给出了一个完整的描述的TriCore指令集,包括可选的扩展内存管理单元(MMU)和浮点单元(FPU)。需要注意的是,本文档描述的是TriCore体系结构,而不是实现。实现可能具有不属于核心体系结构的特性和资源。
2025-06-08 07:30:00
988
原创 汽车电子笔记之:有关汽车电子AUTOSAR的一些名词解释
目前在细致梳理CP AUTOSAR过程中,慢慢觉得有些缩写以及名词自己无法理解,此文档通过网上搜索以及规范查询来记录一些基础概念,以此备忘。发放论解释:解释成“根据什么,通过怎样的操作,得到什么样的结果这样一连串的过程”。
2025-05-31 07:30:00
899
原创 NXP应用随记(九):M7内核的Hardfault相关认知
NXP MCU S32K312 的 HardFault是 ARM Cortex-M 内核在检测到不可恢复的错误时触发的异常,通常由软件或硬件配置问题引起。
2025-05-25 07:30:00
1414
原创 AURIX芯片笔记:Infineon Memtool 烧录Tc3xx时BMHD无法烧录进UCB的问题解决
问题点:在使用 Infineon Memtool 烧录器时发现,当烧录英飞凌 TC3XX 芯片的程序时,BMHD(Boot Mode Header)无法成功烧录,导致程序无法正常启动。原因分析:如下图,PF的内容可以加载进,但是UCB内存区域无法加载到烧录部分的,提示了,这点很重要的。烧录进去之后没有BMHD肯定是无法正常启动的。
2025-05-18 07:30:00
1575
原创 TC3XX - MCAL知识点(三十六):AURIX™ TC3xx 复位后RAM数据不丢失&寄存器复位不丢失方法
在使用AURIX™ TC3xx 芯片时,当安全机制检测到芯片、外设、软件、 程序、代码等报警,或故障时,最简单直接的解决方法就是使MCU复位而消除问题。然而,这时可能需要保存故障现场的一些信息以及MCU关键寄存器的值,以便为将来提供问题分析的线索,这就需要保存这些信息的RAM区域不受复位影响。当然常规使用的是boot里面的重编程标志位存放。
2025-05-11 07:30:00
458
原创 链接文件及功能安全:英飞凌官方文档摘录 - Tasking链接文件
本文档用于指导客户如何指定变量和函数在TC234中的地址。本文档基于 TASKING_TriCore-VX_v6.3r1编写。
2025-05-04 07:30:00
336
原创 链接文件及功能安全:英飞凌官方文档摘录 - 基于Tasking与AURIX TC3xx MCAL中Link文件解析以及代码变量定位方法详解
Data区域是用来存放带初始化值的全局变量,在link文件中,这个区域有两种类型,预先定义的区域和默认区域。预先定义的Data区域,例如.data.Ifx_Ssw_Tc1和.data.Cpu1_Main.*,在cpu1_main.c中如果定义了一个带初始化值的变量,则它会放在DSRAM1中的.data.Cpu1_Main.*段中。
2025-04-26 07:30:00
326
原创 功能安全:有关功能安全的一些思考(理论概念层级)
汽车电子功能安全是指确保汽车电子系统在设计、开发、生产和维护过程中具有适当的安全性能,旨在确保汽车电子电气系统的功能性和安全性,从而避免因系统故障而导致的不合理风险,具体来说,它涉及如何确保即使在系统发生随机硬件失效或系统性失效时,安全系统也能正确运行,避免造成人员伤害、死亡、环境污染或设备财产损失。汽车电子功能安全是基于国际标准ISO 26262(以及对应的国标GB/T34590)构建,对功能安全进行了明确定义,即防止由于电子电气系统故障而引发的潜在风险。
2025-04-20 07:45:00
2171
转载 AURIX芯片笔记:Tc3xx启动的一些记录(链接文件、BMHD对应关系,变量信息与内存关系)
文章非原创,看了网上很多文章,结合代码,AI查询等,把自己想记录的以及一些浅显的看法记录下来,写文章的过程也算是在梳理思路与记录知识盲区。文章想表达:1、英飞凌自带的BootROM作用;2、链接文件、BMHD、启动文件之间的地址关系梳理;3、启动过程做了什么?4、初始化与未初始化全局变量怎么在 HEX里面看。
2025-04-13 07:30:00
1092
原创 汽车电子笔记之:基于Tasking编译器怎么制作库文件并将库文件集成进工程释放
随着软件定义汽车的发展,目前部分主机厂也希望参与到控制器的开发进程之中,好吧,这个时候需要提供给客户库文件,也就是.a文件,基于Tasking怎么制作库文件,将库文件集成进工程释放,本文做以下记录。
2025-04-06 07:30:00
1091
原创 TC3XX - MCAL知识点(三十五):Tasking编译器下,Tc3xx的MCAL代码如何使用多核,多核中断、多核任务、多核外设之间的MCAL配置与代码例程
文章用于记录在裸机情况下使用多核Tc387芯片,如何高效运行以及正确的代码、工程属性、链接文件配置等问题,相互结合、相互影响的地方,以示后续使用记录。
2025-03-31 07:30:00
660
3
原创 TC3XX - MCAL知识点(三十四):基于EB配置如何实现硬件触发ADC同步采样(GTM与ADC的关联点与VADC配置及代码实现)
本文聚焦于英飞凌 TC3XX MCU 与 EB Tresos 软件的协同应用,旨在详细阐述如何借助 EB Tresos 软件精准配置并生成代码,以实现硬件触发三相电流同步采样的功能。这一过程不仅涉及对硬件资源的合理调配,更需要对软件配置的精细把控,通过严谨的步骤设定与参数调整,确保采样功能的高效稳定实现,为相关领域的研发工作提供具有实践指导价值的参考。
2025-03-24 07:45:00
1980
2
原创 TC3XX - MCAL知识点(三十三):基于EB Tresos配置Tc3xx的MCAL代码如何产生中心对称的三相六路发波波形
本文用于记录如何在英飞凌 tc3xx 芯片的应用开发中,借助 EB Tresos 配置工具生成的配置代码与 MCAL 源码相结合,进而实现三相六路中心对称互补的 PWM 输出效果。外部资源需求:EB Tresos23.0以上、Tasking\Hightec编译器、示波器\逻辑分析仪。
2025-03-24 07:30:00
712
2
原创 Python自学之路--006:基于Python制作一个将多个Block的hex自动填充为单个Block的hex,填充值可填写,同时生成.bin\.app\.s19文件的绿色免安装小工具。
在实际的开发需求中,编译器生成的.hex烧录文件通常会被分割成多个Block。然而,在某些特定场景下,我们需要一个完整的Block的.hex文件,或者需要将文件转换为.bin或.app格式以适应不同的烧录需求。尽管编译器在多数情况下能够处理这些需求,但有时我们仅能获得一个HEX文件,这给实际操作带来了不便。为了解决这一问题,开发了一个小工具,能够将HEX文件填充为一个完整的Block,并同时支持格式转换,满足多样化的烧录需求。填充、格式转换小工具。
2025-03-19 07:30:00
491
原创 链接文件及功能安全:基于Tasking的LSL链接文件知识点梳理及实际应用分析
本文旨在记录研究链接文件时所遇到的问题及个人理解,以便日后查阅。在探索过程中,我遇到了诸多问题,同时对链接文件有了初步的认识。通过记录这些问题与理解,我希望能够为后续的研究提供清晰的思路和有价值的参考。这不仅是对研究过程的总结,更是对未来学习和实践的有力支持。
2025-03-16 09:00:00
811
3
原创 CANape使用记录(二):怎么通过CANape生成一个A2L详细步骤解析展示。
在技术实践的旅程中,我遇到了一个需要通过 CanAPE 生成 A2L 文件的场景。为了方便日后回顾与查阅,本文详细记录了整个操作流程。这不仅是对知识的巩固,也是为未来的探索留存一份宝贵的参考资料,让记忆在文字中得以延续,备忘录又添新篇。
2025-03-10 07:30:00
2546
4
原创 TC3XX - MCAL知识点(三十二):基于Tasking与EB Tresos Mcal配置新建一个工程
本文记录了基于 Tasking 编译器与英飞凌 Mcal 配置工具 EB Tresos,针对芯片类型为 TC387,全新创建一个 Tasking 工程的过程,该工程所用代码均源自 Mcal,以供后续参考与回顾。资源需求:编译器配置工具EB Tresos调试器PLS芯片Tc387。
2025-03-05 07:30:00
679
原创 HEX查看小知识:通过txt查看hex文件,应该怎么去理解里面的信息呢?
一个hex文件通过hexview打开非常直观,很明显的可以看出来地址、数据等关键信息。如下图但是通过txt的格式打开,发现信息有些混乱,以此为基础无法查看关键信息,如下。
2024-12-31 07:00:00
1335
2
英飞凌AURIX系列单片机官网培训资料
2023-03-27
DiagOnAll3.3 Green 通过CAN analyse工具实现诊断编程,自己设定服务
2023-03-21
将多个Block的.hex二进制烧录文件填充为一个Block的.hex文件 并同时生成填充后的.hex文件,附加生成.bin\.app\.s19烧录文件
2025-03-14
NXP也就是恩智浦的EB Tresos工具里面的功能配置,中文版本的详细介绍,对于项目开发来说能快速实现
2024-11-20
网上搜集的AD2S1210的驱动芯片代码包含了两个官方例子,总共五个例子,每个文件夹是单独的一个例子
2024-09-13
S32K3系列安装HSE的例程代码通过IVT的方式实现
2024-06-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅