主题中讨论的其他器件: FDC2214
您好、我们已 按照 FDC2214EVM 原理图使用 FDC2214设计了电容传感器板。 在测试过程中、我们发现从 FDC 读取的数据是死区。 下图显示了我们观察到的情况。
相同的三角形信号同时输入到 CH2和 CH4、图直接从 FDC 的 CH2和 CH4的数据中提取。 我们预计 CH4绘图应与呈三角形的 CH2相同。 似乎在 CH4中有一个死区。
什么原因可能导致这种现象? 我们如何纠正这一问题、或者如何解决这一问题?
谢谢!
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好、我们已 按照 FDC2214EVM 原理图使用 FDC2214设计了电容传感器板。 在测试过程中、我们发现从 FDC 读取的数据是死区。 下图显示了我们观察到的情况。
相同的三角形信号同时输入到 CH2和 CH4、图直接从 FDC 的 CH2和 CH4的数据中提取。 我们预计 CH4绘图应与呈三角形的 CH2相同。 似乎在 CH4中有一个死区。
什么原因可能导致这种现象? 我们如何纠正这一问题、或者如何解决这一问题?
谢谢!
John:
谢谢回答我。 对您的问题的回答:
我们的测试说明:
static const reg_val_pair_t fdc_config_multi_channel[] = { [0].reg = FDC_CONFIG_REG, [0].val = 0x3E01, // chn|slp|lp|CLKIN|intb|lowc, F_clk=40MHz [1].reg = RCOUNT_CH0_REG, [1].val = RCOUNT_MULTI_CHANNEL, //0x186A, Tc = (0x186A * 16 + 4)/F_ref = (0x186a*16+4)/40MHz=2.5ms [2].reg = RCOUNT_CH1_REG, [2].val = RCOUNT_MULTI_CHANNEL, [3].reg = RCOUNT_CH2_REG, [3].val = RCOUNT_MULTI_CHANNEL, [4].reg = RCOUNT_CH3_REG, [4].val = RCOUNT_MULTI_CHANNEL, [5].reg = SETTLECOUNT_CH0_REG, [5].val = 0x0060, // Ts0 = (0x60*16)/F_ref = 0x600/40MHz = 38.4us [6].reg = SETTLECOUNT_CH1_REG, [6].val = 0x0060, [7].reg = SETTLECOUNT_CH2_REG, [7].val = 0x0060, [8].reg = SETTLECOUNT_CH3_REG, [8].val = 0x0060, [9].reg = CLOCK_DIV_CH0_REG, [9].val = 0x2001, // fin_sel=b10, fref_div=1, F_ref=F_clk/fref_div=40MHz [10].reg = CLOCK_DIV_CH1_REG, [10].val = 0x2001, [11].reg = CLOCK_DIV_CH2_REG, [11].val = 0x2001, [12].reg = CLOCK_DIV_CH3_REG, [12].val = 0x2001, [13].reg = FDC_MUX_CONFIG, [13].val = 0xC20D, // auto-scan=1, RR_Squ=b10:chan[0,1,2,3], deglitch=b101:(10MHz) [14].reg = DRIVE_CURRENT_CH0_REG, [14].val = 0x5400, //Idrive=b01010: 0.069mA, so sensor amplitude: 1.2V~1.8v [15].reg = DRIVE_CURRENT_CH1_REG, [15].val = 0x5400, [16].reg = DRIVE_CURRENT_CH2_REG, [16].val = 0x5400, [17].reg = DRIVE_CURRENT_CH3_REG, [17].val = 0x5400, [18].reg = FDC_ERROR_CONFIG_REG, [18].val = 0x0001, //DRDY_2INT };
Yanbing,
电容式传感器应与板载电感器(以及任何电容器 和寄生效应)相互作用 、以形成 LC 谐振电路、这是振荡器的基础。
如果一切运行正常、一个输入 引脚上的波形应该看起来像一个从接地变为1.2V 至1.8V 之间的峰值电压的半正弦波。
另一个引脚也应该看起来像半正弦波、但它会从另一个引脚位移半个周期。
差分方式来看、输入波形应该看起来像是一个经过0V 的完整正弦波、峰-峰值幅度 在2.4V 和3.6V 之间。
输入波形的频率限制为10kHz 到10MHz。
这是你看到与你的设备在死区内外?
此致、
约翰
John -您好、我也在 Yanbing 参与同样的 FDC2214计划。 想我跳进来提供更广阔的画面和更多的细节。 抱歉,此写内容的扩展长度。
我们正在使用两个 FDC2214来测量来自8路输入电容式传感器的电容值。 该传感器实时测量与健康相关的波形(脉搏、血压、心率等)。 使用 FDC2214的产品在之前的版本中已经验证了基本的测量概念。 换句话说、我们已经知道 FDC2214能够处理这些电容波形、而不会出现混叠或保真度损失。 电容传感器信号(连接器位于左侧)以接地为基准。 我们使用40 MHz 外部时钟进行频率区分。 槽电感为18uH。 原理图的相关部分如下所示。 这是相当标准的。
我们目前正在对该产品进行新的修订。 由于很难利用电容式传感器获得可重复的测量、我们一直在使用双变容式电路来将传感器的电容作为时间函数进行仿真。 这样可以实现更简单、一致的测量。 这是该电路的一个堆叠原理图。
最顶部的变容可设置此传感器仿真器的"平均"电容。 我们可以使用直流电源来调整该平均电容。 底部变容二极管通过直流+ 1Hz 三角波形进行调制。 此三角波模仿来自患者的实时遥测信号、使我们能够测量作为时间函数的电容变化。
一个输入进入一个 FDC 通道时、我们可以看到下面显示的正三角波形(CH3)。 [此波形由我们的应用程序提供。 它源自 FDC 的 DATAx 输出。]
但是、当我们将此设置从一个通道扩展到两个通道时(换句话说、我们将单独的电容发生器电路连接到两个 FDC 通道)、我们将获得以下输出。
通道3 (CH3)仍然是原始状态、但 CH4现在在信号中点具有一个死区。 请注意、我们可以通过改变发电机电路中最顶部变容器的平均电容来改变这个死区的值。 这个事实告诉了我一些东西-但我不知道什么。
信道选择也不必按顺序进行、即可显示这种好-坏行为。 此处、CH1是理想状态、而 CH4显示死区行为。 (CH2和 CH3没有传感器输入)。
我们对此行为感到困惑、只是需要一些帮助来解决问题。 我们似乎在使用一个通道时得到了这一点。 多个通道的通信会给我们带来问题。 有什么建议吗?
谢谢 Yanbing。
忽略第一个问题。 这是不可能的。
下图来自产品说明书。 对于单通道模式、下面的迹线显示了一个单一启动或者激活时间、随后是连续转换。 要求苛刻。 这种情况下的输出看起来不错。
上面的迹线显示了两个通道之间的定序、其中每个通道具有一个激活时间、然后是转换和一个开关延迟。
振荡器启动后、激活时间允许传感器稳定:
(6) TSx =(CHx_SETTLECOUNT × 16)/frefx
由于该问题是针对多通道场景而不是单通道出现的、因此激活时间似乎值得一试。
此致、
约翰
John:
可能我们之前的说明不准确、我们也观察到了单通道情况下的死区。 FDC 编程后、总是按顺序收集4个通道、并重复 in100Hz 频率。 即使只有一个通道输入了变容调制信号、我们也可以观察到死区。
谢谢你们的时间问题。 在我们的应用中、有2个 ADC 收集8个通道、因此意味着每个通道时间~2.5ms。 转换时间的寄存器 RCOUNT_CHX = 6250、激活时间的寄存器 SETTLECOUNT_CHX = 96。
John -很抱歉、我对在单通道中使用显示死区的说法不正确。 Yanbing 是正确的-它也发生在单通道模式。
我也很抱歉我们提供的信息是零敲碎打的。 我们正在工作台上实时收集信息、而某天看似可靠线索的信息在某天过后似乎是无关的。 这是我昨天讲过的。
Yanbing,
感谢您提供附加信息。
一个单个通道是始终显示死区、还是有 特殊条件?
有 无生成的死区时、INxA 和 INxB 上的传感器信号看起来都是什么样的?
这两个引脚应该看起来像最小接近 GND 的半正弦波、峰值在1.2V 和1.8V 之间、并且 它们的时序应该被一个半周期取代。 两个引脚之间的差分电压应看起来像是围绕 GND 的完整正弦波。
此致、
约翰
John:
无论是单个通道还是多个通道、始终可以观察到死区。 似乎没有特殊条件。
Mark 描述了一种观察到的现象、在相同的测试设置下、当死区出现时、在同一器件的差分通道之间以及不同器件之间、死区处的电容值始终相同。 在不同的测试设置上(由于 Mark 位于亚特兰大、我目前位于达拉斯)、可以观察到相同的现象、即死区的电容值在不同的通道和不同的器件之间是相同的。 但我观察到的电容值与 Mark 的电容值不同。
至于 INxA 和 INxB 的传感器信号、它们看起来和描述的一样。 这里是示波器的两张图、其中捕获了 FDC2214EVM 的 IN0A 和 IN0B。
Yanbing,
感谢您的更新。 没有什么比这更好的了。 缩小信号看起来可能处于 最小振幅、但 可能 不是 问题。
如果假设 FDC 和输入电路(例如变容二极管)按预期工作、则死区意味着传感器频率呈非线性变化、潜在的根本原因是基于变容二极管的输入电路呈非线性变化。
为此、是否可以在 单个变容二极管扫描中的不同点对传感器信号进行监测/采样、并比较死区是否出现的两种情况?
主要目标是查看死区是否由 传感器波形振幅和/或频率的变化引起。
为了说明这一点、从该主题前面发布的图片中提取了以下图像。
没有死区的第一个图像显示了一个三角形叠加在无死区的扫描上;扫描显示了无明显死区的相对线性变化。
第二个图像是叠加在扫描上显示死区的相同三角形。 感兴趣区域将 位于扫描和三角相交的中点任一侧。
我们的想法是比较传感器波形在导致和远离交叉中点的多个点的振幅和频率。
此致、
约翰
John:
我们往往认为死区不是由变容器引起的,因为死区首先是在真实的传感器应用中观察到的(没有变容器)。 为了调试死区、我们在实验中创建了变 容电路、以扫描更宽范围的电容、从而搜索死区。 借助变容二极管扫描电路、我们使用 TI 的 FDC2214EVM 板找到死区。 我们希望您能帮助提供有关 FDC 的见解、以帮助寻找根本原因或提供可能的解决方案。
综上所述、我们仍在尝试在一直到输入引脚 INxA 或 INxB 的过程中观察多个点处的波形、特别是在死区附近。 但这似乎非常困难、因为每个观察探针都会向输入通道添加一些电容、从而影响总平均电容并超出死区范围。 我们将继续。
谢谢!