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.

[参考译文] ADS8332:无法读取数据/只获取"FFF"

Guru**** 2522770 points
Other Parts Discussed in Thread: ADS8332

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/871891/ads8332-can-not-read-data-just-get-ffff

器件型号:ADS8332

大家好、

我刚刚开始使用 ADS8332。 首先、我尝试从单个通道读取数据以证明我的 ADC 工作正常、但即使这样、也只显示最大值(65535)。

我使用 ESP32 mikrocontroller、到目前为止已获得此代码:

#include 
#include 

#define SS 5
#define SCLK_Pin 18
#define MOSI 23
#define MISO 19
#define Reset 22
#define CONVST 17
static const int spiClk = 40 * 10^6;//40MHz

int data;

void setup()(
Serial.begin(115200);

pinMode (SS、输出);
digitalWrite (SS、HIGH);
//pinMode (CONVST、OUTPUT);
//digitalWrite (CONVST、HIGH);
SPISettings (spiClk、 MSBFIRST、SPI_mode2);
SPI.begin(SCLK_Pin、MISO、MOSI、 SS);

digitalWrite (SS、low);
SPI.transfer16 (0xE07D);//0b1110000001111101
Serial.println ("上载的 CFR");
SPI.transfer16 (0x7000);//0b011100000000
Serial.println ("选定的通道7");
Serial.transfern (SPI.16);/ XC000 (尝试返回。 ->也不能
使用 digitalWrite (SS,高电平);
}

void loop(){
digitalWrite (SS,低电平),
// digitalWrite (CONVST,低电平);
// digitalWrite (CONVST,低电平);// digitalWrite (CONVST, 高电平);
// spi.transfer16 (0xD000);
//数据= spi.transfer16 (0);
数据= spi.transfer16 (0xD000);
digitalWrite (SS、高电平);
Serial.println (data);
延迟(1000);
}

已出注释的行是尝试使其正常工作。

提前感谢!

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

    你好、Lasse、

    欢迎访问 TI E2E 社区。

    为了进行调试、我建议不要写入配置寄存器并使用默认复位值0xFFF。  在此模式下、ADC 将使用内部转换时钟、然后您可以复制数据表图1中显示的时序波形。

    请使用4通道示波器捕获波形/CONVST、/CS、SCLK 和 SDO、并在此处发布副本。

    此致、
    Keith Nicholas
    精密 ADC 应用

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

    您好、Keith、

    对默认设置的更改也会使我获得最大值。

    这是捕获的数字信号(与上面的代码一起运行):

    1. CS
    2. SCLK
    3. SDO
    4. CONVST

    谢谢、致以最诚挚的问候!

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

    你好、Lasse、

    我假设波形如下:

    1./CS

    SDO

    SCLK

    4./CONVST

    在整个帧期间、/CONVST 线路不会切换且为低电平。  /CONVST 需要先切换为低电平、然后切换为高电平才能启动转换。  在1.65uS 的最大转换时间之后(使用内部转换时钟时)、您可以将/CS 置为低电平并将数据从器件中计时。

    希望对/CONVST 进行脉冲低电平将使器件正常工作。  当/CS 变为低电平时、MSB 启动、然后在以下每个 SCLK 下降沿上启动。  由于当/CS 被拉至低电平时 SCLK 为高电平、SCLK 的第一个下降边沿将下一个位移出到 SDO 上。  在这种情况下、您的 MCU 需要在 SCLK 下降沿捕获数据、以便正确捕获 MSB。

    此致、
    Keith

      

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

    您好、Keith、

    很抱歉、你是对的、我对端口感到困惑。

    现在、我将 CONVST 切换为低电平2us、然后在尝试读取该值时将 CS 切换为低电平。 但 SDO 通道看起来很奇怪。 看起来更像是放电电容器、而不是数字信号。 (这就是我每次都获得最大值的原因)我的 SDO 线路连接到引脚13。

    SDO 信号看起来是这样吗?

    1. COVST
    2. SDO
    3. SDI
    4. CS

    或概述:

    您是否有任何此类 ADC 的示例代码、我可以将其与我的 ADC 进行比较?

    谢谢、此致、

    拉斯

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

    您好、Lasse、

    ADC 似乎未正确上电或保持在复位状态。  (以下为 TSSOP 封装的引脚编号。)

    请测量引脚17 VA 电源引脚上的电压。  验证它是否处于2.7V 至5.5V 的范围内。

    2. 请测量 VBD 电源引脚16上的电压。  验证它是否处于1.65V 至 VA+0.2V 的范围内。

    3.确认/RESET 引脚8为高电平、等于 VGD 电源电压。  (根据示波器图片、我假设为3.3V。)

    4. 验证 REF+引脚18是否在1.2V 至2.525V 的范围内。

    此致、
    Keith

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

    您好、Keith、

    我的复位引脚一直处于低电平。 感谢您的建议!

    我的参考+与 VA 相同。 两者都大约为3.6V。 这是不是很好吗? 因为它看起来我得到了正确的值。

    此致、

    拉斯

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

    您好、Lasse、

    很高兴听到设备正在工作!

    ADC 将正常工作、但您超出了建议的条件、无法满足公布的规格。  为了获得最佳性能、我建议使用2.5V 或3.0V 基准值并将 VA 电压降至3.3V。

    此致、
    Keith