AURIX TC3XX系列之EVADC模块介绍及MCAL配置

本文详细介绍了AURIXTC3XX系列中的EVADC模块,包括其结构、工作原理、请求源控制、同步转换机制、中断服务以及MCAL配置步骤,如设置ADC时钟频率、GlobalInputClass配置和HwUnit中的通道和Group配置。

 AURIX TC3XX系列之EVADC模块介绍及MCAL配置

1、EVADC模块介绍

1.1 模块简介

        EVADC:增强型通用模数转换器,转换原理是逐次逼近(SAR)。该模块有3个簇:主转换簇,次转换簇,快速比较簇。以TC38x系列MCU为例,共12个ADC内核,0-7内核是主转换簇,8-11是次转换簇。

1.2 ADC内核组成

        每个ADC内核都由这几部分组成:请求控制单元,转换控制单元,模数转换单元,结果处理单元,中断产生单元等

1.3 通用时钟控制

  • 所有的ADC内核都在统一的时钟频率fADC下工作
  • 模拟相位同步器可以确保多个ADC内核的同步转换,对于不需要同步转换的ADC内核,就直接不引用相位同步器,直接开始转换。
  • 为了确保EVADC时钟域之间的正确同步,外设时钟不能比总线时钟慢,即fADC >= fSPB。

1.4 请求源控制

        每个ADC内核有三个请求源,不同通道可以分配不同的请求源,不同的请求源可以有不同的优先级,根据通道所输入的信号的特性,可将一类的信号通道分配在同一个组内,属于同一个组的通道的请求源都相同,默认情况下,高优先级的组会分配在请求源2。同一个组内多个通道的转换顺序按照队列的顺序转换,排在前面先转换,排在后面后转换。

1.5 转换结果处理

        转换的结果可以存储在全局寄存器或者16个组寄存器中,全局结果寄存器的意义在于可以节省DMA的通道数,若采用DMA进行数据的搬运的话,因为源地址都相同,所以可以节省DMA通道数。新的结果值产生Valid Flags(VF寄存器)会置1,然后触发结果事件。

        也可以进行FIFO配置,将相邻的组寄存器进行连接,然后进行存储及读取。

1.6 同步转换

控制SYNCTR进行同步
控制寄存器SYNCTR进行同步

     

         不同的ADC内核可以同步进行转换,可以确保相关通道的采样相位同时启动,同步并行转换的请求优先级最高,比其他的三个请求源优先级都高。在设置同步转换时,要确定Master以及Slave内核。一个内核里面的所有通道都可以同步转换。

                            

        采样时间和转化时间的如上图所示,通过寄存器SSE,USE来控制。采样同步由Trigger信号触发,转化同步由同步时钟的上升沿触发。一般来说选择模式B的情景较多,触发后立即采样,在下一个上升沿开始转换。

1.7 中断服务

        中断服务事件分为三种:

        请求源事件:请求源完成了请求的转换序列

        通道事件:对应的通道完成了转换

        结果事件:结果寄存器有新的数据更新

        服务请求输出信号分为专有和公共的,具体如下图所示,每个内核都有4个专用的服务请求节点,另外还有几组公共的服务请求节点,TC38X有2组公共的服务请求。

        而公共服务请求还可以连接到TIM模块,例如实现ADC转换完成触发时间戳捕获的功能。

TC38x

2、MCAL配置

2.1 Mcu配置

在McuClockSettingConfig配置Adc时钟频率

2.2 General配置

2.3 GlobalInputClass配置

GlobalInputClass是一种包含了对于Adc转化所涉及的采样时间,采样频率等和采样精度相关的参数的配置的全局容器,对于每个ADC内核还有自己的两个容器,所以共有四个容器的配置供我们选择。

2.4 HwUnit配置

        

2.4.1 Channel配置

2.4.2 Group配置

         Alias功能支持对信号的多次采样,每个ADC内核仅通道0和通道1有此功能,这个功能是指通道0在满足触发条件时,会开始对链接的那个x通道进行转换,并且转换结果可以存放在通道0的结果寄存器中,这样就可以实现了某些信号通道的多次采样。

定义Group优先级为254,对应请求源Souce1

(在EB配置中,引入了AdcGroup的概念,每个ADC内核最多支持32个AdcGroup,可以将同一类属性的信号通道分配在同一个组,每个通道的到底链接了哪个请求源最终都是通过每个通道的对应寄存器控制,在EB配置中,提供了两种方案来实现确定组的通道到底链接了哪个请求源,第一个是硬件方案,这个通过设置每个组的优先级(0-255)来确定属于哪个请求源,优先级为255的组的通道会分配给请求源2,优先级为254的组的通道会分配给请求源1,优先级为0-253的组的通道会分配给请求源0;还有一种是软件方案,这种方案允许通过软件直接操作相关寄存器来改变每个通道的所属请求源和每个请求源的优先级。)

硬件触发方式选择,这里选择上升沿触发

将通道组合进Group

将Group里的channel通道和结果寄存器(共16个组寄存器)配对

2.4.3 其他涉及Mcu配置
  • 假如配置GTM触发ADC

配置TOM1_7为ADC0-2的Trigger1触发源

  • 假如配置公共服务请求触发TIM,这个EB26.2不支持配置,需要手动配置寄存器

