模数转换器(ADC)
目录
一、简介:
二、主要特征
三、校准(CLB)
四、ADC时钟
五、ADCON开关
六、规则组和注入组
七、转换模式
八、注入通道管理
九、可编程的采样时间
十、外部触发
十一、温度传感器和内部参考电压
一、简介:
12位ADC是一种采用逐次逼近方式的模拟数字转换器。它有18个多路复用通道,可以转换来自16个外部通道和2个内部通道的模拟信号。模拟看门狗允许应用程序来检测输入电压是否超出用户设定的高低阈值。各种通道的A/D转换可以配置成单次、连续、扫描或间断转换模式。ADC转换的结果可以按照左对齐或者右对齐的方式存储在16位数据寄存器中。
二、主要特征
- 高性能
12位分辨率;
ADC采样率:1MSPs;
自校准
可编程采样时间;
数据寄存器可配置数据对齐方式;
支持规则数据转换的DMA请求。
- 模拟输入通道
16个外部模拟输入通道;
1个内部温度传感通道(VSENSE);
1个内部参考电压输入通道(Vrefint)。
- 转换开始的发起
软件
硬件触发
- 转换模式
转换单个通道,或者扫描一序列的通道;
单次模式,每次触发转换一次选择的输入通道;
连续模式,连续转换所选择的输入通道;
间断模式
同步模式(适用于具有两个或多个ADC的设备)。
- 模拟看门狗
- 中断的产生
规则组或注入组转换结束;
模拟看门狗事件。
- ADC供电要求:2.6V到3.6V,一般电源电压为3.3v。
- ADC输入范围:VREFN≤VIN≤VREFP。
三、校准(CLB)
ADC带有一个前置校准功能。在校准期间,ADC计算一个校准系数,这个系数是应用于ADC内部的,它直到ADC下次掉电才无效。在校准期间,应用不能使用ADC,它必须等到校准完成。在A/D转换前应执行校准操作。通过软件设置CLB=1来对校准进行初始化,在校准器件CLB位会一直保持1,直到校准完成,该位由硬件清0。
当ADC运行条件改变(例如,VDDA、VREFP以及温度等),建议重新执行一次校准操作。
内部的模拟校准通过设置ADC_CTL1寄存器的RSTCLB位来重置。
软件校准过程:
- 确保ADCON=1;
- 延迟14个ADCCLK以等待ADC稳定;
- 设置RSTCLB(可选的);
- 设置CLB=1;
- 等待直到CLB=0;
四、ADC时钟
ADCCLK时钟是由时钟控制器提供的,它和AHB、APB2时钟保持同步。ADC最大的时钟频率为14MHz。在RCU时钟控制器中,有一个专门用于ADC时钟的可编程分频器。
五、ADCON开关
ADC_CTL1寄存器中的ADCON位是ADC模块的使能开关。如果如果该位为0,则ADC模块保持复位状态。为了省电,当ADCON位为0时, ADC模拟子模块将会进入掉电模式。
注意: ADCON位设置为1后,需要添加不少于20us的延时。
六、规则组和注入组
ADC支持18个多路通道,可以把转换组织成两组:一个规则组通道和一个注入组通道。 规则组,可以按照特定的序列组织成多达16个转换的序列。ADC_RSQ0~ADC_RSQ2寄存器规定了规则组的通道选择。 ADC_RSQ0寄存器的RL[3:0]位规定了整个规则组转换序列的长度。
注入组,可以按照特定的序列组织成多达4个转换的序列。 ADC_ISQ寄存器规定了注入组的通道选择。 ADC_ISQ寄存器的IL[1:0]位规定了整个注入组转换序列的长度。
注意: ADC同时使用规则组和注入组, 注入组采样周期应避免使用1.5和7.5个周期。
七、转换模式
- 单次转换模式,该模式能够运行在规则组和注入组。
- 连续转换模式,该模式可以运行在规则组通道上。
- 扫描转换模式,该模式能够运行在规则组和注入组。
- 间断转换模式,规则组和注入组不能同时工作在间断模式,同一时刻只能有一组被设置成间断模式。
八、注入通道管理
自动注入
触发注入
九、可编程的采样时间
ADC 使用若干个 ADCCLK 周期对输入电压采样,采样周期数目可以通过 ADC_SAMPT0 和ADC_SAMPT1 寄存器的 SPTn[2:0]位更改。每个通道可以用不同的时间采样。在 12 位分辨率的情况下,总转换时间=采样时间+12.5 个 ADCCLK 周期。
例如:ADCCLK = 14MHz ,采样时间为 1.5 个周期,那么总的转换时间为: “1.5+12.5”个 ADCCLK周期,即 1us。
注意: 如果想要获取较稳定的采集数据需要降低 ADC 的采样时钟, 增大采样周期,硬件运行的情况下减小外部输入阻抗。
十、外部触发
外部触发输入的上升沿可以触发规则组或注入组的转换。规则组的外部触发源由ADC_CTL1寄存器的ETSRC[2:0]位控制,注入组的外部触发源由ADC_CTL1寄存器的ETSIC[2:0]位控制。
ETSRC[2:0]和ETSIC[2:0]控制位可以用来确定8个可能事件中的哪一个可以触发规则和注入组的转换。
表1 ADC0和ADC1的规则通道的外部触发
表2 ADC0和ADC1的注入通道的外部触发
表3 ADC2的规则通道的外部触发
表4 ADC2的注入通道的外部触发
十一、温度传感器和内部参考电压
将 ADC_CTL1 寄存器的 TSVREN 位置 1 可以使能温度传感器通道(ADC0_CH16)和 VREFINT通道(ADC0_CH17)。 温度传感器可以用来测量器件周围的温度。传感器输出电压能被ADC转换成数字量。建议温度传感器的采样时间至少设置为17.1us.温度传感器不用时,复位TSVREN位可以将其置于掉电模式。
温度传感器的输出电压随温度线性变化,由于生产过程的多样化,温度变化曲线的偏移在不同的芯片上会有不同(最多相差45℃)。内部温度传感器更适合于检测温度的变化,而不是测量绝对温度,如果需要测量精确的温度,应该使用一个外置的温度传感器来校准这个偏移错误。
内部电压参考(VREFINT)提供了一个稳定的(带隙基准)电压输出给 ADC 和比较器。 VREFINT 内部连接到 ADC0_CH17 输入通道。