《嵌入式技术应用》课件-第17-18周-数模转换_第1页
《嵌入式技术应用》课件-第17-18周-数模转换_第2页
《嵌入式技术应用》课件-第17-18周-数模转换_第3页
《嵌入式技术应用》课件-第17-18周-数模转换_第4页
《嵌入式技术应用》课件-第17-18周-数模转换_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目七模数转换设计与实现STM32的A/D模数转换外界物理量通常都是模拟信号,如温度、湿度、压力、速度、液位、流量等都是模拟信号,需要模数转换。STM32的模数转换STM32拥有1~3个ADC,这些ADC可以独立使用,也可以使用双重模式(提高采样率)。STM32的ADC是12位逐次逼近型的模拟数字转换器。ADC有18个通道,可测量16个外部和2个内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。STM32的A/D模数转换STM32的ADC主要特征12位分辨率,自校准,带内嵌数据一致的数据对齐;转换结束、注入转换结束和发生模拟看门狗事件时产生中断;单次和连续转换模式,从通道0到通道n的自动扫描模式;采样间隔可以按通道分别编程;规则转换和注入转换均有外部触发选项;间断模式,双重模式(带2个或以上ADC的器件);ADC最大的转换速率为1MHz,既最快的转换时间为1us;ADC供电要求:2.4V到3.6V,ADC输入范围:VREF-

VIN

VREF+;规则通道转换期间有DMA请求产生。STM32的A/D模数转换STM32的ADC结构STM32把ADC的转换分为规则通道组和注入通道组2个通道组,规则通道组最多包含16个通道,注入通道组最多包含4个通道。规则通道组和注入通道组之间有什么关系呢?规则通道相当于我们正常运行的程序,注入通道相当于中断。在正常执行程序(规则通道)的时候,中断(注入通道)是可以打断正常执行的程序。既注入通道的转换可以打断规则通道的转换,在注入通道被转换完成之后,规则通道才得以继续转换。在程序初始化中要设置好规则通道组和注入通道组。STM32模数转换结构框图ADC相关的寄存器ADC控制寄存器ADC_CR1位8(SCAN)用于设置扫描模式,由软件设置和清除。1:使用扫描模式,0:关闭扫描模式。在扫描模式下,由ADC_SQRx或ADC_JSQRx寄存器选中的通道被转换。位19:16(DUALMOD)用于设置ADC的操作模式,在这里使用的是独立模式,所以设置这几位为0就可以了。ADC相关的寄存器ADC控制寄存器ADC_CR2位0(ADON)。用于开/关AD转换器,由软件设置和清除,1:开启ADC并启动转换,0:关闭ADC转换/校准,并进入断电模式。位1(CONT)。用于设置是否进行连续转换,由软件设置和清除,1:连续转换模式,0:单次转换模式。本项目使用单次转换,CONT位必须为0。位11(ALIGN)。用于设置数据对齐,由软件设置和清除,1:左对齐,0:右对齐。本项目使用右对齐,ALIGN位必须为0。位19:17(EXTSEL)。用于选择启动规则转换组转换的外部事件,若使用的是软件触发(SWSTART),这3位要设置为111。位22(SWSTART)。用于开始转换规则通道,由软件设置该位以启动转换,转换开始后硬件马上清除此位。ADC相关的寄存器ADC采样事件寄存器ADC_SMPR1~2对于每个要转换的通道,采样时间要尽量长一点,以获得较高的准确度,这样做也会降低ADC的转换速率。ADC的转换时间可由下面公式获得:

Tcovn=采样时间+12.5个周期其中,Tcovn为总转换时间,采样时间是根据每个通道的SMP位的设置来决定的。比如,当ADCCLK=14MHz时,并设置1.5个周期的采样时间,根据公式计算,可以得到总转换时间:Tcovn=1.5+12.5=14个周期=1us。ADC相关的寄存器ADC规则序列寄存器ADC_SQR1~3位23:20(L[3:0])。用于设置规则通道序列长度,这4位由软件定义在规则通道转换序列中的通道数目。本项目只用了1个,设置这4位为0。SQ13~16[4:0]。用于设置规则通道序列中的第13~16个转换通道,这些位由软件定义转换序列中的第13~16个转换通道的编号(0~17)。

