1.ADC
1.1 ADC是什么?
将连续变量的模拟信号转换为离散变量的数字信号
1.2 ADC的位数?(采样精度)
F1和F4都具有3个ADC,F1可提供21个输入通道,F4可以提供24个输入通道。
F4的ADC支持12位,10位,8位和6位精度,F1只支持12位
ADC的数字存储是12位的的话,“111111111111”=4095,转换的电压范围是0v-3.3v的话,转换器就会把0v-3.3v平均分成4096份
其他位同理。
1.3 ADC的采样频率
F1的ADC最大采样频率为1Msps,2路交替采样可到2Msps(F1不支持3路交替采样)。F4的ADC最大采样频率为2.4Msps,3路交替采样可到7.2Msps。
1.4 ADC转换模式
①单次转换:ADC只执行一次转换
②连续转换:转换结束之后马上开始新的转换
③扫描:ADC扫描被规则通道和注入通道选中的所有通道,在每个组的每个通道上执行单次转换。在每个转换结束时,这一组的下一个通道被自动转换。如果设置了CONT位(开启了连续 转换模式),转换不会在选择组的最后一个通道上停止,而是再次从选择组的第一个通道继续转换。 简单说就是对所有所选中的通道进行转换!
④间断:触发一次,转换一个通道,在触发,在转换。在所选转换通道循环,由触发信号启动新一轮的转换,直到转换完成为止。
1.5 ADC工作原理
采样: 模拟信号以固定的时间间隔进行采样,获得一系列模拟信号的离散样本。
量化: 采样得到的模拟信号样本被映射到固定数量的离散级别,这个过程叫做量化。量化级别越多,ADC的分辨率越高。
编码:量化后的数值需要转换为数字编码。最常见的编码方式是二进制编码
1.电压
2.ADC输入通道
3.注入通道规则通道
规则通道:规则通道相当于你正常运行的程序,看它的名字就可以知道,很规矩,就是正常执行程序
注入通道:注入通道可以打断规则通道,听它的名字就知道不安分,如果在规则通道转换过程中,有注入通道进行转换,那么就
要先转换完注入通道,等注入通道转换完成后,再回到规则通道的转换流程
4.ADC时钟:ADDCLK,时钟控制器提供的ADCCLK时钟和PCLK2(APB2时钟)同步。
STM32的ADC最大的转换速率为1MHz,也就是说最快转换时间为1us,为了保证ADC转换结果的准确性,ADC的时钟最好不超过14M。T = 采样时间 + 12.5个周期,其中1周期为1/ADCCLK。
5.外部触发转换
ADC 转换可以由ADC 控制寄存器2: ADC_CR2 的ADON 这个位来控制,写1 的时候开始转换,写0 的时候停止转换;
还可以支持外部事件触发转换,具体的触发源由ADC_CR2的EXTSEL[2:0]位(规则通道触发源 )和 JEXTSEL[2:0]位(注入通道触发源)控制。
6.中断
中断触发条件有三个,规则通道转换结束,注入通道转换结束,或者模拟看门狗状态位被设置时都能产生中断
1.6 问题
ADC采样精度?数据多少位ADC参数?精度有什么决定?
模数转换的精确程度。F4支持12,10,8,6;F1只支持12。精度由分辨率,信噪比,采样速率,转换时间;
ADC如何提升精度?
提升ADC分辨率,采用滤波电路减少噪声和干扰,增加采样时间,定期校准和校正;
这个ADC部分是怎么实现和选择的?
ADC工作原理?如何实现?
采样,量化,编码,输出;给定模拟参考电压Vref,ADC_GPIOx采集外部信号,通过注入/规则通道到模数转换器,写入数据寄存器,输出。
ADC的通道数是多少?
一共支持18个引脚支持ADC,包括16个外部和2个内部信号源
采样时间和转换时间?
采样时间是采集模拟信号的时间长度,转换时间是将模拟信号转换为数字信号的时间长度。
ADC支持哪些触发源?
软件触发,外部触发源,外部事件触发(包括内部定时器触发和外部IO触发)
ADC的转换模式?
单次,多次,扫描,间断