第11章模拟数字转换_第1页
第11章模拟数字转换_第2页
第11章模拟数字转换_第3页
第11章模拟数字转换_第4页
第11章模拟数字转换_第5页
已阅读5页,还剩18页未读, 继续免费阅读

下载本文档

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

文档简介

ADC简介ADC(Analog-DigitalConverter)模拟-数字转换器ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁12位逐次逼近型ADC,1us转换时间输入电压范围:0~3.3V,转换结果范围:0~409518个输入通道,可测量16个外部和2个内部信号源规则组和注入组两个转换单元模拟看门狗自动监测输入电压范围STM32F103C8T6

ADC资源:ADC1、ADC2,10个外部输入通道逐次逼近ADC原理二分比较确定电压值分辨率:12位ADC00000000000010000000000011111111111100V20481.65V40953.3V逐次逼近型ADC采样保持电路电压发生器DAC+-参考电压3.3V0.9V1000000000001.65V0100000000000.825V0110000000001.238V0101000000001.036V...............0100010111000.899VADC多路复用原理12位逐次逼近型ADC结果寄存器模拟信号1模拟信号2模拟信号n....................ADC框图软件启动控制位软件启动控制位注入序列的特点:通道更少每个通道有单独的结果寄存器优先级更高输入通道ADC中断事件:EOC规则通道转换结束JEOC注入序列转换结束AWD模拟看门狗输入通道通道ADC1ADC2ADC3通道0PA0PA0PA0通道1PA1PA1PA1通道2PA2PA2PA2通道3PA3PA3PA3通道4PA4PA4PF6通道5PA5PA5PF7通道6PA6PA6PF8通道7PA7PA7PF9通道8PB0PB0PF10通道9PB1PB1通道10PC0PC0PC0通道11PC1PC1PC1通道12PC2PC2PC2通道13PC3PC3PC3通道14PC4PC4通道15PC5PC5通道16温度传感器通道17内部参考电压采样时间和转换时间采样时间:开关闭合的时间(采样+保持)转换时间:对采样点进行转换所消耗的时间(量化+编码)STM32

ADC的总转换时间为: TCONV=采样时间+12.5个ADC周期例如:当采样时间为1.5个ADC周期,ADCCLK=14MHz,则1个ADC周期为1/14μs TCONV=1.5+12.5=14个ADC周期=1μs数据对齐与转换结果数据右对齐:数据左对齐:ADC转换的结果是一个数字量,与实际的模拟电压之间的计算关系由VREF+和转换精度位数确定。例如转换精度为12位,VREF+=3.3V,ADC转换结果为12位数字量对应的整数X,则实际电压为Voltage

=

mV校准ADC有一个内置自校准模式。校准可大幅减小因内部电容器组的变化而造成的准精度误差。校准期间,在每个电容器上都会计算出一个误差修正码(数字值),这个码用于消除在随后的转换中每个电容器上产生的误差建议在每次上电后执行一次校准启动校准前,ADC必须处于关电状态超过至少两个ADC时钟周期ADC的HAL库函数分组函数名功能描述初始化和配置HAL_ADC_Init()ADC的初始化,设置ADC的总体参数HAL_ADC_MspInit()ADC初始化的MSP弱函数,在HAL_ADC_Init()里被调用HAL_ADC_ConfigChannel()ADC常规通道配置,一次配置一个通道HAL_ADC_AnalogWDGConfig()模拟看门狗配置HAL_ADC_GetState()返回ADC当前状态HAL_ADC_GetError()返回ADC的错误码轮询方式转换HAL_ADC_Start()启动ADC,并开始常规通道的转换HAL_ADC_Stop()停止常规通道的转换,并停止ADCHAL_ADC_PollForConversion()轮询方式等待ADC常规通道转换完成HAL_ADC_GetValue()读取常规通道转换结果寄存器的数据中断方式转换HAL_ADC_Start_IT()开启中断,开始ADC常规通道的转换HAL_ADC_Stop_IT()关闭中断,停止ADC常规通道的转换HAL_ADC_IRQHandler()ADC中断ISR函数里调用的ADC中断通用处理函数DMA方式转换HAL_ADC_Start_DMA()开启ADC的DMA请求,开始ADC常规通道的转换HAL_ADC_Stop_DMA()停止ADC的DMA请求,停止ADC常规通道的转换ADC的HAL库函数中断事件类型中断事件回调函数ADC_IT_EOC规则通道转换结束(EOC)事件HAL_ADC_ConvCpltCallback()ADC_IT_AWD模拟看门狗触发事件HAL_ADC_LevelOutOfWindowCallback()ADC_IT_JEOC注入通道转换结束事件HAL_ADCEx_InjectedConvCpltCallback()ADC_IT_OVR数据溢出事件,即数据寄存器内的数据未被及时读出HAL_ADC_ErrorCallback()ADC的中断事件类型和对应的回调函数ADC的HAL库函数DMA流中断事件类型和关联的回调函数DMA中断事件类型DMA中断事件类型关联的回调函数名称DMA_IT_TC传输完成中断HAL_ADC_ConvCpltCallback()DMA_IT_HT传输半完成中断HAL_ADC_ConvHalfCpltCallback()DMA_IT_TE传输错误中断HAL_ADC_ErrorCallback()ADC的注入通道相关函数分组函数名功能描述通道配置HAL_ADCEx_InjectedConfigChannel()注入通道配置软件启动转换HAL_ADCEx_InjectedStart()软件方式启动注入通道的转换HAL_ADCEx_InjectedStop()软件方式停止注入通道的转换HAL_ADCEx_InjectedPollForConversion()查询注入通道转换是否完成HAL_ADCEx_InjectedGetValue()读取注入通道的转换结果数据寄存器中断方式转换HAL_ADCEx_InjectedStart_IT()开启注入通道的中断方式转换HAL_ADCEx_InjectedStop_IT()停止注入通道的中断方式转换HAL_ADCEx_InjectedConvCpltCallback()注入通道转换结束中断事件

(ADC_IT_JEOC)的回调函数多重ADC相关函数函数名功能描述HAL_ADCEx_MultiModeConfigChannel()多重模式的通道配置HAL_ADCEx_MultiModeStart_DMA()以DMA方式启动多重ADCHAL_ADCEx_MultiModeStop_DMA()停止多重ADC的DMA方式传输HAL_ADCEx_MultiModeGetValue()停止多重ADC后,读取最后一次转换结果数据多重ADC就是两个或三个ADC同步或交错使用软件启动ADC示例如电路图所示,利用一个可变电阻器(电位器)来生成一个可调的输出电压,并将此电压接入到ADC1的IN3通道,该通道对应的是PA3引脚,然后将采集到的数据展示在OLED显示屏上。软件启动ADC示例软件启动独立模式右对齐非扫描模式单次转换使能规则序列软件启动ADC示例如果改成连续转换,只需要在获取ADC结果前启动并等待一次转换即可定时器触发ADC利用TIM3的TRGO信号作为ADC1的外部触发信号,设定TIM3的定时周期为500毫秒,ADC1将以中断方式启动转换,并在ADC转换完成的中断服务程序中读取转换结果。选择触发源选择TRGO事件update事件频率定时器启动单通道ADCADC扫描模式+DMA通道2通道5通道4通道1通道0通道3通道6触发EOC序列1序列2序列3序列4序列5序列6序列7序列8序列9序列10序列11序列12序列13序列14序列15序列16ADC_DR通道2结果通道5结果通道4结果通道1结果通道0结果通道3结果通道6结果SR

温馨提示

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

评论

0/150

提交评论