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.

[参考译文] ADS1292:无法读取 ADS1292 的芯片 ID

Guru**** 2866460 points

Other Parts Discussed in Thread: ADS1292

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1625969/ads1292-cannot-read-chip-id-of-the-ads1292

器件型号: ADS1292

您好:  

我们目前正努力与 ADS1292 芯片建立通信。 我们设置的一些详细信息如下:  

- DVDD:1.8V、AVDD:3V
- SPI 模式:1(时钟下降沿)
-芯片封装:QFN
-* SPI 线路与另一个芯片与不同的 CS 共用(这已经过测试,以确保不与另一个芯片发生冲突 — 甚至完全禁用另一个芯片)

附件是逻辑分析仪的屏幕截图、我们显示正在发送芯片 ID 请求命令、但这似乎会返回随机数据、我们怀疑这些数据是 ADC 值转换(即使在设置过程中发送 STOP 数据转换命令后也是如此)。 另一个屏幕截图显示我们发送停止命令(这是在读取芯片 ID 命令之前)。  

我们目前的工作怀疑是、器件无法识别停止 ADC 转换或检索芯片 ID 的命令、因为芯片无法识别 1.8V 逻辑。 请注意、我已将其示波并确实在 DVDD 线路上读取了 1.8V 电压、MOSI 线路上的峰值约为 1.76V。

非常感谢任何帮助。   



