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:有时仅设置配置寄存器

Guru**** 2538930 points
Other Parts Discussed in Thread: ADS1120

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/736793/ads1120-configuration-registers-being-set-only-sometimes

器件型号:ADS1120

我有一个应用、其中使用 ADS1120的方式如下。 压阻式电桥由0.5mA IDAC 源激励、并在 AIN0和 AIN1之间进行差分读取。 在 AIN2和 AIN3上读取两个微调电容器。

SPI 线路由一个 STM32L011驱动。

设置配置寄存器时遇到问题。 无论我向寄存器写入什么内容、读回值都是0xFF 或0x00。

此外、如果我尝试发出 RDATA 命令、如以下 MOSI 和 SCK 捕捉所示

我读取的接下来的两个字节始终为0x7F、0xFF、如以下 MISO 和 SCK 捕捉中所示

我可以看到、MOSI、MISO 和 SCK 上的 SPI 线路转换非常陡峭、没有太多的过冲或下冲。 此外、ADS1120似乎正在计时、因为第一个字节始终为0x7F。

我已验证 AVDD 或 DVDD 引脚上没有突降或欠压、并且两个引脚的 GND 连接到接地层的阻抗均小于0.1欧姆。

我已经用大脑来思考这种情况的原因、因为芯片在我上一次的设计迭代中工作得非常完美。 在迭代之间发生的所有变化是、四个47欧姆电阻器被移至底板、过孔被移至靠近微控制器和 ADS1120上相应引脚的任一侧的顶部平面。

如果有人能给我提供任何建议,我将不胜感激。

提前感谢、

