1. 为什么要在AURIX上折腾旋变软解码?
大家好,我是老张,在汽车电子这行摸爬滚打了十几年,跟各种电机控制器、传感器打交道是家常便饭。今天想跟大家聊聊一个在电机控制领域里既经典又有点“硬核”的话题——旋转变压器的软解码,尤其是在英飞凌的AURIX™ TC2xx/TC3xx系列芯片上如何实现。
你可能要问,现在市面上不是有很多现成的旋变解码芯片(RDC)吗,比如AD2S1205、AU6802这些,直接用不香吗?干嘛要费劲自己用软件解?这个问题问得好。我刚开始做项目的时候也是这么想的,直接用硬件解码芯片,电路清晰,数据稳定,多省心。但踩过几次坑之后,我发现事情没那么简单。
首先,成本是个大问题。一颗专用的旋变解码芯片,从十几块到几十块不等,对于追求极致BOM成本的车规级或工业级产品来说,能省一分是一分。其次,PCB面积也很宝贵。多一颗芯片,就意味着多一圈外围电路(参考电压、时钟、滤波),占地方不说,布线的复杂度也上去了。更关键的是,系统架构的灵活性。当你把解码功能集成到主控MCU内部,你就能获得最原始的数字信号,所有的滤波算法、角度补偿、故障诊断逻辑都可以由你一手掌控,想怎么优化就怎么优化,这是外挂芯片给不了的“自由”。
而英飞凌的AURIX系列,特别是其内置的Delta-Sigma ADC(DSADC)模块和强大的定时器阵列,简直就是为这种“软解码”任务量身定做的。它允许我们直接用PWM模块生成旋变所需的正弦波激励信号,然后用DSADC的高精度、抗干扰能力来采集旋变返回的SIN/COS模拟信号,最后在软件里完成角度和速度的解算。这套方案,一旦调通,稳定性、精度和成本控制都能做到非常优秀的水平。
所以,如果你正在为电机位置检测选型而纠结,或者对现有解码方案的成本和灵活性不满意,那么花点时间研究一下AURIX的旋变软解码,绝对是一笔划算的技术投资。接下来,我就把自己在实际项目中的配置过程、关键参数怎么调、以及那些容易踩的“坑”,毫无保留地分享给大家。
2. 动手之前:硬件连接与核心原理扫盲
在开始敲代码之前,咱们得先把硬件怎么连、信号怎么跑搞清楚。别嫌我啰嗦,这一步基础打不牢,后面调程序全是玄学问题。
旋变是个啥? 你可以把它想象成一个微型的、无接触的“变压器”。它有一个转子(连着电机的轴)和一个定子。定子上有励磁绕组(接我们的激励信号)、正弦绕组(SIN)和余弦绕组(COS)。当转子转动时,会调制SIN和COS绕组的磁通,从而输出两个幅值随转子角度(θ)正弦变化的信号。公式很简单: Vsin = A * sin(ωt) * sin(θ) Vcos = A * sin(ωt) * cos(θ) 这里的 A * sin(ωt) 就是我们外部给进去的激励信号(比如10kHz正弦波)。我们的任务,就是从这组SIN/COS信号里,把那个转子角度θ给“扒”出来。
硬件连接图(核心三线对四线): 这是最常用的“四线制”旋变接法,也是我们今天讨论的基础。
- 激励信号(EXC+, EXC-):从AURIX的PWM模块(例如PWMH/PWML对)输出。我们需要配置一对互补的、带死区时间的PWM,然后通过一个简单的LC滤波电路,把PWM方波滤成近似正弦波。通常,我们会使用AURIX的GTM(通用定时器模块) 或者CCU6来生成这对高精度的PWM。在原始代码里,用的是
IfxDsadc_CGPWMP_P33_12_OUT和IfxDsadc_CGPWMN_P33_11_OUT,这其实是DSADC模块自带的载波发生器引脚,也能输出正弦波,更方便。 - 正弦信号(SIN+, SIN-):旋变输出的差分正弦信


482

被折叠的 条评论
为什么被折叠?



