0%

ADC数模转换的学习

一、什么是ADC

Analog-to-Digital Converter的缩写。

指模/数转换器或者模拟/数字转换器。是指将连续变量的模拟信号转换为离散的数字信号的器件。

典型的模拟数字转换器将模拟信号转换为表示一定比例电压值的数字信号。

二、STM32F10x的ADC特点

1.12位逐次逼近型的模拟数字转换器;

2.最多带3个ADC控制器;

3.最多支持18个通道,可最多测量16个外部和2个内部信号源;

4.支持单次和连续转换模式;

5.转换结束,注入转换结束,和发生模拟看门狗事件时产生中断;

6.通道0到通道n的自动扫描模式;

7.自动校准;

8.采样间隔可以按通道编程;

9.规则通道和注入通道均有外部触发选项;

10.转换结果支持左对齐或右对齐方式存储在16位数据寄存器 ADC转换时间:最大转换速率 1us。(最大转换速度为1MHz,在ADCCLK=14M,采样周期为1.5个ADC时钟下得到。);

11.ADC供电要求:2.4V-3.6V;

12.ADC输入范围:VREF- ≤ VIN ≤ VREF+

三、STM32通道组

规则通道组:相当正常运行的程序。最多16个通道。

规则通道和它的转换顺序在ADC_SQRx寄存器中选择,规则组转换的总数应写入ADC_SQR1寄存器的L[3:0]中

注入通道组:相当于中断。最多4个通道。

注入组和它的转换顺序在ADC_JSQR寄存器中选择。注入组 里转化的总数应写入ADC_JSQR寄存器的L[1:0]中

四、STM32F1的ADC的各通道可以单次,连续,扫描或者间断模式执行。

ADC单通道:

要求进行一次ADC转换:配置为单次模式使能,扫描模式失能。这样ADC的这个通道,转换一次后,就停止转换。

要求进行连续ADC转换:配置为连续模式使能,扫描模式失能。这样ADC的这个通道,转换一次后,接着进行下一次转换,不断连续。

ADC多通道:

要求进行一次ADC转换:配置为单次模式使能,扫描模式使能。这样ADC的多个通道,按照配置的顺序依次转换一次后,就停止转换。

要求进行连续ADC转换:配置为连续模式使能,扫描模式使能。这样ADC的多个通道,按照配置的顺序依次转换一次后,接着进行下一次转换,不断连续。

(扫描模式只在多通道的条件下有效,来使得各个通道按照配置循序依次转换。而单次模式无论在单通道还是多通道下只对这些或者这个通道进行一次转换,连续模式无论是在单通道还是多通道下都对这些或者这个通道不断进行连续的转换。 )

五、ADC中断

规则和注入组转换结束时能产生中断。它们都有独立的中断使能位。

六、配置函数选讲

(1)开启PA口时钟和ADC1时钟,设置PA1为模拟输入
GPIO_Init();
APB2PeriphClockCmd();

其中设置分频因子时需注意:

RCC_ADCCLKConfig(RCC_PCLK2_Div6);

//设置 ADC 分频因子 6
//APB2的时钟为72M,而72M/6=12,ADC 最大时间不能超过 14M

(2)ADC 规则通道配置函数
ADC_RegularChannelConfig(ADC1, ADC_Channel_1, 1, ADC_SampleTime_239Cycles5 );

ADC1的通道1,第三个1是指ADC1的通道1在规则序列中序号为1,即第一个转换,最后一个参数表示采样周期为239.5