跳过主要内容

AN-1150自动测距I2C电容计

内容

参考文献

有关文件及软件,请浏览:

//www.xmece.com/亚博电竞菠菜products/greenpak

下载我们的免费GreenPAK设计软件[1],打开。gp文件[2],并使用GreenPAK开发工具[3]在几分钟内将设计冻结到您自己的定制IC中。

yabo国际娱乐Dialog Semiconductor提供了一个完整的应用笔记[4]库,包括设计示例以及Dialog IC内的功能和模块的说明。

  1. GreenPAK设计软件,软件下载和用户指南,Dialog Semiconductoryabo国际娱乐
  2. AN-1150自动量程I2C电容计,绿派克设计文件,Dialog半导体yabo国际娱乐
  3. GreenPAK开发工具, GreenPAK开发工具网页,Dialog半导体yabo国际娱乐
  4. GreenPAK应用笔记,绿派克应用笔记网页,对话半导体yabo国际娱乐
  5. SLG46538对话框数据表,半导体yabo国际娱乐

介绍

电容通常是通过使用被测电容元件形成RC振荡电路来测量的,如图1所示。一个逻辑逆变器被用来依次充放电电容器,振荡器的频率与被测电容成反比。为了测量振荡器的频率,振荡器信号被送入计数器。频率是根据积累固定数量脉冲所需的时间来计算的。

图1所示。带逆变器的RC振荡器电路

这种安排所能测量的频率范围是有限的。当参考定时器在脉冲计数器溢出之前溢出时,达到最低可测量频率。当参考计时器在脉冲计数器溢出前只滴答一次时,达到最高可测量频率。

然而,由于RC振荡器的频率也与外部电阻R成反比,通过在多个电阻值之间切换,可以扩大可测量电容的范围。对于高电容,可以使用一个较低值的电阻来保持频率高于低频边界。同样地,对于低电容,可以使用高值电阻来保持频率低于上频率边界。在这个例子中,使用五个外部电阻实现了五个电容范围,如图2所示。注意,逆变器组件可以在GreenPAK5内部实现;然而,系统的输入和输出引脚之间的显著耦合被观察到,因此电容电压必须由一个外部的逆变器缓冲。

表1列出了每个测量范围的电阻值。在大多数情况下,它们之间的距离是10倍。这个比率可以增加以扩大测量范围。实际上,电阻值的下限是由GreenPAK IC每个输出引脚上的最大电流决定的,电阻值的上限是由电容泄漏电流和逆变门输入泄漏电流决定的。

表1。用于每个电容范围的电阻器值

电阻器

价值

R0

470Ω

R1

10 kΩ

R2

100 kΩ

R3

1米Ω

R4

10米Ω

对于微控制器来说,电容测量可能是资源密集型的。

需要一个计数器来积累RC振荡器的脉冲,需要一个参考定时器来测量积累脉冲所需的时间。需要GPIO管脚来管理用于实现多个测量范围的各种外部电阻。

必须对计数器进行轮询(或者必须使用中断例程)以捕获其溢出的时刻。使用GreenPAK IC可以释放所有这些资源,并自动化所有的多范围功能。

图2。RC振荡器与5个范围实现与GreenPAK SLG46538M

自变换量程/测量电路

图3。GreenPAK内部连接

图3描述了在GreenPAK IC内部实现的电容测量和自动测距逻辑,在内部电路的核心是两个计数器:CNT0,问1.问0是由外部RC振荡器时钟和积累N脉冲溢出。问1是由OSC计时的0以固定频率(3.125kHz)递增。理想情况下,在测量过程中,CNT0会先溢出,冻结碳纳米管吗1,其内容可以通过I2C总线读取,然后用于计算外部RC振荡器的频率。如果问1溢出之前问0,则外部RC振荡器的频率太慢,可能会通过切换到一个较低值电阻而增加。

异步状态机用于跟踪哪个电阻正在使用在外部RC振荡器和激活/关闭适当的gpio用于驱动这个振荡器。如下面的图4所示,使用了五种状态,每种状态对应一个测量范围。每个状态激活对应于不同外部电阻的输出引脚。

触发器DFF7在进行有效度量时设置。这是由3位LUT决定的1,它监控CNT何时进行0溢出之前问1.DFF7的输出“Data ready”冻结计数器CNT0和问1以及设置引脚16向微控制器发出测量完成的信号。3-bit附近地区5监控时问1溢出之前问0把信号设为"范围缩小"这个信号被馈送到ASM以减小所选的范围/电阻。

图4。ASM状态图

没有人字拖DFF3.和DFF6, ASM不能直接由“Range down”信号触发,因为ASM是异步水平触发,而不是边缘触发。“量程下降”上的数字高电平将依次触发从一个量程到另一个量程的过渡,直到达到最低量程。例如,当量程4减小到量程3时,没有什么能阻止ASM继续减小量程,一直减小到量程0,因为“量程下降”信号仍然很高。与DFF3.和DFF6,“Range down”上的正边只触发从偶数范围到奇数范围的单个转换,反之亦然。没有连续的状态共享一个共同的过渡信号,因为奇数状态(DFF)只有一个信号3.的输出)和一个信号为偶数状态(DFF6的输出)。

