主题中讨论的其他器件: ADS124S08、 ADS1220、 ADS114S06
我正在寻找通过 PT100/PT1000等3线传感器或 NTC /PTC 等2线传感器测量温度的示例代码。 我是 ADS1120的初学者、非常感谢您在这方面提供的任何帮助。
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.
您好!
器件产品页面 ADS1120上提供了所有支持材料、所有 TI 器件都是如此、任何补充文档或 EVM 都将列出。
在 软件方面、 产品页面的设计和开发部分提供了适用于此系列器件的示例代码。
此致
Cynthia
您好 Syed、
我建议查看 ADS1120数据表的应用部分。 我还建议查看 《RTD 测量基本指南》。 本文档是一个非常有用的指南、用于说明测量值。 我们目前正在为 ADS1x20系列器件的温度测量工作特定示例代码、但代码尚未最终确定、很遗憾、我无法提供何时可用的时间表。 我们有一个温度传感库 、您可能会发现它很有用、因为它显示了测量方法的各种代码示例、但代码是针对 ADS124S08器件的。 但是、代码可根据您的使用进行调整。
ADS1220是24位版本、提供了基本的示例代码。 该示例仅相对于 ADS1120的转换结果的长度有所不同。 所有通信命令和寄存器设置都是相同的。
此致、
Bob B
尊敬的 Bob:
感谢您的回答。 实际上、我们在器件中使用了 ADS114S06、现在我们在器件的较小型号中使用了 ADS112。 我目前正在尝试测量2线 RTD。 我使用400欧姆的电阻代替 RTD、固定 Rref = 4020欧姆。 RTD 连接在 AIN1和 AIN2之间。 IDAC1设置为500uA、AIN0被选为 IDAC1多路复用器。 目前、我已关闭 IDAC2。 增益为1。 SPS 为正常值20。 PGA 启用、内部温度+烧毁电流禁用。
进行了比较。 我复位 ADC、然后写入配置0x43 0x30 0x00 0x55 0x20的4个字节。 读回它、它是相同的。 我发送 START 命令并等待60ms、然后我发送读取数据命令并读回0xEF 0x95、我不确定我读取的内容没有任何意义。 请帮助我理解我的错误。这不仅是不准确的、而且完全是错误的。
PS: 对于 ADS114、我们也不是有意使用 IDAC2。 我们首先在 AIN1和 AIN2之间进行测量、然后在 AIN2和 ANI3之间进行测量、并减去这两个测量值以消除引线的影响。 因为我们不希望依赖2个电流源的匹配精度。 而2线测量的精度已知会有点不准确、因为它仅在 AIN1和 AIN2之间进行测量。
期待您的回应
Bob、您好、感谢您的回答。 我只将 REFP0连接到接地侧的 Rref、而 REFN0连接到电流从其进入的 Rref。 (显示的内容是数据表第52页)。 我想这会导致-ve 电压和负代码。
另一个问题是、如果我使用的配置与上一条消息中描述的相同、但使用 AIN1和 AIN3。 我将常量0xFF 0x61视为代码、而不管我连接了什么 RTD 电阻。 如果我将 PSW 设置为自动、我只会不断地读取0x7F 0xFF。 您是否对正在发生的情况有任何想法
这样可以消除混乱。
我将测量2线和3线 RTD。
用于2线。 我将进行一次测量。 介于 AIN1和 AIN3之间。 IDAC1通过 AIN0。
用于3线。 我将进行2次测量。 i)在 AIN1和 AIN2之间 ii)在 AIN2和 AIN3之间。 然后从第一个值中减去第二个值。 以获得准确的值。
在这两种情况下、我将仅通过 AIN0使用 IDAC1。
PS:在使用 ADS114S 时、上述策略(以及冷端温度补偿)对我们来说效果良好。 因此、我希望使用 ADS1120进行类似的测量。
您好 Syed、
我不确定为什么要打开 PSW 位、因为这将打开到 AVSS (GND)的内部连接。 这将意味着电流将流经滤波器电阻并与基准电阻器并联接地。 这将显著降低基准电压。 因此、可能会对 AIN3和低侧开关的工作方式产生一些误解。
至于在2线制模式下从 AIN2到 AIN3的测量、当这短接时、您应该会看到接近0的值。 返回的代码显示为大约97个代码的负偏移。 您可以使用 AINP 和 AINN 连接到(AVDD-AVSS)/2的多路复用器设置来确定 ADC 偏移。 进行几次转换并求平均值、然后从后续读数中减去代码值。
您针对预期测量所述的方法应适用于 ADS1120。 确保 REP0未连接到 GND。
此致、
Bob B
尊敬的 Bob:
感谢您提供有关硬件的提示。 复活节后、我能够校正我的硬件。 遗憾的是、REFP0和 REFN0被切换、所以我对它们进行了校正。
使用0x30 0x00 0x54 0x20。 我能够正确测量 AIN1和 AIN2之间的电阻。 (与不同的 MUX 配置类似、我在 AIN1和 AIN3以及 AIN2和 AIN3之间读取)。
现在、我在检测短路(SC)和断线(WB)时遇到了一些问题。
我尝试检测 AIN1和 AIN2之间的 SC 和 WB
断线:
电压和导通烧毁电流源的方法。 我能够检测 AIN1和 AIN2之间的 WB。
Config:0x31 0x81 0x14 0x20 ,我测量了0x7F 0xFF。 (断线正确)
您可以在配置中注意到、激励电流仍处于启用状态。 如果我禁用它、那么我会读取以下内容
Config:0x31 0x81 0x10 0x00 ,我测量了0x3D 0xC6 (wierd 值)
短路 :
我无法使用上述任何配置检测 AIN1和 AIN2之间的短路。 (AIN2和 AIN3也按照我的原理图的要求短路)
Config:0x31 0x81 0x14 0x20 ,我测量了0x0D 0x55。
禁用 激励电流、然后我读出以下内容
Config:0x31 0x81 0x10 0x00 ,我测量值为0x07 0xCF
在这方面、请帮助我正确检测传感器故障、因为第30页的数据表中没有太多内容。 我的想法已经不多了。
您好 Syed、
不久前、我的一位同事编写 了一份有关 RTD 断线检测 的应用手册、您可能会发现该手册很有用。 查看应用手册、了解它是否有助于您完成该过程。 如果您在查看应用手册后仍有疑问、请告诉我。
此致、
Bob B
您好 Syed、
温度传感器的转换值是一个左对齐的14位值。 如果取0x0A20值并右移2、则得到的值为十进制648的0x0288。 系数为1代码等于0.03125°C 或乘以648即可得到20.25°C
实际上、我不确定您打算如何使用该值、因为我记得您正在进行比例式测量的原理图。 您计划如何使用内部温度传感器进行补偿? 由于相对于 LSB 的值、误差很小、因此您极不可能需要使用16位器件以这种方式进行补偿。
如果要测量热电偶(TC)而不是 RTD 或热敏电阻、则需要补偿 TC 连接点的冷端。 ADS1120数据表的9.2.1节介绍了该过程、其他信息可在 《热电偶测量基本指南》中找到。 在这里、您将获取内部温度读数并转换为用于冷端电压的 TC 类型的电压值。 然后、您将 TC 电压与为冷端计算的电压相加、然后将该电压和转换回温度。
此致、
Bob B
尊敬的 Bob:
再次感谢 您提供了另一个很好的描述性答案。 我要做的是、在测量3线 Pt100或 Pt1000时尝试实现与 ADS114S 相同的精度。 对于 ADS114S,我们观察到在25C -40C (-0.086%)和+60C (0.034%)下比例测量(相同的 RTD 和 Rref)存在差异。 根据电气特性中写入的值、我们有一种补偿机制、需要我们计算 ADC 的温度、根据 ADC 的温度、我们计算了最终从主要测量电阻中添加或减去的小电阻。
它在 ADS112S 中听起来是否可行、或者您是否对环境温度补偿有任何其他想法?