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.

[参考译文] ADS1299:了解 SPI 数据通信

Guru**** 2586135 points
Other Parts Discussed in Thread: ADS1299

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/845509/ads1299-understanding-spi-data-communication

器件型号:ADS1299

当我尝试使用 STM32连接到 ADS1299时、会出现奇怪的行为:

在 SDATAC 和读取命令的正常序列之后、我无法读取寄存器。

我检查了线路上的所有信号、时序 TSSC -它是正常的、但 ADS1299始终接收"0"。

经过一些更改后、我发现在 SDATAC 写入序列之后、在按下高 CS 线路之前、我需要添加延迟或忽略此命令。

我在文档中找不到有关此行为的说明("SDATAC 命令取消了连续读取数据模式。 没有 SCLK 速率限制

此命令、但下一条命令必须等待4个 tCLK 周期、然后才能完成。" 多字节命令也是如此)。 当然、我添加了 SDATAC 和寄存器读取之间的延迟、但这不起作用。

如果这是正确的 ADS1299操作,并且这对于所有单字节写入命令都是相同的,或者我的控制器工作不正确?

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

    您好、Egor、

    感谢您的发帖、欢迎加入论坛!  

    很难准确地说给定信息的问题是什么- STM32很可能是我们无法帮助解决的问题。  

    如果您在发送 SDATAC 后等待4个 tCLK 周期、然后将/CS 拉至高电平、则不会出现问题。 尝试使用示波器来确保时序正确、也许 STM32以比应有的快速度将/CS 拉高。  

    此外、如果您尚未查看、在调试 SPI 通信时需要考虑的项目清单可在我的签名中的 BIOFAQ 博文下找到。  

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

    您好、Alexander。

    感谢您的回答。

    ADS1299的 CLK 来自内部源2.048MHz。 将最后一个时钟周期更改为 CS 上升延迟~ 480ns (根据数据表、tCSSC 最小值= 17ns)。 在下面使用示波器读取器件 ID 0x00。 如果我在发送 SDATAC 时在 CS 上升之前添加延迟、则我接收 到预期值 0x3E。  这似乎完全不是 STM 问题、而在较慢的控制器中、这种延迟自然会出现

    然后读取 SDATAC ID:

    SDATAC:

    获取 ID:

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

    您好、Egor、

    我假设 Ch1是 SCLK、Ch4是 DIN、Ch3是/CS?

    可能导致问题的一个因素是信号的幅度。  

    ADS1299使用哪种数字电源?  

    对 CH4的过冲/下冲非常明显。 如果您查看 数据表中的7.1绝对最大额定值、您将看到数字输入不应超过 DVDD/DGND 超过+/-300mV、我认为过冲是这样的。  

    我建议在此行中添加一个小 RC。 将 R 放在 STM32旁边、C 放在 ADS1299附近。 R 的阻抗为50欧姆、C 的阻抗为10pF。让我知道这是否会清除信号。

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

    我很抱歉。 似乎我有点误导你。 最后一个屏幕仅用于显示计时。

    屏幕上的尖峰只是示波器伪影。

    黄色探针上带有弹簧的属性信号屏幕:

    带有 MOSI 的时钟:

    时钟:

    芯片选择

    DVDD

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

    您好、Egor、

    很抱歉、我计划与这个设计人员聊天。  

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

    您好、 Alexander。

    好的。 我等待结果。

    目前、我在上升芯片选择之前为单字节命令添加了2us 延迟。

    希望其他器件 ADS1299能够按预期工作。

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

    您好、Egor、

    我之前没有这样做,但是发出提高/CS 的命令后的最短时间是4* tclk。

    由于您使用的内部时钟频率为2.048MHz、因此一个 tclk 为~500ns。 因此、等待2us 是解决您问题的正确方法。  

    请查看 数据表中的 tSCCS 以了解进一步的说明。