Δ-ΣADC模块 --操作模式

[复制链接]
1203|12
 楼主| engao 发表于 2016-3-30 10:03 | 显示全部楼层 |阅读模式
设置者可以配置ADC,使其工作在下面的四种模式
之一:
单采样;
快速滤波器;
连续/快速平均。
       通过往控制寄存器写启动位或者发送开始转换信号(Start Of Conversion,SOC),来启动ADC转换器。
        当转换结束后,设置一个状态位,并且转换结束信号(End of Conversion, EOC)为高电平,这个信号一直保持到CPU或DMA读取转换值为止。
 楼主| engao 发表于 2016-3-30 10:04 | 显示全部楼层
单采样
       在触发器作用下,执行单次采样。在这种模式下,ADC在待机模式下等待SOC信号有效。当SOC有效,ADC执行一次采样转换,并捕获结果。为了检测EOC,系统可以轮询一个控制寄存器或者配置外部的EOC信号来产生一个中断或者调用DMA请求。
        当传输完成后,ADC进入待机状态。直到下一个SOC事件。
ah9b87 发表于 2016-3-30 10:07 | 显示全部楼层
连续采样
       在连续模式下,通道复位,然后连续运行直到停止。当输入信号不需要切换,并且需要多个采样值时,就可以采用这种模式。
ah9b87 发表于 2016-3-30 10:08 | 显示全部楼层
快速滤波器
      快速滤波器模式连续的捕获数据,在每个采样间,通道复位。一个采样结束,另一个采样立即开始,使用轮询,中断或DMA来传输结果。当输入在多个通道间进行切换,并且在每个采样间需要一个滤波器进行复位时,就可以采用这种模式。
ah9b87 发表于 2016-3-30 10:11 | 显示全部楼层
快速FIR(平均)
        这种模式和快速滤波器类似,但在两个转换间不复位调制器。当要求抽取率因子大于128时,可以使用。这种模式使用后续的处理器sinc1滤波器执行额外的抽取,以得到大于16位的分辨率。
ah9b87 发表于 2016-3-30 10:12 | 显示全部楼层
SOC信号用于启动ADC。一个数字时钟或者UDB的输出能用于驱动这个输入信号。此外,采样周期必须大于转换周期。在系统中,如果需要ADC和其他硬件同步,则需要使用SOC信号。这个信号是可选的,如果ADC运行在连续模式下,则不需要这个信号。
ah9b87 发表于 2016-3-30 10:13 | 显示全部楼层
当每次转换完后,EOC信号为高。这个信号可用于触发一个中断或者DMA请求。
bboo 发表于 2016-3-30 10:22 | 显示全部楼层
       Δ-Σ ADC的分辨率限制在8-20位。分辨率越高,采样率越低。当修改分辨率时,时钟会相应的改变来保证一个合理的采样率
bboo 发表于 2016-3-30 10:23 | 显示全部楼层
Δ-Σ ADC有固有的不稳定性,导致其在操作范围的上限和下限会产生非线性。为了避免产生这种现象,输入在调制器的前端被衰减10%。后端处理器使用1.11倍的增益来补偿这种衰减。最终的结果比要求的范围扩大了10%。比如:
如果选择输入范围±1.024V,实际的输入范围是±1.126V。有用的输入保持在±1.024V,但是除非输入超过±1.126V ,否则ADC不会饱和。
zhiyy 发表于 2016-3-30 10:24 | 显示全部楼层
从ADC的数字数出也会超过范围10%,如果ADC配置为10位操作,通常一个10位的差分的ADC输出范围-512到
511,对应-1.024到+1.022。
由于这个额外的10%的范围,数字输出直到计数±563前不会饱和(而不是-512到511)。
zhiyy 发表于 2016-3-30 10:26 | 显示全部楼层
除非分辨率设为8位或16位时,一般不需要关心的问题。当分辨率设置为8位时,必须要注意不能使计数值从其最大的正值/负值卷回到所对应的一个负值或者负值。防止产生这个问题使用API函数,使得返回一个比设定分
辨率大的一个值。
dianz 发表于 2016-3-30 10:26 | 显示全部楼层
分辨率设为16位,其最大的正值和负值会超过32767~-32768的范围,所以使用ADC_GetResult32()函数,而不是使用ADC_GetResult16()函数。
dianz 发表于 2016-3-30 10:27 | 显示全部楼层
对分辨率为8时,其最大的正值和负值会超过127~-128,所以使用ADC_GetResult16()函数。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

34

主题

400

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部