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不支持配置,需要手动配置寄存器

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