1 概述
多功能模数转换器 (VADC) 配置为使用背景扫描请求按顺序测量多个模拟信号。
模数转换器 (ADC) 模块的背景扫描模式配置为测量应用于第 4 组的通道 4 至 7 的模拟信号。
2 Introduction
AURIX™ TC27x 的多功能模数转换器模块 (VADC) 包括 8 个独立的模数转换器(VADC 组),每个转换器最多有 8 个模拟输入通道
›每个通道都可以转换分辨率高达 12 位的模拟输入
›多个请求源可以请求模拟/数字转换:
排队请求源,特定于单个组 频道扫描请求源,包括:
组扫描源,特定于单个组 后台扫描源,可请求所有组的所有通道
›通道扫描请求源为输入通道的连贯序列发出转换请求,从启用的最高通道号开始
›在后台扫描源(通道扫描请求源)中,每个通道每个序列转换一次。可以请求一次或多次进行转换
›背景扫描源可以访问所有未分配给任何模拟输入通道组请求源。这些转换以低优先级执行
3 Hardware setup
此代码示例是为开发板 KIT_AURIX_TC275_LITE 开发的。要测量的信号必须连接到 VADC 的通道 4..7(端口引脚 AN36..AN39)。
注:板上 KIT_AURIX_TC275_LITE 上的 VADC 的参考电压 (VAREF) 为 3.3 V。
4 Implementation
VADC 的配置
VADC 的配置在initADC()函数中分三个不同的步骤完成:
› VADC 模块的配置
› VADC 组的配置
› VADC 通道的配置
VADC 模块的配置
iLLD 给出的 VADC 模块的默认配置可用于此示例。
这是通过初始化IfxVadc_Adc_Config结构的实例并通过函数IfxVadc_Adc_initModuleConfig()将默认值应用于其字段来完成的。然后,可以使用函数IfxVadc_Adc_initModule()将配置应用于 VADC 模块。
VADC 组的配置
VADC 组的配置是通过函数IfxVadc_Adc_initGroupConfig()使用默认值初始化IfxVadc_Adc_GroupConfig结构的实例并修改以下字段来完成的:
› groupId – 选择要配置的转换器
› master – 指明哪个转换器是主转换器。在这个例子中,只使用了一个转换器,因此它也是主
› arbiter – 表示启用的请求源的结构,可以是组扫描、队列和/或后台源。在此示例中,它设置为arbiter.requestSlotBackgroundScanEnabled › backgroundScanRequest – 一个允许通过设置来配置后台扫描请求源的结构:
autoBackgroundScanEnabled – 设置自动扫描模式的参数(请求转换 连续)
triggerConfig – 指定触发器配置的参数
然后,通过函数IfxVadc_Adc_initGroup()应用用户配置。
VADC 通道的配置
每个通道的配置是通过函数IfxVadc_Adc_initChannelConfig()使用默认值初始化IfxVadc_Adc_ChannelConfig结构的实例并修改以下字段来完成的:
› channelId – 选择要配置的频道
› resultRegister——表示存放A/D转换值的寄存器
› backgroundChannel – 指定所选通道用作背景通道
然后,使用函数IfxVadc_Adc_initChannel()将配置应用于通道,并且作为最后一步,通过函数IfxVadc_Adc_setBackgroundScan()将通道添加到背景扫描序列中。
配置 VADC 模块及其组和通道后,使用函数IfxVadc_Adc_startBackgroundScan()启动扫描序列。
最后,要读取转换,使用函数readADCValue(),它调用IfxVadc_Adc_getResult()
iLLD 的功能,直到返回新的测量值。
用于获取转换和配置 VADC 模块、其组和通道的所有函数都可以在 iLLD 头文件IfxVadc_Adc.h中找到。
5 Run and Test
代码编译并刷写设备后,执行以下步骤:
›在第一次测量所在的Cpu0_Main.c文件中设置断点
请求(chn36Measurement = readADCValue(CHN_36))
›恢复两次调试会话并检查可以看到转换值的变量窗口