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.

[参考译文] ADS7960:SDO 一直读取为0

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1132134/ads7960-sdo-always-reads-0

器件型号:ADS7960

您好!

我正在尝试对 ADS7760进行编程。 我有以下问题。

第31页的上电流程图(图29)显示、我们必须在帧1、帧2上的 Auto 1寄存器程序、帧3上的 Auto 2寄存器程序等中将器件设置为手动模式。 我目前所尝试的只是将 ADC 设置为手动模式。 我是否还需要配置自动1、自动2、警报和 GPIO 寄存器?  

2. 我尝试通过发送0x1801 (GPIO0设置为 on)在手动模式下进行设置、然后通过发送0x1d01三次(生成三个时钟周期)来尝试读取 CH10。 我可以看到我的微控制器设置了 CS、正确发送时钟和三个数据字。 但我在 SDO 中看到的所有值都是0。 原因可能是什么? 是我的初始化吗?

谢谢、

Kaushalya

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

    尊敬的 Kaushalya:

    1.不 不需要对其他模式进行编程。 如果您使用 GPIO 作为输出、则可能需要查看 GPIO 寄存器、因为默认情况下、GPIO 是输入。  

    2.您发送的命令应符合您的预期。 您是否能够提供 CS、SCLK、SDI 和 SDO 的示波器捕获? 此外、您是否正在使用 EVM 或定制板? 如果使用定制板、您能否提供原理图以便我查看?  

    如果您在 SDO 上读取全0、那么我 相信很可能会出现通信错误。  

    此致、
    Aaron Estrada

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

    您好、Aaron、

    非常感谢您的回复。  

    1.是的,这也是我的想法。

    2.我已经为初始化序列附加了一个示波器捕获。 最后、我应该会看到 GPIO0变为高电平、但它是低电平。 这意味着通信故障。 在示波器捕获中、ch3为 MOSI、Ch4为 MISO。

      e2e.ti.com/.../init.csv

    我使用的是定制板。 还包含原理图。

    e2e.ti.com/.../NTC.pdf

    请告诉我、您是否可以在这里看到任何不正确的内容。  

    谢谢、

    Kaushalya

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

    您好、Aaron、

    这是一个完整的读取周期。

    这是整个读取周期的第3个帧。

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

    尊敬的 Kaushalya:

    我没有看到任何突出的问题会导致问题。 SPI 信号将传输到何处? 电路板上是否有 MCU? 您好像是首先发送0x1801、但会在将器件置于手动模式之前配置 GPIO 寄存器。 因此、我将按以下顺序发送命令:

    0x4001

    0x1800

    0x1D01

    GPIO 应在被告知后立即切换。 因此、您应该会看到 GPIO0在发送0x1D01后变为高电平。 我在最后确认了这一点 但是、我仍在获取有关 SDO 的活动。 这是预期的、因为我们仍在获取和转换通道。 您能否分享您希望使用的采样率的详细信息? SCLK 频率是多少? 您是否已使用 DMM 检查电源以确保它们处于适当的电平? 您能否探测 AINP 引脚(OPAMP 的输出)以确保获得预期值?

    此致、
    Aaron Estrada

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

    您好、Aaron、

    我尝试了您的序列、但很遗憾、GPIO0仍然为低电平、并且 ADC 没有 SDO。

    CS 变为低电平到时钟的第一个上升沿之间的延迟不应像我从第7.9节和图4中看到的那样重要。 我是对的吗? 对于 SDI (MOSI)、重要的时序参数是 TD1、Tsun2、TH2和 tq、我对吗?  

    我目前没有寻找任何特定的采样率、但它会非常慢、例如10-30秒。 是的、我已检查的电源。 它在旁路电容器上的电压为3.3V 时稳定。 由于 我使用 VQFN 封装、我无法在引脚上进行正确检查。  

    SCLK 频率为750kHz。

    AINP 上的电压为0V。 CH10输入为1.7V、Vref 为2.48V。 那么、看起来多路复用器也没有运行。

    谢谢、

    Kaushalya

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

    ADS7960通过共享 SPI 总线连接到处理器。 但是、我已经将所有 MISO 线路与其他从器件隔离、这样它们就不会干扰 ADS7960的 SDO。 仍然不幸运。

    我还附上了原理图的处理器页面。

    e2e.ti.com/.../Processor.pdf

    谢谢、

    Kaushalya

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

    您好、Aaron、

    我还注意到 SDI 信号中存在以下情况。 发送的数据为0x4001。  

    但有两个异常脉冲、它们非常接近 VIL 最大限制(400mV)。 它的低电平可以表示为高电平、但非常接近逻辑的灰色区域。 你怎么看?  

    谢谢、

    Kaushalya

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

    尊敬的 Kaushalya:

    您对 CS 变为低电平到 SCLK 上升沿的理解是正确的。 这只有一个最小规格。 至于其他时间、是的、这些是您应该仔细检查的时间。 只需对它进行眼球、它们看起来很好。 CS 高电平时间也具有最小规格、但您似乎要发送~2.5us 的 CS 高电平脉冲、因此该值应完全符合规格。  

    我不能相信我错过了您最初的示波器捕获中的这些额外脉冲。 它们看起来非常干净、就像其他东西试图将线路拉高一样。 它应该在 Vol spec 范围内、但我同意这非常接近该灰色区域。 隔离 MOSI 线路后、您是否仍然看到脉冲?

    对于 AINP 测量、当前是否安装了0欧姆电阻器? 如果您尚未测量 MXO 引脚、我还建议您进行测量。 我忘记了两个引脚和0欧姆电阻器之间有一个运算放大器。 无论采用哪种方式、这都不应阻止器件设置 GPIO 状态。  

    此致、
    Aaron Estrada

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

    仔细看一下原理图、看到 MOSI 上的"鬼信号"后、我犯了愚蠢的错误。 MOSI 和 MISO 连接反之亦然!!!

    在我为 ADC 修复它之后、我现在可以看到 ADC 从输出一些数据、但仍然没有 GPIO0。 但我现在距离这里更近了一步。

    在我通过发送0x1801三次来读取一个通道后、GPIO0被打开。

    此外、我还可以以相同的方式手动读取通道。

    您能否确认在0x4001、0x1800和0x1d01之后、GPIO0为高电平?

    谢谢、

    Kaushalya

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

    尊敬的 Kaushalya:

    很高兴看到您发现了这个错误。 这也是我应该抓住的一件事... MISO 和 MOSI 仍然通过查看字母来迷惑我...

    写入0x4001将 GPIO 设置为输出。 0x1800访问手动模式寄存器、同时将配置为输出的 GPIO 设置为低电平状态。 0x1D01访问手动模式寄存器、将要读取的通道设置为 CH10、并将 GPIO0设置为高电平。 这应该会切换 GPIO 引脚。 我在下面添加了一些类似图案的图片。 在我使用的 EVM 上、GPIO 被拉至高电平、并且我无法访问 GPIO0、因此使用了 GPIO1。  

    我将 SPI 主机控制器与 EVM 配合使用、并捕获了一些如下所示的图像。 从上到下依次为 CS、SCLK、SDI、SDO 和 GPIO1。 我首先发送命令0x4002以将 GPIO1设置为输出。 您可以看到 GPIO1引脚变为低电平。 这是因为手动模式寄存器默认将所有 GPIO 设置为低电平。 接下来、发送0x1802以将 GPIO1切换为高电平。 最后、我通过发送0x1800将 GPIO1切换回低电平。  

    您要发送的命令遵循类似的结构、您应该会看到 GPIO0切换。  

    [引用 userid="474008" URL"~/support/data-converters-group/data-converters/f/data-converters-forum 1132184/ads7960-sdo-always-read-0/4204819#4204819"]通过发送0x1801三次来读取通道后,GPIO0会打开。

    您实际上是否能够切换 GPIO0、或者这条语句是否说它应该切换?

    此致、

    Aaron Estrada