XMC™使用Dave4快速开发(三)ADC实验

XMC系列提供了一系列模拟输入通道,这些ADC通道将模拟输入值(电压)转换为数字值。在Cotex-M0到Cotex-M4核的单片机中,使用起来差别都不是很大,主要是需要学习英飞凌的特色外设单元,那XMC系列的VADC就是一个很有特色的外设单元。
主要特别之处有如下几点:
1.XMC系列各通道的A/D转换可以以单次、连续或扫描多种方式进行。

2.XMC系列具有双采样保持单元,双通道可以同时采样。具体到实际应用中,两路电流可以同步采样,这对提高控制实时性能是极有好处的。
3.ADC的结果可以选择8、10和12位的分辨率,使用左对齐或右对齐方式储存在寄存器中。
4.ADC每个通道的采样单元内置模拟放大,增益可调,可选1,3,6,12倍放大,这样就可以省掉外部运放。
5.XMC1300 ADC具有 limit checking 功能,当ADC转换结果落到指定区间内就会自动触发中断请求,而这个指定区间的门限是可以自由设定的。这就省掉了软件处理ADC转换结果并比较,提高了处理速度。同时ADC还内置了多种硬件处理方式,像数据累加模式、FIR模式、IIR模式、差分模式,节省软件处理时间和CPU占用。 
6.ADC的电压参考可以指定为外部的Vref,即3.3V的模拟电源输入,也可以用CH0脚上的电压作为电压参考,各引脚可以在二者间选择适合的电压范围(>1V),这样可以适应不同幅值的输入测量。


XMC系列ADC通道的数量取决于产品,本次实验我们使用XMC1404,具有16个ADC通道,这些ADC都可以独立使用,也可以支持同步采样XMC1000将ADC分为各有8个通道的两组,每组都可以随意选择以下三种请求源:队列请求源(ADC_Queue),扫描请求源(ADC_SCAN)和后台请求源,并且能够在多种转换模式下执行,且能同时启用请求源配置优先级。

模数转换模式有以下三种:
1.固定通道转换(单次或连续):一个专用通道源请求对一个可选通道(单次或重复) 进行转换。
2.自动扫描转换(单次或连续):一个通道扫描源(请求源 1 2)请求对所有的需要转换的有效通道进行线性自动扫描转换(单次或重复)。
3.通道序列转换(单次或连续):一个队列源(请求源 0)请求高达 8 位任意选择通道(单次或重复)的一系列转换。
有效的请求源可以同时使用多个转换模式,即可以同时启用不同的模式转换。每个源可被单独启用并且可以由外部事件触发,例如
PWM 的边沿、 定时器信号或引脚转换请求。

       
本文章先讲述如何使用Dave4快速配置ADC,实现扫描请求源的“自动扫描模式”(连续转换)的使用。一个API调用开始转换轮。在一个转换轮(2通道)后,自动重复。因此没有必要额外触发转换。结果在主循环中读取即可。
1.第一步先找到ADC MEASUREMENT ADV APP,双击添加app。
2.在APP中我们可以选择通道数量,一个模块最多8个通道,这里我们选择2个通道,请求源选择ADC_SCAN_APP



3.在General Setting中我们可以选择触发源、优先级等,这里我们采样分辨率选择12位,转换时间选择最小的


4.这里可以选择参考电压,我们选择VSS做为参考电压


5.生成代码后添加代码以启动ADC转换。

ADC_MEASUREMENT_ADV_SoftwareTrigger(&ADC_MEASUREMENT_ADV_0);
6.添加代码读取AD值即可。
ADC_MEASUREMENT_ADV_GetResult(&ADC_MEASUREMENT_ADV_0_Channel_A);
ADC_MEASUREMENT_ADV_GetResult(&ADC_MEASUREMENT_ADV_0_Channel_B);



到此为止,我们就完成了XMC单片机ADC最简单的应用。

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论