ADC模块

一、ADC简介

        ADC(Analog-Digital Converter)模拟-数字转换器。ADC可以将引脚上连续变化模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路桥梁。

        12位逐次逼近型ADC,1us转换时间(分辨率:12位,频率:1MHz)。输入电压0-3.3v,转换结果0-4095(2^12-1)。

        STM32F103系列,一共有18输入通道,16个外部,2个内部。STM32F103C8T6芯片的ADC资源,ADC1、ADC2,10个外部输入通道。

        规则组、注入组连个转换单元,模拟电子看门狗自动检测输入电压范围。

二、逐次逼近型ADC

1.ADC0809逐次逼近型

        地址锁存和译码控制通道选择开关,到电压比较器。

        DAC到比较器。 DAC的Vref连接Vcc和GND。

        当两个输入到比较器的值近似相等时,输出至8位三态锁存缓冲区,OE使能。

        定时与控制,EOC结束,START开始,CLOCK时钟。

2.STM32 ADC框图

        ADCx_INx外部输入引脚16个,温度传感器、Vrefint内部输入引脚2个,至多路选择开关,选择进入注入通道或规则通道,数据进入相应数据寄存器,读取数据寄存器的值,就读出转换的数据。(注入组4*116位;规则组1*16位,需要配合DMA数据搬运)

        开始转换,触发分软件触发、硬件触发。软件触发在程序中调用一个函数,硬件触发通过EXTI_11或EXTI_15。(EXTI_11控制规则组,EXTI_15控制注入组)

        Vref正负连接到Vdda和Vssa。

        DMA请求由DMA申请。

        规则组数据寄存器和注入组数据寄存器至EOC、JEOC、AWD,中断会置一个标志位,中断使能,至NVIC的ADC中断。(EOC规则组中断,JEOC注入组中断,AWD模拟电子看门狗)

三、ADC基本结构

1.输入通道

2.转换模式

        单次转换、连续转换:决定触发用几个。

        非扫描模式、扫描模式:决定ADC通道数量。

①单次转换,非扫描模式

        只用到序列1,把转换通道写入序列1,触发开始转换,转换数据放到数据寄存器,同时EOC置1,判断EOC是否置1,置1就去读出数据。

②连续转换,非扫描模式

        只需要一次触发,它就自动自己扫描。

③单次转换,扫描模式

④连续转换,扫描模式

3.触发控制

4.数据对齐

5.转换时间

6.校准

7.硬件电路

        电位器、传感器。

四、实验

1.单路AD

①实验现象

        OLED上第一行显示ADC转换值,第二行显示电压值。调节电位器,对应值有相应变化。

②硬件设计

③软件设计

用到OLED、Delay模块。

AD.c

AD.h

main.c

④用到函数

外设时钟使能:RCC_APB2PeriphClockCmd

ADC时钟配置:RCC_ADCCLKConfig

GPIO结构体重定义:GPIO_InitTypeDef

GPIO初始化:GPIO_Init

规则组通道配置:ADC_RegularChannelConfig

ADC结构体重命名:ADC_InitStructure

ADC单元初始化:ADC_Init

ADC使能:ADC_Cmd

校准:ADC_ResetCalibration、ADC_GetResetCalibrationStatus、ADC_StartCalibration、ADC_GetCalibrationStatus

软件触发开始转换配置:ADC_SoftwareStartConvCmd

采样值读取:ADC_GetConversionValue

2.多路AD

①实验现象

        OLED第一行显示AD1:xxxx;第二行显示AD2:xxxx;第三行显示AD3:xxxx;第四行显示AD4:xxxx。

②硬件设计

③软件设计

用到OLED、Delay模块。

AD.c

AD.h

main.c

④用到函数

外设时钟使能:RCC_APB2PeriphClockCmd

ADC时钟配置:RCC_ADCCLKConfig

GPIO结构体重定义:GPIO_InitTypeDef

GPIO初始化:GPIO_Init

ADC结构体重命名:ADC_InitStructure

ADC单元初始化:ADC_Init

ADC使能:ADC_Cmd

校准:ADC_ResetCalibration、ADC_GetResetCalibrationStatus、ADC_StartCalibration、ADC_GetCalibrationStatus

规则组通道配置:ADC_RegularChannelConfig

软件触发开始转换配置:ADC_SoftwareStartConvCmd

采样值读取:ADC_GetConversionValue

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值