第9章 STM32W108 AD转换器.ppt

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* STM32W108嵌入式无线传感器网络 配套教材: 《STM32W108嵌入式无线传感器网络》 邱铁、夏锋、周玉编著. 清华大学出版社. 2014.5 Email: stm32w@ 第9章 STM32W108 AD转换器 本章内容提要: 9.1功能描述 9.2ADC寄存器 9.3应用实例解析 9.4思考与练习题 STM32W108 AD转换器是一个一阶∑-△转换器,具有以下特性: 分辨率可达12位 采样最小时间5.33us(188KHz) 6个外部和4个内部输入源,可进行差分和单端转换 两个电压转换范围(差分):-VREF~+VREF,-VDD_PADS~+VDD_PADS 可选择内部和外部参考标准VREF:内部的VREF可用于输出 数字偏移和增益校准 专用DMA通道,通道支持一次和连续的操作模式 ADC结构图 9.1功能描述 在模拟模式下配置ADC要使用的所有GPIO引脚。 配置参考电压(内部或外部)。 设置偏移和增益值。 复位ADC DMA,定义DMA缓冲区,并在适当的传输模式下启动DMA。 如果中断被使用,配置基本ADC中断和具体的屏蔽位。 通过写ADC配置寄存器来定义输入电压范围、采样时间,并开始转换。 GPIO使用 参考电压 ADC参考电压(VREF),可以从内部或从PB0外部信号源产生。如果从内部产生,它可以选择在PB0上输出。要使用一个外部电压作为参考电压,在复位后或从深度睡眠中唤醒后,需要调用一个ST系统函数将GPIO_PBCFGH[3:0]配置PB0为模拟模式。 偏置/增益校正 当转换完成后,16位的转换数据被偏置/增益逻辑进行校正处理: 将基本ADC转换结果加上ADC偏移寄存器(ADC_OFFSET)的16位有符号值(2的补码)。 偏移校正后的数据乘以ADC增益寄存器(ADC_GAIN)的值来产生一个有符号的16位结果。 DMA ADC DMA通道将偏置/增益校正后的转换数据写入到RAM中的一个DMA缓冲区中,ADC DMA缓冲区是由两个寄存器定义: ADC_DMABEG是缓冲区的起始地址而且必须是偶数。 ADC_DMASIZE指定16位采样缓冲区的大小,或是字节数的一半。 DMA详细信息参考教材《STM32W108嵌入式无线传感器网络》第9.1节。 ADC输入 ADC的模拟输入有很多个来源,这由ADC_CFG寄存器中的ADC_MUXP和ADC_MUXN位来配置. 模拟电压输入范围 ADC输入可以通过输入缓冲器来扩大输入电压范围,输入缓冲器具有一个固定0.25增益,转换后的数据乘以该增益因子。 输入缓冲器禁用时,单端的输入范围为0至VREF,差分输入电压范围是-VREF到+VREF。 在输入缓冲器启动时,单端的输入范围是0到VDD_PADS,差分输入电压范围为-VDD_PADS到+VDD_PADS。 采样时间 采样时钟可以是1MHz或6MHz,如果ADC_CFG寄存器中的ADC_1MHZCLK位为0,6MHz的时钟被使用,如果它被置1,1MHz的时钟被使用。6MHz采样时钟提供更快的转换时间,但其ADC有效分辨率是低于1MHz时钟的。 每个采样的时钟个数由ADC_CFG寄存器中的ADC_PERIOD位确定。ADC_PERIOD的值可在32~4096(2的幂)中选择,采样时间越长,产生有效位越多。但不管采样时间为多少,转换后的采样结果总是16位左对齐的值。 AD转换 1.分配一个有符号的16位变量,例如analogData,来接收ADC的输出。(请确保analogData是半字对齐的 - 也就是说,是一个偶数起始地址) 2.禁用所有ADC中断 - 将0写到INT_ADCCFG。 3.设置DMA输出转换结果给变量analogData。 校准 在绝对精度非常重要的应用场合中,内部连接的GND、VREF/2和VREF的采样允许ADC进行偏移和增益校准,偏移误差是由最小输入计算,增益误差由满量程输入范围计算。 中断 INT_ADCOVF - ADC转换结果准备好了,但DMA被禁用(DMA缓冲区溢出)。 INT_ADCSAT - 增益校正乘法结果超过了有符号的16位数字的范围(增益饱和)。 INT_ADCULDFULL - DMA写入缓冲区的最后位置(DMA缓冲区满)。 INT_ADCULDHALF - DMA写入缓冲区上半部分的最后一个位置(DMA缓冲区半满)。 当写1到自己位置时,INT_ADCFLAG的位会被清除。 9.2 ADC寄存器 ADC配置寄存器(ADC_CFG) ADC_CFG寄存器位信息描述 ADC偏移寄存器(ADC_OFFSET) ADC偏移寄存器的Bit[15:0]位ADC_OFFSET_FIELD为16位有符号偏移量,在增益计算之前,会将该偏移值与ADC采样结果相加。 其

文档评论(0)

love + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档