打印
[其他ST产品]

stm32 ADC理解

[复制链接]
667|37
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
AD, ST, dc
神通广大的各位互联网的网友们、大家早上中午晚上好好好、今早起来很准时的收到了两条10086的扣月租的信息、心痛不已、怀着这心情、又开始了STM32的研究、早上做了计算机控制的PID实验,又让我想起了飞思卡尔的电磁小车、、曾经的电感电压采集让我心碎的多少次、又让我开心了多少次、但已经成为过去、(软件和硬件都会影响),呵呵、估计有人已经猜到我接下来要介绍什么了、在你们面前、我已无秘密、额、其实标题也直接“表白”了、看到标题,别吓到哈、并不是要用英文写、至于原因是什么、请往下看:
        好吧、言归正传:STM32的ADC模块,请允许我用如此通俗的语言:普通话  来介绍STM32ADC模块的特色
       1、1MHz转换速率、12位转换结果(12位、记住这个12位哈、因为2^12=4096 ,也请记住4096哈)
            STM32F103系列:在56MHz时转换时间为:1μs
                                     在72MHz时转换时间为:1.17μs
       2、转换范围:0~3.6V  (3.6v---->当你需要将采集的数据用电压来显示的话:设你采集的数据为:x[0~4095],此时的计算公式就为:(x / 4096) * 3.6))
       3、ADC供电要求:2.4V~3.6 V(可千万别接到 5V 的石榴裙子底下呀)
       4、ADC输入范围:VREF-≤ VIN ≤VREF+ (VREF+和VREF-只有LQFP100封装才有)
       5、双重模式(带2个ADC的设备): 8种转换模式
       6、最多有18个通道:16个外部通道
                                    2个内部通道:连接到温度传感器和内部参考电压(VREFINT = 1.2V)
       ......(略,请看参考手册哈,由于篇幅,就不过多的列出来了、、说到略、让我想起了月光宝盒诸葛亮的:略懂略懂、、其实我也是略懂略懂而已、、)

使用特权

评论回复
沙发
工程师犹饿死|  楼主 | 2022-6-28 15:46 | 只看该作者
12、DMA功能(仅ADC1有)

      本博客里,由于篇幅、所以就以独立模式下的单次转换为例哈、打开参考手册可以看到这段话:

       单次转换模式下,ADC只执行一次转换。

       该模式既可通过设置ADC_CR2寄存器的ADON位(只适用于规则通道)启动也可通过外部触发启动(适用于规则通道或注入通道),这时CONT位为0。

使用特权

评论回复
板凳
工程师犹饿死|  楼主 | 2022-6-28 15:49 | 只看该作者
一旦选择通道的转换完成:

       ● 如果一个规则通道被转换: ─ 转换数据被储存在16位ADC_DR寄存器中 ─ EOC(转换结束)标志被设置 ─ 如果设置了EOCIE,则产生中断。

使用特权

评论回复
地板
工程师犹饿死|  楼主 | 2022-6-28 15:57 | 只看该作者
  ● 如果一个注入通道被转换: ─ 转换数据被储存在16位的ADC_DRJ1寄存器中 ─ JEOC(注入转换结束)标志被设置 ─ 如果设置了JEOCIE位,则产生中断。

使用特权

评论回复
5
工程师犹饿死|  楼主 | 2022-6-28 16:00 | 只看该作者
然后ADC停止。

使用特权

评论回复
6
工程师犹饿死|  楼主 | 2022-6-28 16:01 | 只看该作者
此图形象的表明了其背后那不为人知的秘密转换关系。。虽然单凭看文字就能想象出来、但是、有图片是不是更加形象呢???

使用特权

评论回复
7
工程师犹饿死|  楼主 | 2022-6-28 16:05 | 只看该作者
对于以上的寄存器、在此我稍微提提:免得寄存器大神们产生怨气:好不容易等到你讲我老大ADC,却不把我这些背后的勤劳者给导出来

使用特权

评论回复
8
工程师犹饿死|  楼主 | 2022-6-28 16:34 | 只看该作者
   1、ADC状态寄存器(ADC_SR)

使用特权

评论回复
9
工程师犹饿死|  楼主 | 2022-6-28 16:35 | 只看该作者
2、ADC控制寄存器1(ADC_CR1)