单次转换,只有一个通道在规则通道序列里面,是在ADC_SQR3的最低5位(既SQ1)来设置的。ADC相关的寄存器ADC规则数据寄存器ADC_DR和ADC注入数据寄存器ADC_JDRx规则通道的AD转换结果,都保存在ADC规则数据寄存器ADC_DR的DATA[15:0]中;注入通道的AD转换结果,保存在ADC注入数据寄存器ADC_JDRx的JDATA[15:0]中。ADC状态寄存器ADC_SRADC_SR保存ADC转换时的各种状态。如:可以通过EOC位来判断本次规则通道的AD转换是否完成,若完成就从ADC_DR中读取转换结果,否则等待转换完成。

任务15基于寄存器的STM32模数转换设计目标使用STM32的ADC寄存器,通过程序控制STM3F103VCT6的A/D转换,实现模拟电压的采集、LCD12864显示采样值和电压值的设计、运行与调试。任务要求利用STM32的ADC相关寄存器,设计一个STM32模数转换,完成模拟电压的采集,并在LCD12864上显示采样值和电压值。要求:在STM32的单次转换模式下,使用ADC1的通道1,来进行AD转换。任务15基于寄存器的STM32模数转换设计STM32的ADC设置(单次转换模式)开启PA口时钟,设置PA1为模拟输入;使能ADC1时钟,并设置分频因子;设置ADC1的工作模式;设置ADC1规则序列的相关信息;开启AD转换器和校准设置;读取ADC值。通过以上设置(

STM32的ADC设置代码见源程序),就可以正常的使用STM32的ADC1,来完成A/D转换的操作了。任务15基于寄存器的STM32模数转换设计STM32模数转换电路设计模拟电压采集电路设计ADC1的通道1是在PA1上,通道1(PA1)采集的模拟电压,可以通过电位器来获得,如右下图所示。LCD12864液晶显示电路设计LCD12864控制引脚RS、RW、E、PSB和RST分别接PD0、PD1、PD2、PD3和PD4;LCD12864数据引脚DB0~DB7分别接PD8~PD15。任务15基于寄存器的STM32模数转换设计STM32模数转换程序设计编写adc.h头文件和adc.c文件初始化ADC:采用规则通道,开启通道1;获得规则序列1的通道ch的ADC值;获取通道ch的times次转换结果平均值。编写12864.h头文件和12864.c文件编写主文件使用STM32的ADC1的通道1(PA1)采集模拟电压,通过模数转换,在LCD12864上显示采样值及电压值。STM32模数转换代码,见源程序。任务16基于库函数的STM32模数转换设计目标使用STM32的ADC库函数,通过程序控制STM3F103VCT6的A/D转换,实现模拟电压的采集、LCD12864显示采样值和电压值的设计、运行与调试。任务要求利用STM32的ADC相关库函数,设计一个STM32模数转换,完成模拟电压的采集,并在LCD12864上显示采样值和电压值。要求:在STM32的单次转换模式下,使用ADC1的通道1,来进行AD转换。ADC相关的函数开启PA口时钟和ADC1时钟,设置PA1为模拟输入。前面已经介绍,见源程序复位ADC1,并设置分频因子。ADC1复位函数ADC_DeInit(),复位ADC1代码如下:

ADC_DeInit(ADC1);设置ADC分频因子函数RCC_ADCCLKConfig(),设置ADC分频因子为6,可获得72MHz/6=12MHz,代码如下: RCC_ADCCLKConfig(RCC_PCLK2_Div6);ADC相关的函数初始化ADC1参数,设置ADC1的工作模式以及规则序列的相关信息。初始化ADC1函数ADC_Init(),可以根据指定的参数,初始化外设ADCx的寄存器。初始化ADC1的代码如下: ADC_Init(ADC1,&ADC_InitStructure);本任务需要初始化ADC1参数:ADC的模式:独立工作模式;单次转换模式、软件控制转换、ADC数据右对齐;转换规则序列1的ADC通道的数目为1等。ADC相关的函数使能AD转换器和校准设置使能ADC1代码如下:

ADC_Cmd(ADC1,ENABLE);使能复位校准ADC1代码如下:

ADC_ResetCalibration(ADC1);等待复位校准结束代码如下: while(ADC_GetResetCalibrationStatus(ADC1));开启AD校准代码如下:

ADC_StartCalibration(ADC1);等待校准结束代码如下: while(ADC_GetCalibrationStatus(ADC1));ADC相关的函数读取ADC值ADC1的通道1采样时间是239.5周期,代码如下:ADC_RegularChannelConfig(ADC1,ch,1, ADC_SampleTime_239Cycles5);使能指定的ADC1的软件转换启动功能,代码如下:ADC_SoftwareStartConvCmd(ADC1,ENABLE);等待转换结束,代码如下:while(!ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC));读取ADC1规则组的转换结果,代码如下:temp=ADC_GetConversionVa

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论