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

 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>好的,我需要帮助用户找到关于TC234 MCU配置方法或资料。首先,用户提到的TC234属于英飞凌AURIX系列,可能和TC387、TC397、TC264这些型号有相似的配置工具和开发环境。根据用户提供的引用内容,有几个关键点: 1. **开发工具**:用户提到的EB Tresos、ADS、Tasking、HighTec等工具。其中EB Tresos是AutoSar配置工具,常用于MCAL层的配置。ADS(Aurix Development Studio)可能集成了编译器,方便快速开发,如引用[1]和[3]中提到的。 2. **库函数和MCAL**:引用[1]提到使用iLLD库,而引用[4]详细讲解了MCAL配置,特别是EVADC模块。TC234的配置可能涉及类似的MCAL设置,需要参考英飞凌的官方文档。 3. **实践案例**:引用[2]和[3]分别提到了TC397和TC264的BootLoader和分文件编写,说明不同型号的MCU配置流程上有共通之处,但具体寄存器设置可能不同。 接下来,我需要确定用户需要的具体配置方法。由于TC234是较老的型号,官方文档和开发工具的支持可能集中在Infineon官网。建议用户访问英飞凌官网搜索TC234的文档,特别是用户手册、数据表、应用笔记等。同时,使用EB Tresos进行MCAL配置,或者ADS进行开发,这些工具的配置方法可以参考现有的TC3xx系列的教程,但需注意TC234的特殊性。 另外,用户可能需要参考iLLD库的使用,如引用[1]和[3]提到的库函数导入和分文件编写。虽然示例是TC387和TC264,但库函数的结构可能相似。还需注意,TC234属于AURIX第一代,而TC397是第二代,部分外设可能有差异,需查阅具体模块的寄存器配置,如引用[4]中的EVADC部分。 最后,建议用户查找社区资源或官方支持论坛,可能有开发者分享过TC234的配置经验。结合官方文档和社区资源,可以更高效地解决问题。</think>关于TC234 MCU配置方法及开发资料,以下信息整理自相关引用内容及英飞凌技术生态: ### 一、开发工具选择 1. **MCAL配置工具** 推荐使用AutoSar架构下的 **EB Tresos**(如引用[1][^1]和[4][^4]所述),它支持AURIX系列MCUMCAL(Microcontroller Abstraction Layer)配置,可直接操作外设寄存器。例如: - 针对EVADC模块,需在EB Tresos中配置通道、触发源、分辨率等参数,对应寄存器操作可参考引用[4][^4]的解析。 - 其他模块(如GPT、ICU等)配置流程类似,需结合TC234数据手册调整寄存器映射。 2. **集成开发环境(IDE)** - **Aurix Development Studio (ADS)**:内置编译器,适合快速开发(引用[1]和[3][^3])。TC234可复用TC264的工程模板,但需注意芯片型号差异。 - **Tasking/HighTec**:需单独配置编译器路径,适合深度优化代码(引用[1][^1])。 --- ### 二、关键开发文档 1. **官方核心文档** - **TC234 User Manual**:详细描述芯片架构、外设模块及寄存器定义,需在[Infineon官网](https://www.infineon.com)搜索下载。 - **AURIX™ TC23x Training Slides**:官方培训材料,涵盖时钟系统、DMA、中断配置等基础内容。 2. **实践参考** - 参考TC397的BootLoader实现(引用[2][^2]),TC234的UDS协议栈可复用类似框架,但需适配Flash分区和启动地址。 - 外设驱动开发可借鉴TC264的分文件编写方法(引用[3]),将寄存器操作封装为独立.c/.h文件。 --- ### 三、配置流程示例(以EVADC为例) 1. **EB Tresos配置步骤** - 创建新工程,选择TC234器件型号。 - 在**Adc**模块配置扫描组(Scan Group)、输入通道(Channel)和触发源(Trigger Source)。 - 生成代码后,通过iLLD库调用`Adc_StartGroupConversion()`函数启动转换。 2. **代码片段(基于ADS)** ```c #include <IfxEvadc_Adc.h> // 初始化EVADC模块 void EVADC_Init() { IfxEvadc_Adc_Config adcConfig; IfxEvadc_Adc_initModuleConfig(&adcConfig, &MODULE_EVADC); IfxEvadc_Adc_initModule(&g_Evadc, &adcConfig); // 引用iLLD库函数 } ``` --- ### 四、常见问题与资源 1. **寄存器级调试** 若MCAL配置异常,需直接查看寄存器值(如`EVADC_CHCTRx`),比对数据手册确认配置是否生效[^4]。 2. **社区资源** - 英飞凌开发者社区:[AURIX™ TC2xx论坛](https://community.infineon.com) - GitHub搜索关键词:`TC234 BSP`或`TC234 Example Code` ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值