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.

[参考译文] ADS1298:通过 MSP430F67651A 从 AD1298接收1位移位

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/783759/ads1298-1-bit-shifted-received-from-ad1298-with-msp430f67651a

器件型号:ADS1298

您好!

我已经完成了 ADS1298的所有初始化、并且可以读取 POL=1、PHA=0的寄存器、

当我读取信道数据 C00000、8*(800000)时

我不会得到任何此设置。

我接收到错误的寄存器数据、建议设置 为 POL=0、PHA=1。

当我读取信道数据 C00000、8*(800000)时

我得到一个位移位为6000008*(400000)。  我已经检查了 DSO 上的这些数据,数据是正确的 C000008*(800000)。

当我读取寄存器时、这些也是移位值。

请帮助...

谢谢、

Ashish Jain

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

    感谢您的发帖。

    您能更清楚地解释一下您的问题吗? 我不理解这句意思:“C000008*(800000)"。 为了澄清这一点、您应该始终对 ADS1298接口使用 CPOL = 0和 CPHA = 1。

    如果输出以 C0xxxxh 开头、则可能是转换数据之前的24位状态字的开头。

    要读取寄存器、您必须首先通过在任何其他命令之前发送 SDATAC 命令来存在 RDATAC 模式。

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

    您好、Ryan、

    我是按照您的建议来做的、前24位数据是 C00000、后8 24位数据是800000、但正如我在读取缓冲区时告诉您的、它显示了我600000和8倍400000、这是1位移位。

    请在 DSO 的屏幕截图中为上面的第一个字节执行 lok...

    谢谢、

    Ashish Jain

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

    Ashish、您好!

    感谢您的解释。 我知道您正在从缓冲区读取状态+ 8个数据通道。 800000h 对应于 ADC 的负满量程代码、供您参考。 这可能是预期的、具体取决于输入条件。

    如果您在 MCU 中使用正确的 SPI 设置(CPOL = 0、CPHA = 1)、则 MCU 应正确读取数据。 在示波器图像中、波形没有明显的延迟。 SCLK 的上升沿正在移动数据、并且下降沿应该被用来锁存数据。 我建议您在 MCU 的输入端探测相同的信号、以确认 SPI 信号路径中没有明显的相移。

    您的 SCLK 的频率和振幅是多少? 它看起来略大于3.3V 峰间电压。

    此致、

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

    您好、Ryan、

    我已经检查了波形、它与 ADS1298侧相同。

    我不知道为什么它比3.3V 高一点、但我正在为控制器提供3.3V 等电压。

    也是如此

    当我从 ADS1298读取寄存 器时,在(CPOL = 0、CPHA = 1)模式下出现垃圾值。

    当我从 ADS1298读取通道数据时,在 (CPOL = 0,CPHA = 1)模式下出现1位移位值。

    当我从 ADS1298读取寄存 器时,正确的值出现在(CPOL = 1,CPHA = 0)模式中。

    当我从 ADS1298读取通道数据时, 在(CPOL = 1,CPHA = 0)模式下不会出现任何数据(所有零)值。

    请帮助。

    谢谢、

    Ashish Jain

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

    Ashish、您好!

    [引用 user="Ashish Jain99"]我是按照您的建议操作的,前24位数据是 C00000,后8 24位数据是800000,但正如我在读取缓冲区时所说的,它显示了我600000和8倍400000,这是1位移位。

    您的示波器捕获显示了正确的输出波形、该波形将对应于状态字中的第一个字节 C0h。 SCLK 与 MISO 对齐似乎没有问题。 如果在您有机会读取数据之前在 MCU 数据缓冲器中移动数据、这一点我无法提供帮助。

    请查看第17页上的 SPI 时序要求。 请记住、在/CS 变为低电平之后、您需要一段设置时间才能发送 SCLK (tCSSC)。

    无需使用不同的 SPI 模式设置进行实验- ADS1298接口仅设计为在 CPOL = 0和 CPHA = 1的情况下运行。

    还有其他原因可以解释转换数据为何看起来像垃圾。 例如、如果您在 RDATAC 模式下运行、ADS1298中的输出移位寄存器将在每次出现/DRDY 下降沿时被新的转换数据覆盖。 如果您在新/DRDY 下降沿发生时读取前一个转换、则下一个 SCLK 将读取新转换的 MSB。

    寄存器内容是否似乎也被移动1位、或者它们没有任何意义? 加电后尝试读取所有默认寄存器。 如果寄存器内容被读回并且没有意义、请确保:

    1. 首先将器件置于 SDATAC 模式
    2. 您满足 tSDECODE 时序规格

    此致、