Microchip代码配置器MCC学习教程4 --ADCC计算和CVD

关键字 :MicrochipMCCADCC
      上一篇博文我们介绍了ADCC的数模转换功能,这篇博文主要介绍ADCC的计算和CVD(电容分压器)的功能。

      首先介绍ADCC的计算功能,这些计算指的是对ADC转换结果进行数据处理,可以对连续若干个采集结果进行数据整理。同时还可以进行阈值限制判断,可以配置多种阈值触发模式。接着上一篇的操作,我们打开MCC,在ADCC界面中选择Average_mode,或者其他模式,在Computation Feature中,可以设置触发模式、阈值、采集次数等参数,如下图。


      结合Datasheet的计算功能逻辑框图,可以更加清晰的看懂这个计算逻辑,如下图。

       在Operating中下拉会有这些模式,官网的规格手册介绍如下:
      1、Basic 这是一个基本模式。在这种模式下,ADC转换在单个(DSEN = 0)或双(DSEN = 1)上进行样本。ADIF是在所有转换完成之后设置的。
      2、Accumulate_mode 对于每个触发器,ADC转换结果被添加到累加器和ADCNT增量中。ADIF是在每次转换之后设置的。根据计算模式设置ADTIF。
      3、Average_mode对于每个触发器,ADC转换结果被添加到累加器中。当ADRPT号码对累积的样本进行阈值检验。在下一个触发器上,累加器是清除。对于后续的测试,需要积累额外的ADRPT样本。
      4、Burst_average_mode 触发时,清除累加器。然后收集ADC转换结果重复,直到ADRPT样本积累,最后测试阈值。
      5、Low_pass_filter_mode对于每个触发器,ADC转换结果通过一个过滤器发送。当ADRPT发生样本,进行阈值测试。此后的每个触发器都将发送ADC转换结果通过过滤器和另一个阈值测试被执行。

      我们整理后可以得出计算功能可包括三部分:
      1、累加/平均/滤波
      2、误差计算
      3、逻辑计算
      累加/平均/滤波
      累加模式:注意累计次数,以防结果溢出。累计寄存器ACC为16位,ADC结果寄存器12位。所以累计次数在16次以内,是不会溢出的。超过16次,要根据应用中输入模拟量的大小范围确定。
      平均模式:每次软件或事件触发ADCC,加入一个新的ADC值。对于N次平均,需要N次ADCC转换触发。
      突发平均模式:一次软件或事件触发后,ADCC连续做N次采集,然后平均。只需一次触发即可完成一次突发平均计算。
      低通滤波器模式:利用累加寄存器ACC与滤波寄存器FILT的多次迭代计算来实现。每次迭代计算,都包含有对以前数据的移位操作。移位的位数决定了滤波器的通带带宽和对噪声的敏感性。一般移位次数小带宽大,对噪声敏感;位数大,则带宽小,一直噪声能力强。
     

误差计算,有多种模式:
– 单次测量结果的一阶导数
– CVD 模式下的CVD 结果
– 当前结果与设定值之差
– 当前结果与滤波后的结果/平均值计算结果之差
– 滤波后的值/平均值的一阶导数

– 滤波后的值/平均值与设定值之差
      比较常用的是,当前结果或滤波后结果与设定值之差。

门限比较,也包含很多种方式:
– 永不中断
– 误差小于阈值下限
– 误差大于或等于阈值下限
– 误差介于阈值上限和阈值下限之间(包含上限和下限)
– 误差超出阈值
– 误差小于或等于阈值上限
– 误差大于阈值上限
– 无论阈值测试结果如何,始终中断
– 如果满足阈值条件,则阈值中断标志ADTIF 置1。

      接下来,我们来看下CVD电容分压器这个功能。这一特性是将ADC内部采样保持电容作为参考,来对引脚上连接的外部电容进行相对电容测量。此功能主要应用于触摸按键和接近检测。例如目前大多数PIC都是带有Touch功能的,主要就是使用CVD这个功能进行检测电容值。
      我们在CVD Features上可以找到CVD设置的相关参数,如下图。

      同时对比手册上对CVD逻辑介绍,如下图。

CVD分为预充,采集和转换三个工作阶段。在各个阶段中,CVD需要控制很多开关,如逻辑图中的K1-K4,Kpre,和附加采样保持电容上的开关。Kpre和K1-4在不同的工作阶段开关状态会有变化,附加采样保持电容开关在三个阶段开关状态不改变。
      预充阶段
Kpre OFF,K1-K4根据预充极性选择确定ON/OFF状态。有一个基本原则是,K1与K4状态相同,K2与K3状态相同,K1/K4 与K2/K3状态相反。这样保证PIN脚外电容Csensor和内部采样保持电容Chold 被预充到相反的电平。
      采集阶段
Kpre ON,K1-4全部OFF,内外电容分压开始,最后达到电压稳定状态
      转换阶段
ADC将采样保持电容的电压转换为数字量,得出结果。
      如下图是CVD运行时内外电容上电压变化的波形图。红色为内部采样保持电容电压波形,蓝色为外部引脚上触摸按键的电容。图上显示的是连续完成了两次CVD操作,两次采集结果相减,即可得到差分结果。这种两次CVD的差分操作可有效减小温度等带来的共模干扰。ADCC双采样设置启动后,每次运行自动进行两次CVD操作,获得两个采样值。

       配置完成后,我们使用MCC生成代码,如下图6、7,我们可以在adcc.c文件中找打CVD的相关代码。


       现在,我们已经介绍完了MCC中ADCC的常用功能,更多更细的操作和代码介绍,欢迎各位看官使用PIC 进行设计中更深层次的挖掘和分享。

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论

林工

林工

2020年12月21日
点赞,希望多写些。
林工

林工

2020年12月21日
点赞,希望多写些。
林工

林工

2020年12月21日
点赞,希望多写些。