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.

[参考译文] ADS1262:与其它SPI从属设备一起提供垃圾值,在这些设备上独立工作

Guru**** 2394305 points
Other Parts Discussed in Thread: ADS1262

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/572550/ads1262-giving-garbage-value-with-other-spi-slaves-where-as-working-perfect-independently

部件号:ADS1262

我正在将ADS1262与Arduino mega2560以及TFT和SD卡连接。

当我将ads1262与上述给定从属设备连接时,有时会激活并给出输出,有时不会激活并给出垃圾值或零值。

尽管它在独立运行时提供了完美的价值。

我附上了接口设计的照片。 我还附上了代码以供参考。

我已配置电源和REFMUX寄存器。

电源寄存器的默认值为0x11,将更改为0x10 (禁用INTREF)。

REFMUX寄存器的默认值为0x00,更改为0x12 (AIN2和AIN3用作外部参考)。

ADC正在连续模式下工作。

可能会出现什么问题?e2e.ti.com/.../Circuit.pdfe2e.ti.com/.../ADS1262-Issue.rtf

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

    你好,Nirav,

    您似乎在同一SPI总线上有三个设备。 在这种情况下,您需要确保您不会尝试同时与多个设备通信,否则您会对miso信号产生争论。

    在您的代码中,您可能会同时与多台设备通话。 您似乎正在轮询/DRDY,更新LCD屏幕,并读取代码中"ADC_Error:(ADC_Error:)"循环中的数据。 您可以尝试在示波器上检查TFT_CS,SD_CS和ADC_CS,以确保此处一次只有一个CS引脚处于活动状态。

    也许编写一个函数来控制哪个SPI设备处于激活状态(并确保SPI总线上的所有其他设备处于非活动状态)是有意义的,这样就不会混淆SPI通信。  

    另一个好的做法是使用/DRDY引脚作为中断(而不是循环轮询它)。 通过使用中断,您可以让Arduino在等待/DRDY降低时运行另一个任务。 然后,一旦触发/DRDY中断,您就可以处理该中断,读取ADC数据,然后返回执行其他任务。

    我希望这能有所帮助!

    此致,
    Chris

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

    感谢您的建议。
    我尝试一次只与一个从属设备通信,方法是将其CS引脚降低到所有其他CS引脚都高的位置。
    您能否描述一下该功能是如何显示SPI设备处于活动或非活动状态的控制?
    如何将DRDY引脚作为中断?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好,Nirav,

    很抱歉回复延迟。

    我想到的是一个函数调用,如下所示:AssertCS(“为其设置/CS低电平的设备名称,或‘无’设置所有/CS针脚高电平的设备名称”);
    然后,在该功能内,您可以先确保所有CS引脚都设置为高,然后再继续将其中一个/CS引脚设置为低。

    我不确定如何在Arduino上实施中断,但对于MSP430,它将如下所示:    

    通过使用中断,您不需要依赖代码检查/DRDY引脚在其电量不足后的状态,而是可以在等待中断时执行其他任务。 在实际的中断例程中,您可以决定是要将数据作为例程的一部分来读取,还是只设置一个标志,告诉主循环需要读取数据。 如果代码中有其他中断,可以“中断”当前的中断,则后面的情况会更好。

    此致,
    Chris

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

    您是否尝试过使用逻辑分析仪(或示波器)查看SPI总线,以验证一次只有一个设备尝试在SPI总线上通信?

    此致,
    Chris