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.

[参考译文] ADS1298:SPI 通信出现故障

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1404695/ads1298-trouble-with-spi-communication

主题中讨论的其他器件:ADS1298

工具与软件:

尊敬的所有人:  


我在通过 SPI 使用 Adafruit ESP32 Heather V2与 ADS1298器件通信时遇到问题。 我已经执行了论坛中提到的所有调试步骤。 我还使用了示波器来分析信号、而 DRDY、CS 和 SCLK 信号似乎都符合预期。 我正在使用(https://github.com/ferdinandkeil/ADS129X/tree/master/examples/Serial_EMG)上的代码、也尝试了(https://github.com/adamfeuer/ADS129x-tools/tree/master/ads1298_hello_world)上的代码、 ID 寄存器无法正确回读。 此外、我尝试了一个简单的代码来配置 ADS1298和微控制器之间的通信、但设备之间似乎仍然没有通信。 我也已多次检查引脚配置、以确保已正确配置它们。  您能告诉我可能的问题是什么吗?

提前感谢。

此致!  

Abdelrahman

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

    尊敬的 Abdelrahman:

    感谢您发帖。 您能否共享读取器件 ID 寄存器的 SPI 帧的逻辑分析仪捕获结果?  

    此致、

    Ryan

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

    e2e.ti.com/.../ADS129X_5F00_File.zip

    尊敬的 Ryan:

    感谢您的 快速响应。 我已经附上了一个 ZIP 文件、其中包含代码以及来自逻辑分析仪的片段、供您参考。

    在代码中、我使用 HSPI 命令、因为我要处理 ESP32上的 HSPI 引脚。 如果您能查看随附的文件并就此问题提供进一步的指导、我将不胜感激。

    此致!
    Abdelrahman

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

    谢谢、Abdelrahman。

    这看起来与 SPI 协议设置不正确。 我没有看到 SCLK 在每个帧内切换(nCS 期间的时间为低电平)。 此外、在 MISO、MOSI 或 nDRDY 上也没有活动。

    很遗憾、我们无法为 配置 ESP32本身提供支持。 我不明白此电路板为何不兼容、因此请调整您的 HSPI 配置设置 并让我知道结果。 有关 ADS1298接口的相关时序和开关特性、请参阅图1和第7.6-7.7节。

    此致、

    Ryan

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

    您好、Ryan、  

    我调整了 SPI 配置、现在、当 nCS 处于低电平时、调整了 SCLK。 此外、我能够使用 MOSI 发送命令、但 MISO 上没有活动。 我上传了一个 zip 文件夹中的逻辑分析仪图像+代码。 如果您能为我提供进一步的指导、我将不胜感激。  

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    #include <SPI.h>
    // Define the SPI pins for HSPI (on ESP32 or custom setup)
    #define HSPI_MISO 12
    #define HSPI_MOSI 13
    #define HSPI_SCLK 14
    #define HSPI_SS 15
    #define PWDN_PIN 32 // Define the PWDN control pin for ADS1298
    static const int spiClk = 150000; // 150 kHz clock speed
    // Uninitialized pointer to SPI object
    SPIClass *hspi = NULL;
    void setup() {
    // Initialize serial for debugging
    Serial.begin(115200);
    // Initialize instance of the SPIClass attached to HSPI
    hspi = new SPIClass(HSPI);
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    e2e.ti.com/.../TI_5F00_Support.zip

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

    尊敬的 Abdelrahman:

    在该帧中、您将发送停止命令0Ah。 但是、这仅用于停止 ADC 转换。 这就是在您为后面的 RREG 命令发送额外的 SCLK 时没有 nDRDY 或 DOUT 活动的原因。

    顺便说一下-为了发送 RREG 命令0x20 0x00、您必须首先发送 SDATAC (11h)(即"停止 RDATAC")。 这与停止命令(0Ah)不同、停止命令仅用于控制 ADC 转换。 可以理解的是、这可能造成了一些混淆。  

    此致、

    Ryan

x 出现错误。请重试或与管理员联系。