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.

[参考译文] ADS1256:ADS1256?的示例代码

Guru**** 2543840 points
Other Parts Discussed in Thread: ADS1256

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/571671/ads1256-sample-code-for-ads1256

部件号:ADS1256
主题中讨论的其他部件:DK-TM4C129X

您好,

我有 个DK-TM4C129X开发套件,我想通过SPI连接 到ads1256evm-PDK 性能套件。  性能套件具有ADC Pro,可用于对通道进行采样;但是,看起来您只能一次查看一个通道。  我想同时查看三个通道,所以我正在考虑将SPI接口写入DK-TM4C129X开发套件,以便在LCD上显示样品和/或将样品记录到SD卡上。

代码本身不一定需要是TIVA 129专用代码(如果是的话,那就更好了)。  我只是在寻找将SPI字节放在一起的示例代码,以便正确配置ADS1256,从而帮助加快我们的开发速度。

谢谢!

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

    您好,Aaron,

    ADS1256以E2E为中心提供了多个示例项目。 下面是我所了解的示例项目的链接:

     

    将ADS1256与MSP430复用(我创建了此项目,因此我熟悉此代码):

    e2e.ti.com/.../118.2307万.aspx

     

    另一个ADS1256和MSP430项目可在此处找到:

    ftp://ftp.ti.com/pub/data_acquisition/ADS1256_on_HPA449/ads1256evm_dist.zip</s>1256

     

    使用C641x的示例代码

    e2e.ti.com/.../1227.aspx

    GitHub上还有一个第三方项目,其中包含Arduino的示例代码,可在此处找到:

      

    我希望这能有所帮助!

    此致,
    Chris

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

    您编写的MSP430示例代码看起来很有帮助,很有前途。

    针对您的"忙碌等待"程序的快速问题。 当指定延迟35/150时,您是否希望在这些延迟上等待特定的时间(我将运行更快的处理器,希望更好地了解您尝试实现的延迟时间)。

    #define delay_RDATA() busywait(35)//delay
    #define delay_RREG() busywait(150)//delay

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

    您好,Aaron,

    我相信我从另一个项目中得到了这些特定的延迟,但实际上他们只需要为ADS12T6计时规范提供。 RDATA和RREG都需要在命令和数据字节之间进行短暂延迟,如下所示:

    它看起来就像我评论了代码中唯一调用"Delay_RDATA()"的地方。 我相信MSP430的8位SPI传输在等待单字节SPI传输完成时存在内置延迟。 因此,在我的案例中,根本没有必要提供这些额外的延迟,但保留一个占位符或提醒,即在速度更快的处理器上需要延迟,这仍然是一个好主意。

    此致,
    Chris

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

    您好,Chris:

    感谢您的解释。

    我有一个关于守则的后续问题。  在采集样本之前,您似乎正在等待DRDY线上的3个脉冲。  我很好奇是否有此需要?  

    我浏览了第22页表15上的数据表,它似乎是100 SPS,您应该能够使用DRDY第一个下降边缘上的读数(除非SPS设置为1.5万 ,否则您不需要等待3)。  我的解释是否正确?

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

    我认为3 /DRDY脉冲延迟是不必要的,您的理解是正确的!


    如果您重新启动ADC转换(通过发送SYNC和唤醒),则不需要等待多个/DRDY脉冲...数据将在下一个/DRDY脉冲上得到结算(但对于更快的数据速率,您会注意到第一个/DRDY脉冲延迟以允许此结算)。

    (注意:请记住,在开始ADC转换时,您的输入信号必须已确定。 例如,如果外部RC滤波器需要额外的稳定时间,则ADC将仅捕获充电电容器的电压。 它可能看起来是一个稳定问题,但实际上ADC输出只是跟踪输入信号。)



    另一方面,如果您不重新开始转换,您实际上可能需要等待表15中所示的脉冲数加1! 需要使用"+1",因为在转换期间开始时不会发生输入步骤更改(如图21所示)。 因此,我建议使用图19中所示的命令序列,以最大化吞吐量并避免额外的“+1”转换周期。


    总结:
    -表15仅适用于不重新启动ADC转换的情况。
    -重新启动转换后,您可能会注意到第一次转换需要更长的时间(以便数字滤波器以更快的数据速率稳定)。
    有关sinc filtesr以及为什么有稳定时间的更多信息,请参阅以下博客文章: e2e.ti.com/.../delta-sigma-adc-digital-filter-types-sinc-filters


    此致,
    Chris