以下是测量过程中发生的事件的顺序:

  • 负边缘是外部应用到引脚2,这暂时带来“nReset所有”信号低,“Reset测量”信号高,和“nReset测量”信号低。
  • 这将重置ASM, CNT0,问1, DFF7, DFF3., DFF6, OSC0.ASM以“Range 4”状态启动。
  • “准备好数据”的频率很低。
  • 在“数据就绪”低的情况下,2位LUT1打开外部RC振荡器。
  • 计数器开始递增。
  • 如果问0溢出之前问1
    • 来自3位LUT的正边缘1时钟DFF7,设置“数据准备”信号。
    • “数据准备好”信号冻结CNT0和问1并设置输出引脚16高来通知微控制器I2C总线上有数据可用。
    • 单片机可以读取CNT的内容1以及在引脚16设置后的任何时候ASM的当前状态。
  • 如果问1溢出之前问0
    • 来自3位LUT的正边缘5时钟DFF3.和DFF6,这导致ASM改变状态,减少测量范围。
    • ASM设置或重置“距离奇数”信号,并边缘检测边缘DET0瞬时激活信号“复位测量”,复位计数器CNT0和问1
  • 如果问1溢出之前问0, ASM处于“Range 0”状态:
    • 来自3位LUT的正边缘1时钟DFF7就好像进行了有效的测量,设置了“数据就绪”信号。
    • 在CNT的情况下0溢出之前问1,“数据准备好”信号冻结CNT0和问1并设置输出引脚16高来通知微控制器I2C总线上有数据可用。
    • 单片机可以读取CNT的内容1以及在引脚16设置后的任何时候ASM的当前状态。

设计方程

外部RC振荡器的频率由电阻和电容决定,但也由数字高/低阈值决定。如果在外部逆变器上使用施密特触发器,则频率可推导为:

ΔVcap=一个RC振荡器滴答时的净电压变化= 2 *数字高/低电压间隙

Δt= RC振荡器的周期

图5。外部RC振荡器,电容电流和电压指示

f钢筋混凝土RC振荡器频率

RextRC电阻值

Cext= RC电容值,被测电容值

V施密特,高=施密特触发数字高阈值

V施密特,低=施密特触发数字低阈值

V帽,avg=平均电容电压VDD/ 2

K=比例常数=

外部电容与CNT1计数值的关系为:

XCNT1=问1在一段时间内累积的计数值0+ 1

fCNT1=问1滴答频率= 3.124kHz

NCNT0=问0最大值(溢出/模值)+ 1

在任何给定范围内可测的最大电容为:

Cext,马克斯用外电阻R测量的最大电容ext

NCNT1=问1最大值(溢出值)+ 1

因为Cext,马克斯正比于NCNT1,更大的N值CNT1意味着可以测量更高的电容。然而,在较高的可测量电容值和较长的测量采集时间之间存在权衡。由于电路从五个电容范围的最低电容CNT开始1必须溢出四次才能达到最高测量范围,即可能的最长测量采集时间为:

Cext,马克斯与N成反比CNT0也就是最小化NCNT0将增加最大可测量电容。然而,RC振荡器频率的抖动意味着较小的滴答声组比较大的滴答声组具有更大的变异性百分比。

这是复杂的事实,在测量的开始,电容的电荷状态是未知的,使第一个tick的长度可变(尽管测量之间的时间越长,电容电压将更接近0V或VDD).总的来说,这意味着通过增加N来提高精度CNT0

最后,Cext,马克斯也受电容器最大充放电电流的限制。SLG46538M的输出引脚至少可以源41mA和sink至少14mA。因此,最高频率外置电阻的值不应低于5V/14mA = 360Ω。

表2给出了每个量程可测量的最大电容值。

表2:每个量程可测量的最大电容
VSchmitt max = 4.64, VSchmitt min = 2.00, K = 0.47, NCNT1 = 3125, NCNT0 = 9
测量时间= 1s/量程

范围

Rext

Cext,马克斯

0

470Ω

130μF

1

10 kΩ

6μF

2

100 kΩ

600年nf

3.

1米Ω

60 nf

4

10米Ω

6 nf

图6。自调式电容计测试结果

结果

使用万用表和GreenPAK5电路测量各种分立电容器。图6显示了CNT的图1内容与每个量程的测量电容。正如预期的那样,每个量程显示出碳纳米管之间的线性关系1值和测量的外部电容。

对于单片机来说,用这个电路测量电容就像读取碳纳米管的内容一样简单1(注册0xEE和0xEF)和ASM输出的状态(注册0xF5)通过I2C总线。给定ASM输出的状态,可以推导出测量范围,因为ASM输出激活连接到外部电阻的引脚。

一次是量程和CNT1值已知时,可使用图5所示的线性关系计算电容。

如果需要扩大测量范围,单片机可以改变NCNT0和NCNT1(CNT的最大值/溢出值0和问1通过写入CNT的寄存器0xC5到0xC60并为CNT注册0xC7到0xC81

结论

本应用笔记演示了如何配置GreenPAK5混合信号IC来构建自动测距电容计。这将释放一些微控制器的资源,包括几个GPIO引脚、一个计数器、一个计时器、计算周期,可能还有一些中断程序。它使电容测量简单到通过I2C总线读取值。

附录A

2比特LUT2属性
3-bit LUT1属性
3-bit LUT5属性