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.

[参考译文] ADS7951:通过Arduino SPI总线对此部件进行固件编程

Guru**** 2547380 points
Other Parts Discussed in Thread: ADS7951

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/580922/ads7951-firmware-programming-this-part-via-an-arduino-spi-bus

部件号:

您好,

我正在使用此部件的12位版本,您的计时图似乎表明需要单个16位传输来获取数据。 是否可以使用两个连续SPI命令来完成此操作? 一个传输什么以获得第二个字节? 我希望我不需要编写自己的专用16位SPI驱动器。

Carl

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

    你好,Carl

    如果计划使用两个字节从ADS7951读取数据,则需要确保在执行此操作时不会切换CS信号。 在这段时间内,CS应保持低电平。 如果满足此条件,则应该能够读取具有两 个字节/帧的数据

    谢谢,顺祝商祺

    Abhijeet

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

    [报价用户="Carl Angottti"]

    部件号: ADS7951

    您好,

    我正在使用此部件的12位版本,您的计时图似乎表明需要单个16位传输来获取数据。 是否可以使用两个连续SPI命令来完成此操作? 一个传输什么以获得第二个字节? 我希望我不需要编写自己的专用16位SPI驱动器。

    Carl

    [/引述]

    您好,

    我收到 了Abhijeet Godbole的一份说明 ,其中指出只要我不切换/CS行,我就可以读取16位和两 个连续的8位读数。最后一个问题是,我应该向主芯片“传输”什么来进行第二次读,“空”, 或者重复上一个命令,或者什么? 芯片是否有"无操作",以便能够处理这种情况? 如果我知道这一点,我现在可以写我的代码,然后在一个月左右的时间内,主板最终可用时对其进行测试。

    希望听到答案。 谢谢!

    Carl

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

    这是Carl再次写的。 我想我错过了显而易见的事情。 我需要做的是将外发的16位字分成两个8位的块。 第一个位15到8,然后发送接下来的八个位7到0。 这将生成16个传出比特和16个传入比特。 然后,我需要跟踪返回的字节,并相应地处理它们。

    如果我的想法有任何缺陷,请告诉我。

    谢谢!

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

    Carl,您好!

    正确-将外发16位命令字拆分为两个字节是正确的方法。

    要回答您的其它问题,“0000”是一个NOP代码,它会使设备在先前配置的模式下继续运行。 数据表的9.4 第7节对此进行了说明。

    此致,

    Sandeep

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

    现在,该主板硬件已完成。 注:这不是我第一次在SPI总线上使用多个IC。

    几个星期以来,我一直在尝试让此部件正常工作。 我已经详细阅读了在该部分中可以找到的两个规格(修订的规格SBAS652A–2014年5月–2014年8月修订和 SLAS605B–2008年6月–2015年7月修订)。我无法从TI网站或互联网上找到任何其他有用的信息来讨论此问题。

    在代码中,我执行了五次连续读取,并尝试在初始读取之后使用NOOP (0000)命令,以及每次重复这些命令的“强力”方法。 我还为每个“手动”命令切换了CS/行。 到目前为止,没有任何事情导致此部件看起来完全正常工作,而且SO行上从未出现过任何信号。

    我正在使用另外三个部分,每个部分都有单独的CS/线路与他们交谈。 其中两项工作。 如果ADS7951不工作,我就无法测试另一个。

    一个主要问题,因为这两个规范中的任何一个都非常不清楚:此IC在什么SPI模式下运行。 因此,我想知道,操作此IC所需的“官方”SPI模式是什么。 我的意思是“模式”,如维基百科SPI总线页面 :en.wikipedia.org/.../Serial_Peripheral_Interface_Bus中所述

    这些内容如下所示:

    模式 CPOL CPHA
    0 0 0
    1. 0 1.
    1. 0
    3. 1. 1.

    我的理解是,此IC应在模式1下工作。 是这样吗? 这就是时间图中所说的。 总线上的其他IC在该图上定义为模式0的情况下工作。 是的,我正在切换模式以与此IC通信。

    我不想为了客户机密性而在网上进一步讨论此应用程序。 是否有方法通过与AP工程师直接通信获得此芯片的AP帮助? 我需要尽快解决这个问题,否则我必须重新旋转此PCB并使用更可靠的IC。

    希望有任何意见。

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

    您好Carl

    我正在脱机处理此查询。 请提供您的电子邮件ID,以便我们通过电子邮件与您联系

    谢谢,顺祝商祺

    Abhijeet