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.

[参考译文] ADS8688A:ESP8266 SPI 接口与 ADS8688A 的间歇性行为、工作~25%的上电周期

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1466071/ads8688a-intermittent-behavior-with-esp8266-spi-interface-to-ads8688a-works-25-of-power-on-cycles

器件型号:ADS8688A
主题中讨论的其他器件: ADS8688EVM-PDK、ADS8688

工具与软件:

我有一个 ESP8266 (NodeMCU 板)连接到 ADS8688a (在从在线经销商购买的板上)、出现异常问题。  大约25%的上电周期(即打开一切电源)、系统工作正常、ESP8266将在电路板通电的整个时间内与 ADS8688a 通信(即、我可以以至少100Hz 的采样率从多个通道获取多个读数)。  但系统启动时间的大约75%、ESP8266读取0或65535 (无论其设置的范围是什么、最小电压还是最大电压)、根本不会发生变化。  使一切正常工作的唯一方法是多次重启电源、直到出现一切正常工作的极少数情况。

我的第一个想法是 ESP8266和 ADS8688a 板之间存在不良连接。  但是、当系统在"工作"状态下启动时、扭曲所有连接的电缆和布线似乎并不会损坏它;同样、当系统在"损坏"状态下启动时、摆动的事情也无法解决它。  这并不能排除不良连接、但似乎不太可能、至少在布线方面。  我还应该说明的是、导致启动"正常"或"中断"的下电上电不涉及电路板的任何运动。  因此、如果是在某个位置发生不良连接、这将非常微弱、对任何外部机械输入都不敏感。

我还尝试了调整 SPI 速度。  我正在使用的库(来自 https://github.com/siteswapjuggler/ADS8688a)在17MHz 上运行、但我试过16MHz、10MHz、1MHz、甚至是30kHz (我的代码示例无论如何都非常缓慢)、而且降低 SPI 速度似乎毫无帮助。  我在使用不同的库( 基于第一个库的 github.com/.../ADS8688_ADC_ARDUINO)获得了相似的结果。

当电源循环导致"工作"状态时、系统运行良好。  我已经验证、至少对于第二个库、它能够正确读取和报告电压、至少在 Ch0上是如此、以所需的采样速率进行采样。  但在大多数情况下、启动会导致"损坏"状态、有时所有输入通道都卡在报告+10.24V、有时(更常见的情况)-10.24V。  电源循环之间的物理配置或代码没有变化、会导致"工作"和"损坏"状态。

虽然在我看来这一切听起来像是 SPI 问题、但我很困惑、为什么它有时可以正常工作、一直保持正常工作、直到下电上电。

ADS8688a 由 NodeMCU 电路板上的 Vin 供电、该电路板由 USB (计算机或 USB 电源组)供电。  PD 按预期连接、菊花接地、RST/SPI 也连接至 ESP8266。

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

    尊敬的 DrNeon:

    欢迎来到我们的 e2e 论坛!  您的 ADS8688 PCB 是我们的 ADS8688EVM-PDK 还是第三方硬件?  在非工作状态下上电时、REFSEL 上的电压电平是多少?  在 REFCAP 和 REFIO 上、您会看到什么电压?

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

    您好、Tom、非常感谢您的快速响应!  它是一件第三方硬件(https://www.amazon.com/gp/product/B0BG2D4LZ8c)。  下次有机会(现在不确定是否可以)时、我将尝试找到这些引脚或布线、并在通电处于非工作状态时测量电压。  查看评估板和我找到的一些最基本的文档、我现在认为它可以设置为用于外部参考、我想这是否就是问题?  我仍然不明白为什么这会导致间歇性行为、而不是完全不工作。  无论如何、我会尝试获取这些电压并进行报告。

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

    如果 REFSEL 引脚开路(悬空)、这可能会解释您看到的行为。

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

    终于找到了测量这个值。  REFSEL 约为3.3-3.4V、通过1k 电阻连接到 DVDD (由电路板上的 SPX3819-3.3芯片提供、带有10uF 和100nF 的电容器、至少根据提供的电路图)

    在这个最新的测试中、我为电路板和微控制器通电、看到 Ch0读数引脚为+10.24V、在3.36V 时测量的 REFSEL。  然后我重新启动一切(拔下然后插回 USB 电源组,我正在使用它为 NodeMCU (ESP8266)板提供5V 电压,并将其 Vin 连接到 ADC 板上的 Vin ),并看到 Ch0读数实际上有意义的电压,REFSEL 为3.4V。  再次下电上电、看到 Ch0引脚电压为-10.24V、但 REFSEL 的测量值仍为3.4V。  工作状态和非工作状态在 REFSEL 方面没有明显的差异。

    我还没有机会跟踪 REFCAP 和 REFIO、会尝试做到这一点。  电路板经过专门设置、可以移动一个电阻器在 GND 使用 REFSEL (通过同一个1k 电阻器)而不是 DVDDD、我打算尝试该操作、看看是否将其设置为使用内部基准会导致此问题消失。  外部基准通常由 ADR444提供、默认配置是使用该基准。

    我收到了电路板的电路图、如果有任何帮助、可以上传。

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

    是-请上传原理图。

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