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.

[参考译文] ADS1148-Q1:获取数据时出现问题

Guru**** 2609285 points
Other Parts Discussed in Thread: TMS320F28377D, ADS1148

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/670855/ads1148-q1-issue-in-obtaining-data

器件型号:ADS1148-Q1
主题中讨论的其他器件:TMS320F28377DADS1148

大家好、

     我正在使用 TMS320F28377D 开发此 ADC 以进行 SPI 通信。 我在代码中遇到问题、因为在发送读取数据命令和时钟命令后、我在结果中得到值"0"、但它应该具有应用的输入值。 数据就绪中断即将到来、命令将相应地进行传输。 在输入中、我在 AIN0引脚上施加2.3V 电压、在 AIN1引脚上施加1.65V (VCM)电压。 请帮我解决以下问题、随附代码。

e2e.ti.com/.../adc.c

此致、

AMI

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


    我在代码中没有发现任何具体错误。 您是否总是得到0或您是否得到一些0和一些数据?

    如果您始终得到0、我将验证我的连接。 确保 START 和/RESET 均为高电平。 我还会使用示波器或逻辑分析仪来观察/CS、DIN、DOUT 和 SCLK。 它还有助于观察/DRDY 以确保器件正在转换。 如果您从器件到主器件之间来回接线连接、请确保有一个公共接地。 将示波器输出布置回这里、以便我们可以在数据输出时进行检查。

    使用此代码、我看不到您写入器件配置寄存器的内容。 校准寄存器是否已写入? 或者是否运行了任何校准命令? 看起来没有校准过、现在还可以。 您使用什么作为参考? 是否启用了内部基准? 我还需要有关原理图和器件连接的更多信息。

    此时、我不确定这是否是 ADS1148或微控制器的问题。 如果问题出在微控制器、最好也将问题发布到适当的微控制器论坛。


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

    吴约瑟

    在为时钟传输最后一个命令"0"后、我只得到0。

    START 和/RESET 为高电平。 /Drdy 正在转换我们在示波器上获得的信号、因为我从/Drdy 获取外部中断。 接地端是 ADC 和控制器的共同之处。

    否、我们不使用校准寄存器、因为我们最初只想检查数据。 我在 MUX1=0x10h 中获取内部基准写入。 连接按照图64完成。 串行接口连接、我只是将 VREFOUT 和 VREFCOM 保持断开状态、AVDD 为3.3V。

    我认为控制器没有任何问题。

          

    此致、

    AMI

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

    AMI、


    ADS1148上电时处于自动开始进行转换的状态。 在此状态下、您可以使用 SCLK 时钟输出数据、而无需执行任何类型的初始化。 只要您等待/DRDY、并在下一个/DRDY 到来之前时钟输出数据、就不会出现任何问题。

    我将最基本的系统组合在一起、以便从器件中读取数据。 下面是一个小方框图和设置图片:





    我已将 START 和/RESET 连接为高电平。 有一个分压器、基本上为我提供2V 基准电压和1V 输入电压。 我还将 SPI 通信连接到了 Total Phase Aardvark、以便可以从器件读取数据。 我施加电源、并检查/DRDY 是否以5SPS 数据速率(或200ms 的数据周期)输出。 即使示波器具有大量存储器、也很难看到、因为/DRDY 脉冲与整个数据周期相比非常小。

    然后、我使用 Total Phase Aardvark 从器件读取数据。 这是来自 SPI 的用户界面。



    然后、我向器件发送两个字节(16个 SCLK)。 实际上、DIN 始终为低电平、因此相当于发送0000h。 当我发送16个 SCLK 时、我得到3FD6h (16342d)。 您可以从示波器中看到以下内容:


    或近距离拍摄:



    如果我的基准电阻器是一个完美的2.4kΩ Ω、那么我的输入测量将是:

    测量值= 2.4kΩ* 16342 /(2^15)= 2.4kΩ* 0.4987 = 1.197kΩ μ A

    现在、我不确定您为何无法从器件中获取任何内容。 如果/DRDY 脉冲如您所述输出、则器件正在转换(这意味着 START 和/RESET 均为高电平)。 下面是我将从调试开始的方法:

    1.确保您的主器件确实在发送 SCLK、并确保 DOUT 不执行任何操作。

    2.验证从主设备到设备的所有连接。 确保通过 SPI 路径没有任何不良连接或不良焊点。

    3.查看发送器件的所有命令,并验证这些命令是否是您希望发送的命令。

    4.使用 RDATA 命令读取数据。 如果您意外(或出于目的)发送了 SDATAC 命令、除非您发送 RDATA 以读取数据、否则输出数据不会输出。

    再说一次、我不知道为什么数据不会输出。 我能够将该设置放在一起、以最少的设置和16个 SCLK 获取数据。 未向器件发送命令。 我要说、我确实需要对输入设置进行一些调试。 我的连接不好、输入范围过大、为我提供7FFFh 输出数据。 无论如何、获取数据并不困难。


    吴约瑟

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


    我有一段时间没有听到您的声音、因此我很好奇您是否能够从您的器件中获取读数。 从我上一篇文章开始、我使用了不带 MMB0的 ADS1148EVM 来控制器件。 相反、我使用了基本 SPI 控制来获取数据。 希望您能够获得类似的结果。

    现在我将关闭帖子、但如果您仍然遇到问题、请随时发帖。 如前所述、我想看一下显示 SPI 通信的示波器照片、以及对您所做配置寄存器设置的说明。


    吴约瑟