英飞凌TC23x--MCAL配置之 ADC

英飞凌TC23x–MCAL配置之 ADC

1 ADC基础知识

1.1 介绍:

AUTOSAR(Automotive Open System Architecture)中的ADC(Analog-to-Digital Converter)模块用于从外部传感器或设备获取模拟信号,并将其转换为MCU能够处理的数字信号。

1.2 ADC原理:

  • 基本原理:ADC模块通过采样输入的模拟信号,将其转换为相应的数字值。转换精度通常以位数(如10位、12位)表示,位数越高,转换的精度越高。

  • 采样率:ADC的采样率决定了每秒可以采样多少个信号点。采样率越高,信号捕获的精度越高。

  • 转换过程:通常分为三个步骤:采样、量化和编码。首先采样输入的模拟电压,然后将其量化为离散的数字值,最后编码成二进制格式供MCU使用。

1.3 功能:

  • 多通道支持:MCAL ADC模块通常支持多通道输入,可以同时采集多个模拟信号。
  • 分辨率配置:ADC的分辨率通常可以配置,根据应用需求选择不同的分辨率。
  • 触发机制:可以通过定时器或外部事件触发ADC采样,支持自动或手动触发模式。
  • 数据缓冲:采集到的数据可以存储在缓冲区中,等待MCU读取处理。

1.4 依赖模块:

  • MCU模块
  • PORT模块
  • Irq模块

1.5 重要API:

  • **AdcEnableStartStopGroupApi **
  • **AdcHwTriggerApi **

1.6 应用场景:

  传感器数据采集:用于读取各种模拟传感器(如温度传感器、光传感器、压力传感器等)的信号。
  电池电压监测:通过ADC模块监测电池电压,确保设备的供电稳定。
  信号处理:在音频处理、无线电信号接收等场景中,ADC模块用于将模拟信号转换为可处理的数字信号。
  闭环控制系统:在电机控制等应用中,ADC模块用于反馈采集,实现闭环控制。

2 ADC解析

2.1 ADC Group/Channel/Hardware关系

在这里插入图片描述

  • 每个Group下面可以挂一个或多个Channel,但至少有一个Channel。
  • 一个Group如果挂了多个Channel,则这些Channel必须属于同一硬件单元。不能跨多个物理单元。
  • 一个Channel可以同时属于多个Group,如上CH0,CH1。但这种情况需要用户自己合理管控转换顺序。否则可能会出现冲突。

2.2 转换模式和触发方式

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

2.2.1 转换模式
  • One-shot :触发一次即停止,将结果直接写入缓冲区。
  • Continuous:持续触发,一直循环,直到调用停止采样函数(Adc_StopGroupConversion)。
2.2.2 触发方式
触发方式启动/使能API停止/关闭API
软件触发Adc_StartGroupConversionAdc_StopGroupConversion
硬件触发Adc_EnableHardwareTriggerAdc_DisableHardwareTrigger
  • One-shot 模式既支持软件触发,也支持硬件触发。
  • Continuous 模式仅支持软件触发,不支持硬件触发。

2.3 Buffer访问模式

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

2.3.1 Single模式
  • 采样数只能为1,不同的转换模式(One-shot模式和Continuous模式)下无区别。
2.3.2 Streaming模式
  • Linear(线性模式)下,如果采样数配置为1,那么效果和Single模式是一样的,转换一次就停止。如果采样数大于1,则转换次数等于采样数,当设置的采样数的次数完成后自动停止。
  • Circular(循环模式)下,会持续采样,知道主动调用停止函数。

2.4 可能的组合方式

在这里插入图片描述

2.5 ADC硬件资源分布

  • 查看硬件手册(Aurix_MC-ISAR_UM_ADCDriver.pdf)

在这里插入图片描述
在这里插入图片描述

3 框图

在这里插入图片描述

4 ADC模块的配置

4.1 Adc\ AdcConfigSet\ General

**AdcAnalogClockDivider **

配置配置位置说明
影响Adc_GlobalCfgType设置模拟时钟分频器
  • 该值决定了ADC模块的模拟部分的时钟频率,选择范围在0到31之间。选择时需要考虑ADC的采样率要求和系统时钟频率。

**AdcDigitalArbiterClockDivider **

