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.

[参考译文] ADS124S06:SPI 通信问题

Guru**** 2618455 points

Other Parts Discussed in Thread: ADS124S06, ADS124S08EVM

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/687935/ads124s06-spi-communication-problem

器件型号:ADS124S06
主题中讨论的其他器件: ADS124S08EVM

你好!

我们将 ADS124S06连接到 Atmel SAMD21、对于数据表(图111)中建议的所有数据线路、使用47欧姆直列式电阻器、但-DRDY (引脚13)除外。 START/SYNC (引脚8)和 CLK (引脚17)连接至 DGND。 ADS124S06安装在定制测试板上、SAMD21安装在 SparkFun 分线板上、与我们的测试设置一样、电路板之间的连接通常通过短跳线完成。

AVCC 连接到+2.5V、AVSS 和 AVSS-SW 连接到-2.5V、IOVDD 和 DVDD 连接到+3.3V。

我的 SAMD21软件向引脚18发送复位脉冲、等待2毫秒、然后通过读取所有18个寄存器开始、发出0x20、0x11、后跟18个0x00字节。 我希望读回两个字节的垃圾邮件、后跟默认寄存器值(0x00、0x80、0x01、0x00、0x14、 0x10、0x00、0xFF、...)。 我返回0x00的20个字节。 SPI 时钟大约为1MHz、将 SPI 时钟降低到大约100kHz 完全没用。

我已验证 SAMD21 SPI 接口是否正常。 ADS124S06主动将 MISO 强制为低电平。 SPI 信号在示波器上看起来正常。 ADS124S06在-DRDY 线路(引脚13)上发送脉冲、因此我的 SAMD21软件会尝试使用 RDATA 命令(0x12)后跟0x00字节来读回样本。 它回读0x00流。 我们已经仔细检查和三重检查了布局、焊接、可能的短路等、因此它不是由微小的硬件故障引起的。

为了排除任何软件问题、我们购买了 ADS124S08EVM 评估板、组装了 J3接头、并使用 TI PC 软件进行了简单的寄存器值读取测试。 裸板按预期读回寄存器。 尝试使用示波器上的1:1探针(1 MOhm || 13pF)测量 SPI 信号 CS 和 SCLK 会导致 PC 软件像在我们的测试设置中那样将所有寄存器读回0x00。 将 SCLK 切换到10:1探针会导致预期值和0x00之间发生随机切换。 将 CS 探头切换到10:1也可以得到稳定的值。 通过将另外两个10:1探针连接到 MISO 和 MOSI、我们可以观察 ADS124S08EVM 上的寄存器读出是否按预期工作。 完全相同的0x20、0x11和18次0x00序列被发出、在两个垃圾字节之后、寄存器默认值被读回。

我们的测试板通常未连接示波器、但仍然仅返回0x00。

所以:

为什么我们测试板上的 ADS124S06会持续返回0x00?

为什么 ADS124S08EVM 在使用1:1探头(1 MOhm || 13pF)探测 SPI 线路时显示相同的行为?

ADS124S0x 是否需要一些额外的硬件才能与通用3.3V 微控制器的 SPI 接口进行通信?

提前感谢。

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

    欢迎来到 E2E 论坛! 与 ADS124S06/08进行通信通常并不困难。 对于 EVM、有双向电平转换器、其设计方式是电平转换器内部有一个上拉电平。 阻抗较低的电容负载将导致时序问题和分压器的创建问题、其中负载可能导致数字输入的 VIH 和 VIL 超出有效范围。 最好在10:1使用探针。

    至于您的设置不起作用的原因、很难说出。 如果您有通信的示波器/逻辑分析仪快照、您可以发布这一信息、这将很有帮助。 SPI 通信的最大错误之一是帧问题。 整个通信事务要求 CS 在整个过程中处于低电平。 如果 CS 在任何时候切换、通信都会停止。 最佳方法是使用 GPIO 切换 CS、因为帧大小会因命令而异。 确保 CS 低电平到 SCLK 第一个上升沿所需的时间正确。 同时确保 SPI 通信为模式1 (时钟在空闲时保持低电平、数据在上升沿发生变化、在下降沿保持稳定)。

    我还会验证复位后的启动延迟是否符合您的预期。 还要验证您的电源是否出现在 ADS124S06输入引脚上。 例如、如果未应用 AVDD/AVSS、器件将保持复位状态、直到所有电源均有效。 您还应将模拟电源公共端连接到数字接地端(AGN=DGND)。

    根据您对 DRDY 正在切换的评论、器件似乎正在运行。 不过、这是我不会期望的情况、因为复位后的器件将处于待机状态、并且需要 START 引脚变为高电平或发出 START 命令。 如果 START 为低电平、则除非发出命令、否则我不会期望 DRDY 切换。

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

    您好!

    SPI 问题已解决。 SPI 驱动器未测试部分中的几个错误导致 MOSI 线路上的数据错误和组帧错误。 此外、RESET 和 DREADY 有时会重新连接到错误的引脚。

    1:1探头问题似乎仅限于 ADS124S08EVM、ADS124S08EVM 是我们基于自己电路板的设计在1MHz SPI 时钟下的1:1探头进行测试设置的。

    谢谢、

    亚历山大