主题中讨论的其他器件: 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。