使用特权

评论回复
10
工程师犹饿死|  楼主 | 2022-6-28 16:36 | 只看该作者
3、ADC控制寄存器2(ADC_CR2)

       EXTSEL[2:0]:选择启动规则通道组转换的外部事件 (External event select for regular group)

       ALIGN:数据对齐 (Data alignment)

       RSTCAL:复位校准 (Reset calibration)

       CAL:A/D校准 (A/D Calibration)

       CONT:连续转换 (Continuous conversion)

       ADON:开/关A/D转换器 (A/D converter ON / OFF)

使用特权

评论回复
11
工程师犹饿死|  楼主 | 2022-6-28 16:46 | 只看该作者
4、ADC采样时间寄存器1(ADC_SMPR1)

       SMPx[2:0]:选择通道x的采样时间 (Channel x Sample time selection)

使用特权

评论回复
12
工程师犹饿死|  楼主 | 2022-6-28 16:46 | 只看该作者
   5、ADC规则序列寄存器1(ADC_SQR1)

       L[3:0]:规则通道序列长度 (Regular channel sequence length)

       SQ1[4:0]:规则序列中的第1个转换 (1st conversion in regular sequence)(ADC规则序列寄存器3(ADC_SQR3))

使用特权

评论回复
13
工程师犹饿死|  楼主 | 2022-6-28 16:52 | 只看该作者
6、ADC规则数据寄存器(ADC_DR)   

    DATA[15:0]:规则转换的数据 (Regular data)

(由于寄存器过于多,我们就不在这一一列举了哈、、因为我主要是用库,所以寄存器相关的位都不具体介绍了哈、请大家参照中文手册)

使用特权

评论回复
14
工程师犹饿死|  楼主 | 2022-6-28 17:01 | 只看该作者
在这里,向大家介绍下:数据对齐:

                                              ALIGN位用于设置对齐方式:右或左;

                                              对于注入通道,转换结果是减去偏移量的值,可以为一个负数,在右对齐时扩展位位符号位。

使用特权

评论回复
15
工程师犹饿死|  楼主 | 2022-6-28 17:02 | 只看该作者

使用特权

评论回复
16
工程师犹饿死|  楼主 | 2022-6-28 17:02 | 只看该作者
那我们现在要怎么来实现呢??这个问题、相信大家在看了那么多的寄存器之后急迫想要知道的吧、、前面的只是个热身、、接下来步骤如下:

使用特权

评论回复
17
工程师犹饿死|  楼主 | 2022-6-28 17:03 | 只看该作者
   1、开启ADC1的时钟,由于ADC1是在PA1上,所以同时也要打开PA的时钟,并进行相关的配置、对于这个配置,要把PA1设置成模拟输入,为什么呢??大家打开中文参考手册可以看到

    啊哈、、这下子清楚了吧、

使用特权

评论回复
18
工程师犹饿死|  楼主 | 2022-6-28 17:19 | 只看该作者
2、复位ADC1,(本人觉得没必要、为什么,待会我会跟你说,留下悬念先),设置ADC1的分频因子,(记住,这里的ADC的时钟不能超过14MHZ),而且其采样周期长点会好点,

        ADCCLK---最快可达14MHz, 时钟来自经过分频器的PCLK2(2、4、6、8分频)

        整个转换时间 = 采样时间 + 12.5个周期(固定时间)

       在14MHz和采样时间位1.5周期时  转换时间:1μs (14个周期 cycles)

       当ADCCLK=14MHz和1.5周期的采样时间:

        TCONV = 1.5 + 12.5 = 14周期 = 14×(1 / (14 × 1000000)) = 1μs

       其采样周期一览表:

使用特权

评论回复
19
工程师犹饿死|  楼主 | 2022-6-28 17:21 | 只看该作者

使用特权

评论回复
20
工程师犹饿死|  楼主 | 2022-6-28 17:23 | 只看该作者
涉及到采样周期、这里来看看转换序列:

    最多达16个转换通道且可以采样不同的顺序排列,不同的采样时间和过采样的可能性。

例如:- 转换通道:1、2、8、4、7、3、11
                            - 不同的采样时间;
                            - Oversampling of channel 7。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

75

主题

886

帖子

0

粉丝