高拉夫。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Gaurav、

    欢迎来到我们的 e2e 论坛! 您的屏幕截图似乎没有正确完成。 您可以再次发送它们吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我已使用屏幕截图的工作链接更新了该帖子。 很抱歉造成混淆。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Gaurav、

    有几个不清楚的地方、主要是 WREG 和 RREG 命令。 确保 CS 具有良好的连接、并在整个通信事务期间保持低电平。 您似乎有一个4通道示波器、您能否在同一示波器图上使用 SCLK、MISO、MOSI 和 CS 发送 WREG 和 RREG 命令以及数据的快照(要清除、我的意思是在一个图上使用 WREG、在另一个图上使用 RREG)?

    您能否向我发送您认为正在写入 ADS1120的配置寄存器设置? 此外、RREG 和 WREG 命令是写入单个寄存器(一次写入一个)还是作为寄存器块写入? 请将您要写入的值发送到器件。

    在发出 RDATA 之前、您是否发送了 START/SYNC 命令、然后等待转换完成?

    您使用什么路径进行传感器激励? 电流是否来自 REFP0? 如果是、您是否测量了输出电压? 您是否确保有完整的接地路径? 您使用的是什么参考? 如果您尝试使用 REF0作为比例测量、则 REFN0必须接地。 还请记住、存在 IDAC 合规电压、 因此、从 IDAC 输出通过传感器接地的压降必须小于合规电压(AVDD-0.9V)、因为电流源无法一直驱动到电源轨并在所选设置下提供恒定电流。

    此致、
    Bob B
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Bob:

    很抱歉、我报告的详细信息不完整。

    以下是配置过程伪代码

    1. 将 CS 驱动为低电平
    2. 延迟1ms
    3. 写入1个字节- 0x06 (复位)
    4. 延迟1ms
    5. 写入5个字节-
      1. 0x43 -从寄存器0开始的 WREG 4字节
      2. 0x0A - AIN0和 AIN1差分输入-增益32 - PGA 启用
      3. 0x04–连续转换模式
      4. 0x05 - IDAC 500 uA
      5. 0xc0 - IDAC1路由到 REFN0
    6. 延迟1ms
    7. 写入1个字节- 0x23 (从寄存器0开始读取4个字节)
    8. 延迟1ms
    9. 读取4个字节
    10. 延迟1ms
    11. 写入1个字节- 0x08 (开始)
    12. 延迟1ms
    13. 将 CS 驱动为高电平

    下面是我的环路的伪代码

    1. 将 CS 驱动为低电平
    2. 延迟1ms
    3. 写入1个字节- 0x10 (RDATA)
    4. 延迟1ms
    5. 读取2个字节
    6. 延迟1ms
    7. 将 CS 驱动为高电平

    我已检查 CS 连接良好、并在整个交易过程中保持低电平。 虽然我有一个4通道示波器、但遗憾的是、我忽略了在 PCB 上添加测试点、并且一次只能在两个引脚上可靠地固定探头。 但是、我一次依次探测了两个 CS 和 SCK、SCK 和 MISO、SCK 和 MOSI、所有转换看起来干净而锐利、没有振铃。

    我可以尝试将细线焊接到引脚上、并设置探针以同时捕获所有4个通道、如果您认为这有助于在我上班的周一早上进行故障排除。

    下面是压阻式传感器的连接方式。

                REFN0 (IDAC1 500 uA)
                   |
                    /\
                R R     
               /       \
         AIN0 --          AIN1
               \       /
                R R     
                  \/   
                   |
                 GND

    电桥输入电阻为5-6千欧、AVDD 为5V、因此电桥上的2.5-3V 压降完全处于4.1V 限制范围内。 对于上一版电路板使用的同一传感器、我还使用 Fluke 校准器和 IDAC 功能在预期精度内对其进行了测试。
    电桥的满量程输出为~30mV。

    这里的问题是、寄存器回读会在所有4个字节上提供0xff、并用于返回上一个电路板修订版上的预期值。 当前不起作用的版本只有两个更改

    1. IDAC1输出之前是 AIN3、现在是 REFN0
    2. 4x47欧姆电阻器过去与微控制器和 ADS1120位于同一侧、现在位于底部。

    此致、
    高拉夫  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Gaurav、

    似乎您的过程中没有任何不正确的内容会导致问题。 我建议您在 WREG 和 RREG 命令之间切换 CS。

    如果寄存器被正确写入、那么如果你每50ms 探测一次 DRDY 引脚、你应该会看到连续转换。 您还应该看到从 REFN0到接地的压降。

    发出 RDATA 命令时、请确保在尝试读取结果之前已留出足够的时间完成转换。

    此致、
    Bob B
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Bob:

    正确的说法是、如果寄存器被正确写入、那么您应该会看到每50ms 进行一次连续转换。 我在之前的工作板修订版中已经验证过这一点。
    在这种情况下、很明显、IC 不会响应 SPI 通信来设置寄存器。

    对于在发出 RDATA 后不等待的情况、我可以使用数据表第37页中所述的略微过时的转换结果。


    此 IC 的正确功能是否与布局高度相关? 如果我共享了上一个工作版本和当前不工作版本的信号层屏幕截图、是否有助于进行故障排除?

    或者、此 IC 在手动组装过程中是否很容易受到损坏、且加热配置不正确或 ESD 安全?
    我的上一个工作版本都是在自动取放后组装在回流炉中、而这一非工作版本是手动放置并使用热气返修工具进行焊接的。

    这两点是我可以推测的唯一原因、尽管 SCK、CS 和 MOSI 引脚上具有良好的电源连接和干净的 SPI 转换、但 IC 仍然无法工作。

    此致、
    高拉夫。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Gaurav、

    在手动编译过程中、器件始终可能会损坏、但我认为这不是问题所在。 您可以通过在监控 DRDY 的同时为器件加电来检查器件是否正常运行。 处于正常启动(或上电)模式的 ADS1120将接受一次转换并进入低功耗状态。 转换完成后、DRDY 将从高电平状态变为低电平状态。 在尝试发送任何命令之前,请验证是否正在执行此操作。

    在再次查看示波器截图时、我看到在发布 SCLK 之前、SCLK 行上似乎存在"浮动"条件。 这是微控制器的上电吗? 首次上电时可能会出现计时问题。 在尝试与 ADS1120通信之前、请确保 AVDD 和 DVDD 均已完全通电并处于标称电压、然后在发送复位命令之前等待大约1ms。 还可以构建与 CS 的每个通信帧。 如果这些命令存在时序问题、当器件未准备好进行通信或之前的通信中出现错误时、切换 CS 将重置 ADS1120 SPI 通信。

    此致、
    Bob B