配置配置位置说明
影响Adc_GlobalCfgType设置数字仲裁器的时钟分频器
  • 该项控制ADC的数字部分时钟的分频比,选择范围为0到3。此配置影响到数字处理的速度,与ADC的转换时间和整体性能有关。

AdcLowPowerSupplyVoltage

配置配置位置说明
影响Adc_GlobalCfgType配置ADC模块的低功耗模式下的电源电压
  • 设置影响ADC在低功耗模式下的工作电压。

AdcRefPrechargeControl

配置项配置位置说明
USE_VDDM_PRECH_VAREF_ADJAdc_GlobalCfgTypeVDDM电压
USE_VAREF_CONVERSIONAdc_GlobalCfgTypeVAREF电压
  • 用于控制ADC参考电压的预充电设置。影响到参考电压的稳定性和ADC的精度,通常在初始化过程中进行设置,以确保ADC的准确性。
  • 使用VDDM电压作为参考电压来进行预充电。这种配置通常用于需要较高精度的模拟信号处理,VDDM电压在系统中更为稳定。
  • 使用VAREF电压进行转换,这通常是在系统中需要使用外部参考电压来提高ADC的转换精度时使用的配置。

AdcSleepMode

配置配置位置说明
影响Adc_ConfigType启用或禁用ADC的睡眠模式
  • 启用后,ADC可以在不使用时进入低功耗状态,以节省电能。

AdcSystemClock

配置说明
影响设置ADC系统时钟的频率
  • 配置项直接影响到ADC的转换速率和采样速率。

4.2 Adc\ AdcConfigSet\ AdcGlobInputClass

AdcGlobChSampleTime

配置配置位置说明
影响Adc_GlobalCfgType设置全局通道的采样时间
  • 采样时间越长,ADC采集的信号精度越高,但转换速度会降低。

AdcGlobChResolution

配置配置位置说明
影响Adc_GlobalCfgType设置全局通道的分辨率
  • 分辨率决定了ADC输出的位数(8位、10位、12位),分辨率越高,精度越高。

4.3 Adc\ AdcConfigSet\ AdcHwUnit\General

AdcArbitrationRoundLength

配置配置位置说明
影响Adc_HwUnitCfgType设置ADC硬件单元在仲裁过程中的轮询长度
  • 在多个ADC通道争夺硬件资源时,定义了仲裁过程中每个通道允许的最大轮询次数。如果轮询时间设置得太短,可能会导致一些通道无法在仲裁期间获得资源。
  • 较短的轮询时间有助于提高系统响应速度,但可能会牺牲部分通道的采样频率。

AdcHwUnitId

配置配置位置说明
HWUNIT_ADC0Adc_PBCfg.c标识硬件资源ADC0
HWUNIT_ADC1Adc_PBCfg.c标识硬件资源ADC1

|配置|Configurator选项|说明||----------- |------------------ |---------------- ||HWUNIT_ADC0|A|标识硬件资源ADC0|HWUNIT_ADC1||标识硬件资源ADC1|

  • 用于区分系统中存在的多个ADC硬件单元,并确保配置的相关参数能够正确应用于目标硬件单元。每个ADC硬件单元会有一个独立的ID,可以被映射到不同的硬件资源上。

AdcPostCal

配置配置位置说明
影响Adc_GlobalCfgType配置是否在每次ADC采样后进行校准
  • 在对ADC精度要求高的场合启用此功能,虽然会略微降低采样速率,但可以保证更高的采样精度。对于对时间要求较高、精度要求一般的场合,可以选择禁用。

4.4 Adc\ AdcConfigSet\ AdcHwUnit\AdcChannel

AdcAnChannelNum

配置配置位置说明
影响Icu_17_GtmCcu6_Cfg.hADC模拟输入通道编号
  • 根据2.4 ADC硬件资源分布配置对应的ADC通道

AdcChannelRefVoltsrcHigh

配置配置位置说明
REF_VOLTAGE_VAREFAdc_ChannelCfgType为整个ADC模块设置外部参考电压
REF_VOLTAGE_CH0Adc_ChannelCfgType为特定通道(通道0)设置参考电压
  • REF_VOLTAGE_VAREF 适合全局高精度需求。REF_VOLTAGE_CH0 适用于特定应用的场景。

AdcInputClassSelection

配置说明
影响选择ADC输入通道的类
  • Adc\ AdcConfigSet\ AdcGlobInputClass 绑定(包含采样时间、分辨率等配置)