<think> 嗯,用户这次想深入了解Aurix TC3xx定时器模块的工作原理。从用户提问的措辞看,ta应该是有一定嵌入式开发基础的技术人员,可能正在做TC3xx芯片的底层驱动开发或系统设计。用户之前已经接触过GPT和GTM模块配置文档,现在需要更底层的机制说明。 注意到用户提供了四篇技术文档的索引,其中最重要的是[^3]对GTM模块的整体介绍和[^4]的详细子模块分析。需要重点整合这些信息:GTM作为中央计时枢纽的核心地位、各子模块的功能分工(特别是TIM/TOM/ATOM的协同)、时钟树结构(CMU的关键作用)以及硬件级联机制(如ARU总线)。 用户可能特别关注实际应用场景中的工作原理,比如PWM波形生成时的信号路径:从CMU提供时钟源→TOM配置周期/占空比→通过Port控制单元输出到物理引脚。对于这种复杂问题,用分层示意图最直观,但文本描述需要更注重逻辑链条的完整性。 考虑到定时器模块的复杂性,准备从三个维度展开:首先是全局架构(强调GTM的枢纽作用),然后重点解析输入/输出类子模块的工作原理(TIM测量输入信号特征,TOM/ATOM生成输出波形),最后说明支撑系统(时钟管理和路由机制)。技术术语需保持与芯片手册一致,比如"FLT滤波单元"、"TGC通道组控制"等专业词汇不能擅自改写。 关于代码片段是否需要的问题,考虑到用户引用文档中多次出现MCAL配置,准备补充一个ATOM通道初始化示例,展示如何将寄存器配置映射到实际功能实现。不过示例代码需要严格标注"简化示例"避免误导,毕竟真实驱动开发还要考虑时钟同步等细节。 </think> Aurix TC3xx系列MCU的定时器功能主要由**通用定时器模块(GTM)**及其关联的子模块(如GPT、TOM、ATOM、TIM、CMU等)协同实现。其核心工作原理如下: --- ### **1. 时钟基准与中央枢纽:GTM模块** GTM是定时器系统的核心枢纽,提供**可配置的时间基准**和**信号路由框架**: - **模块化设计**:集成CMU、TOM、ATOM、TIM、DTM等子模块,通过内部总线(如ARU)互联[^3][^4]。 - **灵活路由**:支持子模块间的信号传递(如用TIM测量外部信号,触发TOM生成PWM)[^3][^4]。 - **多时钟源**:CMU(时钟管理单元)为各子模块提供分频/倍频后的时钟信号,确保时间基准一致性[^2][^4]。 --- ### **2. 定时器功能实现原理** #### **(1) 输入信号测量(TIM模块)** - **功能**:捕获外部信号(如脉冲宽度、频率)。 - **原理**: - 通过**滤波单元(FLT)**消除信号抖动[^4]。 - 使用**计数器**记录信号边沿时间戳,支持模式: - **PWM测量模式(TPWM)**:计算占空比/周期。 - **脉冲积分模式(TPIM)**:累计有效电平时间[^4]。 - **超时检测(TDU)**:监控信号丢失事件[^4]。 #### **(2) PWM波形生成(TOM/ATOM模块)** - **TOM(16位定时器输出模块)**: - 每个通道独立配置**周期**与**占空比**。 - 支持模式: - **连续模式**:循环输出PWM。 - **单次模式**:触发后输出单次波形。 - **中心对齐模式**(TC3xx新增):用于电机控制[^4][^4]。 - **ATOM(24位ARU互联定时器)**: - 相比TOM精度更高,且可通过**ARU总线**接收其他模块触发信号,生成复杂波形序列[^3][^4]。 - 适用于高精度PWM或同步多通道输出。 #### **(3) 基础定时(GPT模块)** - **依赖GTM**:需关联TOM/ATOM通道作为时间基准[^1]。 - **原理**:基于GTM提供的时钟信号进行计数,实现计时/中断功能。 --- ### **3. 关键支撑机制** - **死区控制(DTM)**:为TOM/ATOM生成的PWM添加**死区时间**,防止桥臂短路(如电机驱动)[^3]。 - **信号路由**: - **输入路径**:外部引脚 → Port模块 → TIM通道[^2][^4]。 - **输出路径**:TOM/ATOM通道 → Port模块 → 物理引脚[^2][^4]。 - **同步机制**:通过**TBU(时间基准单元)**协调各子模块计数器,确保时间基准统一[^4]。 --- ### **4. 工作流程示例(PWM测量与生成)** ```mermaid graph LR A[外部信号] --> B[TIM模块测量频率/占空比] B --> C[ARU总线传递数据] C --> D[ATOM模块生成同步PWM] D --> E[DTM添加死区时间] E --> F[Port输出至引脚] ``` --- ### **总结** Aurix TC3xx的定时器系统以**GTM为核心**,通过模块化设计实现灵活功能组合: 1. **TIM**负责**信号采集与分析**。 2. **TOM/ATOM**实现**高精度PWM输出**。 3. **GPT**提供**基础计时**,依赖GTM时钟源。 4. **CMU/DTM/TBU**等模块提供时钟、死区、同步等关键支撑[^1][^2][^3][^4]。 > 实际应用中需通过MCAL(如EB tresos)配置模块寄存器,关联时钟源、路由路径及工作模式[^1][^2]。 --- ### 相关问题 1. TIM模块的滤波模式(如去毛刺)如何配置? 2. TOM与ATOM模块在生成PWM时有何性能差异? 3. 如何通过ARU总线实现GTM子模块间数据交互? 4. 死区时间(DTM)配置对电机控制有何影响? 5. CMU模块如何为不同子模块分配时钟频率?
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值