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.

[参考译文] CCS/ADS131E08:ADS131E08采样率变化问题

Guru**** 2515800 points
Other Parts Discussed in Thread: ADS131E08

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/799733/ccs-ads131e08-ads131e08-sample-rate-change-problems

器件型号:ADS131E08

工具/软件:Code Composer Studio

您好!

我使用 Tiva C 系列来控制 ADS131E08。 我在数据表流程图中以状态执行初始化过程。 不过、采样率采用默认值。 我想使用不同于32ksps 的值。  

为了进行更改、我 通过 WREG CONFIG1 96h 更改了 WREG CONFIG1 91h 命令、以便我可以获得所需的采样率。

但是、除了我尝试写入寄存器的任何值之外、DRDY 始终基于默认采样率工作。 我不确定我的命令是否真的更改了电阻值。

有关如何使此命令正常工作的任何线索?

谢谢。  

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


    我会通过从寄存器读回来检查 WREG 命令是否实际写入寄存器。

    在写入寄存器之前、发送 RREG CONFIG1以确保91h 返回为寄存器默认设置。 然后发送 WREG 命令、读回寄存器以确保正确写入寄存器。 检查所有寄存器也很有用。

    如果寄存器写入不正确、或者读回不正确、那么我将检查 SPI 通信。 我认为使用示波器或逻辑分析仪来查看/CS、SCLK、DIN 和 DOUT 的波形非常重要。 您可以验证 SPI 格式(数据是在 SCLK 的上升沿设置的、并在器件中计时输入和输出)和 SPI 时序。 如果您查看 SPI 通信、将示波器照片布置回此主题。


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


    我刚刚意识到、您之前曾在 ADS131E08上提出过类似的问题。 我仍然认为、验证通信非常重要、因为这是您一直遇到的问题。

    我仍然会尝试获取通信的示波器图。 现在,解决这一问题似乎是最有利的。


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

    您好!

    我已经检查过、显然 SPI 按预期工作、问题是我不确定 ADS 在请求时是否有效地更改或访问寄存器值。

    我按照数据表流程图中的说明对状态程序进行了编码。 最后、我选择了 SDATAC 模式(考虑到在使用 WREG 和 RREG 时 ADS 正在更改正确的寄存器)。

    我创建了一个基于 DRDY 下降沿触发的中断。 在中断标头内、我只应用了 RREG CONFIG1来读取寄存器、如下所示:

    SSIDataPut (SSI3_base、0x21);

    SSIDataPut (SSI3_base、0x00);

    SSIDataPut (SSI3_base、0x00);

    SSIDataPut (SSI3_base、0x00);

    同时(SSIBusy (SSI3_base))继续;

    SSIDataGet (SSI3_base、可变);

    这2个图像是来自示波器的信号。  

    绿色= CS
    黄色=时钟

    蓝色= ADS DOUT

    粉色= ADS Din

    可以看出、DOUT 上的值显然是随机的、它有很大的差异。 但是、前3个字节是相同的许多倍:C0 0F F0。 这正是我的状态字。 我不知道当我使用 RREG 时它是否应该出现。

    在下一幅图像中、我只更改了绿色的引脚。 现在、绿色表示 DRDY 引脚而不是 CS。

    我不确定正在发生什么情况、但对我来说、ADS 通过 Din 从微控制器接收命令、但出于某种原因、它无法正确执行命令、也无法更改正确的寄存器。 是否有任何关于真正问题的线索?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我忘记在这里再键入一个来自中断的代码"GET":

    SSIDataPut (SSI3_base、0x21);

    SSIDataPut (SSI3_base、0x00);

    SSIDataPut (SSI3_base、0x00);

    SSIDataPut (SSI3_base、0x00);

    同时(SSIBusy (SSI3_base))继续;

    SSIDataGet (SSI3_base、可变);

    SSIDataGet (SSI3_base、可变);

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

    Andre、



    我获取了其中一个图、放大了图、并水平拉伸了图。 这就是它看起来的样子:

    在我看来、您使用的是错误的 SPI 模式。 在此器件中、输入数据在 SCLK 的上升沿设置、然后在 SCLK 的下降沿计时到器件中。 但是、您的 SPI 主器件设置为错误模式。 在您的模式下、看起来主器件在 SCLK 的下降沿设置数据、并在从器件尝试读取数据时进行转换。

    该器件使用 SPI 模式3、但看起来主器件在 SPI 模式2下发送数据。 数据以相同的方式从器件读回。

    需要注意的一点是、只需发送 SCLK 即可获得数据。 每次完成新的转换时、数据都会在 DOUT 上随时钟输出。 如果发送了读取寄存器命令、并且新的转换完成、则新数据的读取寄存器将被中断、从而破坏您的读取。 为了防止这种情况发生、您需要发送 SDATAC 命令。 这使您能够与器件通信、而不会中断新数据的通信。 要获取数据、您需要发送 RDATA 命令。



    吴约瑟



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

    嗨、感谢您的帮助。 现在运行良好、我可以正确读取寄存器。

    实际上、问题是 SPI 模式错误。  

    谢谢。

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

    现在、我尝试读取通道以验证转换是否正确。

    我使用 RDATAC 模式、24位分辨率和1ksps 速率。 我需要测试通道1、5、6、7和8。

    我使用了一个波形发生器来生成一个用作转换器输入的斜坡信号。 下图显示了示波器曲线。

    绿色:CS

    黄色:时钟

    蓝色:DOUT

    粉红色:生成斜坡曲线

    下图只是他第一个的缩放图。

    我的想法是验证沿斜坡曲线处于不同位置的每个通道的十六进制值。 如果工作正常、则应在斜坡曲线增加时增大通道值。

    问题是我的读数没有太大意义。 在接近(正或负)为零的值中、这些值看起来几乎是恒定的。

    我认为 ADS 无法正确执行转换。

    对问题有什么看法?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这里是我从斜坡的最小振幅到更大值收集的每个通道的值。

    通道1:
    FF AE EF
    FF AE FB
    FF AE 0a
    FF AE FB
    FF AE FA
    FF AE EC
    FF AE F1
    FF AE EF
    FF AE FC

    通道5:
    FF B0 C4
    FF B0 C7
    FF B0 D0
    FF B0 DB
    FF B0 CB
    FF B0 CD
    FF B0 CC
    FF B0 C0
    FF B0 D3

    通道6:
    00 47 A6
    00 47 91.
    00 47 99
    00 47 AA
    00 47 A0
    00 47 9A
    00 47 9A
    00 47 9B
    00 47 99

    通道7:
    FF B0 99
    FF B0 90
    FF B0 87
    FF B0 92
    FF B0 94
    FF B0 B1
    FF B0 8E
    FF B0 7E
    FF B0 83

    通道8:
    00 47 96.
    00 47交流
    00 47 8B
    00 47 9D
    00 47 9A
    00 47 98
    00 47 9A
    00 47 99
    00 47 90
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Andre、


    我不使用具有一系列斜坡的波形发生器、而是从直流输入电压开始并定期更改该电压。 这样、您就可以根据预期的输入直接计算输出。

    问题的一部分是、您使用100Hz 斜坡并在1kHz (大概为 DR[2:0]= 110)下进行测量。 数字滤波器极有可能会过滤掉输入信号、使其过小而无法读取。 请参阅数据表第24页开始的数字抽取滤波器部分、了解详细说明。

    同样、从直流输入开始、然后再对其进行测量。 如果要使用函数发生器进行测量、请使用远小于数据速率的频率。


    吴约瑟