最近的项目告一段落了,不过有个有趣的现象可以研究一下:

在使用 OCP 的方式的时候,值在随机动
OCP 在电化学里一般指 Open Circuit Potential,开路电位,也常叫 开路电压 OCV。它测的是:在不对电极施加外部极化、不强制电流流动的情况下,工作电极 WE 相对于参考电极 RE 的自然电位。
如图所示,会出现一个比较有趣的现象,WE-RE 这个值会是随机值。
LHE3302 的理论测量性能(电化学类)

这是正常现象;没有接样品时,WE0 和 WE1 并不是两个“应该相等的电压点”,而是两个彼此独立的高阻浮空节点。
在 OCP 测量里,芯片只是通过 ADC MUX 去读
WE0-GND、WE1-GND、RE-GND,然后计算WE-RE;如果外部没有样品、没有电解液、没有参考电极、没有任何直流通路,那么 WE0、WE1 的电位本身就是不确定的。
数据手册里 WE0、WE1 都定义为工作电极输入端,LHE3302 的 FIFO 标签也把 WE0 和 WE1 分成两个独立监测通道:WE0 tag=0x5、WE1 tag=0x6。

真正的 OCP 是:
OCP0 = VWE0 - VRE OCP1 = VWE1 - VRE
但是这个公式隐含一个前提:WE 和 RE 之间存在一个实际的电化学体系。比如:WE0/WE1/RE 插在电解液里,在电极界面形成稳定电位 ,那后续ADC 只是高阻读取这个自然电位
如果现在“前端没有加任何样品”,那 WE0、WE1、RE 就只是悬空金属引脚;悬空节点的电压可能来自:输入漏电流,PCB 表面漏电,手靠近产生的电容耦合,SPI/DAC/ADC 数字噪声耦合,ADC 采样电容的电荷注入,上一次测试留下的电荷,WE0/WE1 两路内部模拟开关漏电差异。
所以 WE0 和 WE1 测出来不同,不但不奇怪,反而是高阻模拟输入浮空时最常见的现象。
如果 WE0、WE1 没有接到任何样品,也没有被电阻拉到某个参考点,那么它们没有确定电位,可以类比 MCU 的 ADC 输入脚:ADC 输入脚不接东西时,读数不是 0V,而是随机漂、慢慢爬、受手靠近影响。
LHE3302 的 WE0/WE1 在 OCP 模式下也是类似的高阻输入
即使芯片内部结构对称,实际硅片上也会有微小失配:
WE0 输入漏电 ≠ WE1 输入漏电 WE0 采样开关漏电 ≠ WE1 采样开关漏电 WE0 走线寄生电容 ≠ WE1 走线寄生电容 WE0 周围 PCB 污染 ≠ WE1 周围 PCB 污染
对高阻浮空节点来说,pA 级漏电就能把节点电压拉到不同位置。

TIA 说到底也是一个 OP,那输入级就是高阻的
比如一个浮空节点等效只有几十 pF 电容,1 pA 漏电在 1 秒内造成的电压变化约为:
如果 ,,1 秒就是:
所以你看到几十 mV、几百 mV 的差异,在浮空输入上完全可能;也就是可以解决为什么数据的趋势是往上走的,因为电荷在积分。

成本限制是接入了一个 MUX
在MUX 后面接 PGA 和 ADC。ADC 采样时内部会有采样电容。当前一个通道测完后,采样电容上残留的电荷会影响下一个高阻通道;如果通道源阻抗很低,这个影响很快被真实信号源吸收;但如果 WE0/WE1 是完全浮空的,这个电荷就会把它们拉到不同电压。
所以多通道 OCP 同时测:WE0 → WE1 → RE → CE;在无样品、无直流通路时,每个点都可能被采样过程本身扰动。
如果测 OCP 时打开了 TIA0/TIA1,或者写了 DAC1/DAC2,那么 WE0/WE1 可能被内部 TIA 偏置环路强行拉向 DAC 设置值;数据手册说明 DAC1 对应 WE0 偏置,DAC2 对应 WE1 偏置;这两个 DAC 本来就是用来控制工作电极偏置的。
现象 | 是否正常 | 解释 |
|---|---|---|
WE0、WE1 悬空时电压不同 | 正常 | 高阻浮空节点没有定义电位 |
WE0、WE1 悬空时电压慢慢漂 | 正常 | 漏电、电荷积累、采样扰动 |
手靠近后电压变化 | 正常 | 人体电容耦合 |
重新上电后初值不同 | 正常 | 初始电荷和内部状态不同 |
短接 WE0、WE1 后仍差很多 | 不正常 | 可能配置、读数、MUX、换算或硬件问题 |
WE0、WE1 分别通过相同电阻接同一参考点后仍差很多 | 需要排查 | 可能 ADC 通道、焊接、寄存器配置、SPI 解析问题 |
不要用“空接”判断通道一致性,应该给它们一个确定的外部电位。
把下面三个点短在一起:WE0,WE1,RE
然后配置 OCP 监测:
SYS_CTL = 0xF0 AFE_CFG = 0x00 ADC_MUX_0 = 0x70 // WE0 + WE1 + RE ADC_MUX_1 = 0x00 CONVERT = 0x01 或 0x03
理论结果应该是:
VWE0 ≈ VWE1 ≈ VRE OCP0 = VWE0 - VRE ≈ 0 OCP1 = VWE1 - VRE ≈ 0
比如用两个相同电阻:
WE0 → 1MΩ 或 10MΩ → REF/2 或某个稳定电压 WE1 → 1MΩ 或 10MΩ → 同一个稳定电压 RE → 1MΩ 或 10MΩ → 同一个稳定电压
然后读 WE0、WE1、RE,这个测试比直接短接更接近高阻 OCP 读数,但又不会让输入完全浮空。
可以先不用真实样品,而是做一个简单模拟:RE 接一个稳定中点电压,例如 0.8V;WE0 接 0.9V;WE1 接 0.9V,CE 悬空或接同一参考点,然后检查 ADC 读数是否符合外部施加的电压。
没有样品时,WE0 和 WE1 的 OCP 电压不同,最主要原因是它们是两个独立的高阻浮空输入,外部没有任何东西定义它们的电位。OCP 不是“芯片自己产生的电压”,而是外部电化学体系自然形成的 WE-RE 电位;没有样品时,读到的只是浮空电压、漏电和采样扰动的结果。