我想咨询下,我的eval-ad5940bioz开发板没有焊接外部参考电阻,但是我使用AD5940_BIA例程时,我发现AppBIAInit调用的AppBIASeqMeasureGen函数里面,配置了使用外部参考电阻,但是开发板仍然能正确的测量出被测阻值,这是为什么?
若是有检测到外部参考电阻没有就转向内部参考电阻的硬件或软件机制,请告诉我,我想做一组外部参考电阻和内部参考电阻明确分开的实验案例,来熟悉该开发板。
万分感谢
您好 @竹寺128 ,
欢迎来到 DigiKey 技术论坛,感谢您的咨询。
你的现象其实很正常,而且从 AD5940 的架构来看,大概率不是“检测不到外部参考电阻后自动切换到内部参考电阻”,而是你对例程中的“参考电阻”概念产生了混淆。
先说结论
在 AD5940 的 BIA 测量中,存在两类不同的“电阻”:
-
RTIA(TIA反馈电阻)
- AD5940 芯片内部集成
- 用于电流/电压转换
- 可以通过寄存器选择不同阻值
- BIA测量必须使用
-
RCAL(Calibration Resistor,校准电阻)
- 外部精密参考电阻
- 接在 RCAL0/RCAL1 引脚
- 用于阻抗测量校准
- 不是必须每次测量都实际参与
AD5940 官方文档明确说明:
RCAL 是连接在 RCAL0 和 RCAL1 之间的外部精密电阻,用于 HSTIA 的校准以及阻抗测量的比例校准。 [wiki.analog.com], [analog.com]
因此:
如果你板上没有焊接 RCAL,而程序仍然能测量出阻值,并不意味着它自动切换到了内部参考电阻。
更大的可能是:
- 实际测量过程根本没走 RCAL 通路
- 或者使用的是软件里预设的 RTIA 标称值
- 或者板子上其实已经存在 RCAL
是否存在“自动切换内部参考电阻”机制?
我查阅了 AD5940 Datasheet、BIA 示例说明以及 HSTIA Calibration 文档,没有发现任何描述:
- 检测 RCAL 是否存在
- 自动从外部 RCAL 切换到内部 RCAL
这样的硬件机制。 [wiki.analog.com], [analog.com]
因为:
AD5940 本身根本没有内部 RCAL。
芯片内部有:
- 内部 RTIA
- 内部 RLOAD
- 内部参考源
但没有内部 RCAL。 [analog.com], [analog.com]
所以如果你看到:
fRcal = 10000.0f
这只是告诉软件:
“假设外部接了10k精密电阻”
并不代表芯片内部真的有个10k电阻。
最简单的验证方法
在 AD5940_HSRtiaCal() 返回后打印:
printf(“RTIA=%f\n”, AppBIACfg.RtiaCurrValue);
然后:
- 保持现状运行
- 断开你认为存在的 RCAL
- 再运行
如果:
- 校准结果变成异常值
- 或根本校准失败
说明确实依赖外部 RCAL。
如果:
- 数值完全不变
说明例程没有真正执行 RCAL校准,而是直接用了 RTIA 标称值。
这通常是定位问题最快的办法。