4.5 Adc\ AdcConfigSet\ AdcHwUnit\AdcGroup

AdcGroupAccessMode

配置配置位置说明
ADC_ACCESS_MODE_SINGLEAdc_GroupCfgType单次访问
ADC_ACCESS_MODE_STREAMINGAdc_GroupCfgType连续访问
  • 配置ADC组的访问模式。根据配置需求,参照原理2.3Buffer访问模式

AdcGroupConversionMode

配置配置位置说明
ADC_CONV_MODE_ONESHOTAdc_GroupCfgType一次采样
ADC_CONV_MODE_CONTINUOUSAdc_GroupCfgType持续采样
  • 定义ADC组的转换模式。根据配置需求,参照原理2.2.1转换模式

AdcGroupRequestSource

配置配置位置说明
REQSRC0_8STG_QUEAdc_GroupCfgType8阶段队列(8-Stage Queue)作为请求源
REQSRC1_NCH_SCANAdc_GroupCfgType非连续扫描(Non-Continuous Scan)模式作为请求源
REQSRC2_BGND_SCANAdc_GroupCfgType背景扫描(Background Scan)模式作为请求源
REQSRC3_8STG_QUEAdc_GroupCfgType8阶段队列(不同场景)作为请求源
  • 配置ADC组的请求源,比如软件触发、中断触发等。
  • 使用8阶段队列(8-Stage Queue)作为请求源。这种配置适用于需要顺序处理多个ADC通道的场景,可以对最多8个通道进行排队转换。
  • 使用非连续扫描(Non-Continuous Scan)模式作为请求源。在这个模式下,ADC在每次触发时,只会扫描预定的ADC通道集合一次,适用于不需要持续扫描的场景。
  • 使用背景扫描(Background Scan)模式作为请求源。背景扫描模式适合在系统空闲时持续进行ADC转换,并且扫描所有配置的通道集合。

AdcGroupTriggSrc

配置配置位置说明
ADC_TRIGG_SRC_SWAdc_GroupCfgType软件触发
ADC_TRIGG_SRC_HWAdc_GroupCfgType硬件触发
  • 选择ADC组的触发源。根据配置需求,参照原理2.2.2触发方式

AdcStreamingBufferMode

配置配置位置说明
ADC_STREAM_BUFFER_LINEARAdc_GroupCfgType线性模式
ADC_STREAM_BUFFER_CIRCULARAdc_GroupCfgType循环模式
  • 配置ADC组的流缓冲模式,当需要处理连续的数据流时配置这个选项。根据配置需求,参照原理2.3.2 Streaming模式

AdcStreamingNumSamples

配置配置位置说明
影响Adc_GroupCfgType设置流模式下采样的次数
  • 根据缓冲区能容纳的样本数量和数据处理能力来设置。

AdcGroupDefinition

配置配置位置说明
影响Adc_GroupDefType为一组绑定多个ADC通道

4.6 Adc\ AdcConfigSet\ AdcHwUnit\AdcKernelInputClass

AdcKernelChSampleTime

配置配置位置说明
影响Adc_HwUnitCfgType通道采样时间
  • 采样时间是指ADC采集一个输入信号所花费的时间。采样时间越长,转换精度越高,但也会增加整体转换时间。

AdcKernelChResolution

配置配置位置说明
影响Adc_HwUnitCfgType通道分辨率
  • 定义了ADC通道的分辨率,即ADC转换结果的精度。分辨率通常以位(bits)为单位,如10位、12位等。分辨率越高,转换结果越精确。

5 EB配置

5.1 General

在这里插入图片描述

5.2 Adc\ AdcConfigSet\ General

在这里插入图片描述

5.3 Adc\ AdcConfigSet\ AdcGlobInputClass

在这里插入图片描述

5.4 Adc\ AdcConfigSet\ AdcHwUnit\General

在这里插入图片描述

5.5 Adc\ AdcConfigSet\ AdcHwUnit\AdcChannel

在这里插入图片描述

5.6 Adc\ AdcConfigSet\ AdcHwUnit\AdcGroup

在这里插入图片描述

5.7 Adc\ AdcConfigSet\ AdcHwUnit\AdcKernelInputClass

在这里插入图片描述

6 Irq配置

在这里插入图片描述

在这里插入图片描述

  • 22
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值