江科大/江协科技 STM32学习笔记P21


ADC模数转换器

ADC简介

在这里插入图片描述
有ADC也有DAC数字模拟转换器,使用DAC可以将数字变量转化为模拟电压,与PWM相比较,PWM也有DAC的功能,同时PWM只有完全导通和完全断开两种状态,没有功率损耗,在直流电机调速这种大功率的应用场景使用PWM来等效模拟量比DAC更好。DAC的应用主要在波形生成,比如信号发生器、音频解码芯片等。
AD转换需要花一小段时间,1us表示从AD转换开始到产生结果需要1us,对应AD转换的频率就是1MHz,是STM32ADC的最快转换频率。
两个内部信号源是内部温度传感器和内部参考电压,温度传感器可以测CPU温度,内部参考电压是1.2V左右的基准电压,不随外部供电电压变化而变化,如果芯片的供电不是标准3.3V,测量外部引脚的电压可能不对,这时可以读基准电压进行校准。
普通的AD转换流程是启动一次转换读一次值,再启动再读值,但STM32的ADC可以列一个组,一次性启动一个组,连续转换多个值,并且有两个组,一个用于常规使用的规则组,一个用于突发事件的注入组。
ADC一般可以用于测量光线强度、温度这些值,并且经常有需求,如果高于某个阈值或低于某个阈值执行一些操作,判断高于或低于可以用模拟看门狗来自动执行,模拟看门狗可以监测指定的某些通道,当高于或低于它设定的阈值时申请中断,就可以在中断函数里执行相应的操作,这样就不用不断手动读值再if判断了。

逐次逼近型ADC

在这里插入图片描述

地址锁存和译码的作用是,想选中哪一路就把通道号放在ADDA、ADDB、ADDC这三个脚上,然后给一个锁存信号,上面对应的通路开关就自动拨好了。
之后看电压比较器,它可以判断两个输入信号电压的大小关系,输出一个高低电平指示谁大谁小,两个输入端,一个是待测电压,另一个是DAC的电压输出端,DAC内部是使用加权电阻网络来实现的转换,当输入一个未知编码的电压,和一个DAC输出的已知编码的电压,两个同时输出到电压比较器进行大小判断,如果DAC输出的电压比较小,就增大DAC数据,直到DAC输出的电压和外部通道输入的电压近似相等,这样DAC输入的数据就是外部电压的编码数据了。电压调节的过程就是逐次逼近SAR来完成的,通常用二分法进行寻找电压,比如这里八位DAC,编码0-255,第一次比较给255的一半128,如果DAC电压大了,第二次比较给128的一半64…,对于8位ADC,依次判断8次就能找到未知电压的编码,对于12位的ADC判断12次。这就是逐次逼近的过程。
EOC是End of Convert转换结束信号,START是开始转换,给一个输入脉冲开始转换CLOCK是ADC时钟,因为ADC内部是一步一步进行判断的,需要时钟进行推动,VREF+和VREF-s是DAC的参考电压,DAC的参考电压也决定了ADC的输入范围,所以也是ADC参考电压

STM32的ADC

在这里插入图片描述
规则通道组最多选16个通道,但是规则通道取出结果时前15个数据会被覆盖掉,依次只能留一个数据,需要配合DMA进行数据转运。注入通道最多选4个通道,而且有四个数据寄存器,不用担心数据覆盖
在这里插入图片描述

左下角是触发转换的部分,也就是START信号开始转换。对于STM32的ADC,触发转换的信号有两种,一种是软件触发,在程序中手动调用一条代码启动转换,另一种是硬件触发,就是左下角这些触发源,主要来自于定时器,有定时器的各个通道还有TRGO定时器主模式的输出,定时器可以通向ADC、DAC这些外设用于触发转换,因为ADC经常需要过一个固定时间段转换一次

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值