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.

[参考译文] ADS1216:MISO 线路上的低输出电压

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1179958/ads1216-low-output-voltage-on-miso-line

器件型号:ADS1216

大家好、

我提出了一个新设计、该设计在同一 SPI 总线上使用两个 ADS1216 ADC 和一个 MAX7301 (GPIO 扩展器)。 我可以正常启动 GPIO 扩展器、但两个 ADS1216芯片有一些问题。 目前最大的问题是、这两个芯片的 MISO 上的输出电压电平大约为800mV、而不是 DVDD (3.3V)。 以下是我尝试解决问题的一些步骤:

  • 已检查电源(模拟= 5V、数字= 3.3V、VREF = 2.5V)
  • 向 MISO 线路添加了上拉电阻器(100K 和10K)
  • 已验证所有模拟输入均未高于模拟电源电压或低于芯片接地
  • 已验证主器件是否未尝试驱动 DRDY 引脚
  • 已验证主器件是否正确控制 CS
  • 将总线速度增加至5MHz 并尝试低至1MHz (来自数据表限制)
  • 已验证我是否使用示波器探头从晶体中看到~5MHz 信号(在~5MHz 时看到500mV 正弦波)
  • 搜索此论坛以查找类似问题;-)

下面是一条示波器迹线、显示了弱 MISO 输出(MISO 为绿色、MOSI 为红色、时钟为蓝色)。 请注意低 MISO 电压(预期为3.3V!)。

我认为 MISO 布线本身没有问题、因为我能够在上面提到的同一总线上使用不同的 SPI 器件。 确实、我验证了该线路到接地端的电阻是否没有短路或非常低等 从 MISO 到接地、万用表的读数约为500K。

下面是一个原理图:

让我知道我是否接错了芯片、或者是否还有其他问题需要检查。 另请注意、在微控制器侧、该 ADC 的驱动器设置为使用 SPI 模式3。 我认为最符合数据表中给出的时序图。

谢谢大家、请注意、

Ryan

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

    您好、Ryan、

    欢迎来到 E2E 论坛!  我在配置中看到的唯一问题是 DYSNC 引脚应被拉高而不是悬空。  我认为这不是您看到的问题、但该引脚不悬空很重要。

    使用示波器检查 DRDY 引脚、以查看其是否完全变为高电平。  您应该会看到该引脚以默认数据输出速率脉冲。  另请检查您是否无意中将 CS 保持在另一个引脚上、而该引脚可能存在输出驱动器争用问题。

    您还应尝试交换示波器探头、以验证探头是否存在问题。

    此致、

    Bob B

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

    尊敬的 Bob:

    感谢您花时间在这里为我提供帮助! 我可以确认、在不将 DSYNC 连接到3.3V 的情况下、我在 DRDY 引脚上看不到脉冲。 用一根小线将 DSYNC 连接到3.3V 后、我在 DRDY 中看到的脉冲对应于相应寄存器中的默认值。 脉冲确实会完全变为高电平。

    我检查了其他 CS 引脚、它们按预期保持高电平。

    最后、我尝试交换示波器探针、但结果没有变化。 ADS1216的 MISO 输出仍然只有800mV...

    如果你想尝试其他的东西,我都是耳朵! 请注意、

    Ryan

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

    您好、Ryan、

    从示波器屏幕截图中可以看出、您正在尝试从寄存器0到寄存器15读取 RREG (读取寄存器)块。  即使 ADC 的输出在指示的各个位置显示为完全高电平、这些值也不是预期的默认值。  因此、您应该检查电路板布局、以了解是否存在与其他数字信号的任何可能串扰。

    我没有看到用于通信的 CS 信号、但您应该在整个通信事务中验证 CS 信号是否保持低电平。  因此、当请求读取寄存器时、CS 应在 SCLK 变为低电平之前变为低电平、然后保持低电平、直到发送/接收到命令和数据。  如果 CS 切换或变为高电平、通信将被取消。

    此致、

    Bob B  

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

    Bob、您好!

    再次感谢您的回复! 我在对问题作进一步思考后,也注意到了与你相同的事情。 我们的固件工程师致力于纠正 CS 的行为、并确保其在整个事务过程中保持低电平、同时确保在命令和数据时钟输出之间尊重适当的延时时间。

    当时我昨天晚上发现 MISO 线路上的低电压原因是总线上的另一个芯片、即我在原文章中提到的 MAX7301的不良行为。 当 CS 为高电平时、该芯片不会让其 MISO (数据输出)端口进入高阻抗状态、因此 ADS1216实际上与 MAX7301发生了冲突。 在切断 PCBA 上连接到 MAX7301的 MISO 走线后、我能够从 ADS1216获得良好的3.3V 信号。 我将在下一个 PCBA 修订版本中为此创建某种修复。

    感谢您的所有支持、衷心感谢您抽出宝贵的时间为您提供帮助!

    Ryan