Image (4).png

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

    尊敬的 Tomisin:

    感谢您发送编修。

    我没有看到您读取 ID 寄存器的程序有任何明显错误。 发送 SDATAC 命令应该会停止将转换数据加载到输出移位寄存器中。  

    在发送 SDATAC 之前,您是否能够读取合理的转换数据? 至少、您能否确认帧以状态字开始、其中第一个半字节应始终为 0xC?

    探测 ADS1292 的 SPI 的距离有多近? 我要求确保器件读取分析仪检测到的相同逻辑电平、并检查 SPI 中是否存在任何明显的振铃或干扰、从而破坏通信。

    是否使用内部振荡器? 如果是这样、并且 START 引脚在上电时拉至高电平、您是否会看到/DRDY 引脚按照 POR 初始化过程以默认数据速率切换?

    此致、

    Ryan

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

    您好、Ryan、

     

    感谢您的快速响应。

     

    1.是的、第一个半字节始终以 0x0C(状态字节:0c0C、0x0,0x0)和 6 字节的 ADC 值开头。

     

    2.我们使用 saleae 逻辑分析仪直接在针脚处探测芯片的 SPI。 我已经看了、即使我们在 1.8V 电压下工作、从逻辑分析仪似乎也具有 2V 高阈值、因此它似乎并不总是报告正确的输出、但是、我们使用的 MCU 似乎也无法从芯片获取正确的响应(根据输入缓冲器)。 示波器不会报告任何可疑的振铃。

     

    在另一个注意事项上、我们发现发送 SDATAC 命令突发会导致芯片最终拾取其中一个命令并停止转换、此时它决定响应并生成正确的芯片 ID。 随后、它还允许配置寄存器、我们可以正确读回它们。 是否预计会出现这种行为? 它似乎不考虑我们有的逻辑水平的怀疑。  

     

    3.它使用内部振荡器、当 START 引脚在上电期间被拉高时、这会导致 DRDY 引脚以正确的速率切换。 它似乎忽略 SDATAC 命令、并且始终使用 ADC 值以及状态字节进行响应。

     

    期待您的答复!

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

    尊敬的 Tomisin:

    1.状态字应该以 0xC 开头、而不是以 0x0C 开头。 请在读取转换数据时仔细检查此项。

    2.我认为 Saleae 也应该支持 1.8V 逻辑。 确认 MCU 和 ADS1292 看到相同的逻辑高/低电平以及正确地对 SPI 事务进行解码会有所帮助。

    我不希望成功锁存需要发送多个 SDATAC 命令。 尝试此操作时、/CS 是否在每个帧之间切换?

    3.最好确认 ADS1292 正确初始化并在上电时以默认数据速率输出/DRDY 中断。

    此致、

    Ryan

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

    您好、Ryan、  

    是的、我们已经仔细检查过、实际上是 0xC、抱歉、DRDY 默认每 2ms 中断一次 (500sps)。  

    我不确定还要如何验证他们在连接后看到相同的逻辑高电平? 你对此有什么建议吗?

    另一个注意事项是、从进一步的测试中、我们发现断开 saleae 的连接完全使芯片开始在一段时间内持续工作(即只需发送一次 STOP 命令并获得正确的芯片 ID)、但在大约 20 分钟后、SPI 通信恢复为不再正确响应。 有什么想法吗? 这可能又是逻辑电平问题吗?

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

    尊敬的 Tomisin:

    如果移除 Saleae 可以改善通信、则似乎表明存在一些问题、要么是通过 MCU 驱动数字 I/O、要么是由于 ADS1292 与其他连接电路(包括 MCU 或共享 SPI 总线的其他芯片)之间的数字接地连接会出现一些波动。 这些接地是否以任何方式隔离? 电路板上是否有任何选项可以改善 MCU 接地端和 ADS1292 数字接地端之间的连接?

    此致、

    Ryan

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

    Ryan、您好、没有任何接地分割/隔离。 这是一个 6 层电路板、顶层是 MCU、底层是 ADS1292、L2 和 l5 上有 GND 基准、全部通过电路板周围的过孔缝合在一起。 遗憾的是、电路板上没有用于解决增加 GND 连接问题的选项、这比我们目前为止所做的要困难。 是否有其他潜在问题会浮现在脑海中? 我们不能确定接下来的步骤是什么。 我们已订购该 EVM、旨在改善 1.8V 逻辑电平、还可以将 MCU 拼接到 EVM 上的芯片中、看看我们能达到多远。  

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

    尊敬的 Tomisin:

    大家都同意、该布局在接地方面做得不错。 我目前没有其他建议。

    之前、您提到了在示波器上检查 MOSI 以确认逻辑电平。 您是否碰巧检查了 SPI 的其余部分?

    最后、您是否在多个板上测试了它?

    此致、

    Ryan

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

    您好、Ryan、

    我很高兴看到我们发现了问题、并发现问题源于错误的 SPI 通信。 事实证明、CS 线路被置为有效太靠近消息边缘、有时甚至正好在边缘、从而导致芯片并不总是能识别发送的命令。 在将线路置为有效之前从消息边缘开始实施延迟、可实现更稳健的通信。

    但是、我们在尝试从 Fluke PS320 模拟器捕获 ECG 波形时遇到了另一个问题。 我们成功捕获了一些信号、但在输出波形上遇到了随机的尖峰噪声问题、希望您能帮助我们指明正确的方向来来源并消除噪声。 请参阅下面的 2mV 信号图、该信号可以清楚地看到、但迹线中的稍后部分显示了这些尖峰。

    就 PCB 层叠而言、正如我之前提到的、我们没有分割地(即模拟和数字电压轨共用同一接地端)、MCU 位于第 1 层、ECG 芯片位于第 6 层、而 GND 平面位于第 2 层和第 5 层、整个电路板上有拼接过孔。 因此、有人担心这可能是导致尖峰的潜在原因?

    此外、该芯片由专用 LDO 提供 3V 电压、噪声为 22uVrms、因此我们并不怀疑这一点、但很高兴得知其他情况。 我们最后怀疑、这可能是由于我们的测试设置造成的、因为我们使用的是实验室工作台 PSU、但使用电池并没有太大的区别。 尝试使用芯片增益也没有太大帮助。

    另一个有趣的是、当我们将 LA 和 RA 引脚连接在一起、预计该引脚将完全为 0 时、仍然会得到这些尖峰、同样、当我们生成方波测试信号时也是如此、因此我们不认为这来自输入接口(每个电极输入端都有一个 530Hz 的 RC 滤波器,具有输入保护功能)。 除此之外、我们的原理图与 ADS1292EVM 模块直接匹配。

    我希望从您那里了解到的另一件事是、ADS1292 是否能够捕获小至 20uV 的 ECG 迹线、或者捕获的问题过于陡峭?

    期待您的答复!

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

    尊敬的 Tomisin:

    感谢您的更新。 很高兴初始问题得到解决。

    与短接 RA 和 LA 输入类似、您是否可以将通道配置为 内部输入短路 (MUXn[3:0]= 0001b)? 您是否已在 MCU 侧通过逻辑分析仪确认 SPI 通信、以消除任何可能的传播延迟问题?

    我现在不会立即怀疑 LDO 电源或接地拼接、但您可以始终尝试对外部电源进行空中接线来排除故障。

    此致、

    Ryan

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

    感谢您的快速答复。 我们可以确认每次发送命令、我们还回读寄存器以验证这一点。 此外、我们可以看到、当未发送命令时、我们从模拟器获取输出、当发送并确认(通过读回寄存器)时、输出主要为 0、但这些尖峰除外。  

    我将牢记飞线建议、谢谢。 是否有其他可能性? 我无法想象这可能是由串扰导致的、因为数字布线远离芯片的模拟部分。 这种情况似乎更不可能发生、因为当芯片将输入端连接至 0V 时、仍然可以看到。