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.

[参考译文] ADS8345:ADS8344/45 EVM 转换问题

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1291256/ads8345-ads8344-45-evm-conversion-issues

器件型号:ADS8345
主题中讨论的其他器件:ADS8344

我有一个评估板、其中包含来自不同供应商的 Cortex M4 MCU。 电路板具有 VDD = 3V3、GND、5V 和 DAC。 因为您猜我没有 DGND、AGND 等不同的接地平面。

请参阅以下信息。

我向 CH5馈送正弦信号、  

我的 SPI RX 数据结构为:

union ADS8344{                      
	uint8_t reg;
	struct{
		uint8_t PD0:1;
		uint8_t PD1:1;
		uint8_t SGL_DIF:1;
		uint8_t res:1;
		uint8_t A0:1;
		uint8_t A1:1;
		uint8_t A2:1;
		uint8_t S:1;
	}u8reg;
};
  spi_tx.u8reg.S = 1;
  spi_tx.u8reg.A2 = 1;
  spi_tx.u8reg.A1 = 1;
  spi_tx.u8reg.A0 = 0;
  spi_tx.u8reg.res = 0;
  spi_tx.u8reg.SGL_DIF = 1;
  spi_tx.u8reg.PD1 = 0;
  spi_tx.u8reg.PD0 = 0;

我的 ADC 映射函数

#define VREF 2.5
#define LSB_VOLTAGE (2*2.5/65536)


float convertToVoltage(uint16_t rawValue) {
    // Check if the value is in the negative range
    if (rawValue & 0x8000) {
        // Convert from 2's complement to signed integer
        int16_t signedValue = -(int16_t)(0xFFFF - rawValue + 1);
        // Calculate the voltage for the negative range
        return (float)signedValue * LSB_VOLTAGE;
    }
    else {
        // Calculate the voltage for the positive range
        return (float)rawValue * LSB_VOLTAGE;
    }
}

这里是我的朋友

我知道我从 SPI 收到了响应、但值错误。 我测得 IC 的 Vref 11引脚电压为2.5V。  

您能告诉我我还能做些什么吗?

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

    尊敬的 Ismail:

    您能否提供显示 ADS8344/45的 SPI 控制线的逻辑分析仪或示波器图?  或许也包含一些直流转换结果?  

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

    SPI_TX.u8reg.S = 1;

    SPI_TX.u8reg.A2 = 1;

    SPI_TX.u8reg.A1 = 1;

    SPI_TX.u8reg.A0 = 0;

    SPI_TX.u8reg.res = 0;

    SPI_TX.u8reg.SGL_DIF = 1;

    SPI_TX.u8reg.PD1 = 1;

    SPI_TX.u8reg.PD0 = 0;

    我希望这些帮助。

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

    它对您有所帮助。  您是否可以应用固定直流电压并告知我们预期结果与实际转换结果之间的差值?

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

    这个是0VDC、其行为有点有趣、数字没有显著变化、"数据"在16732-35之间来回变化。   

    这是1VDC、 "数据"在22882-5之间变化。 它正变得越来越奇怪。

    这是2VDC、行为类似、我的映射函数上似乎有一些东西。 但 Vref 是2.5伏。

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

    您有要分享的原理图吗?  您如何处理 COM 引脚?

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

    我实际上只是使用 ADS8344/45 EVM 评估板来了解我们在生产板上观察到的另一个错误。 ADS8345仅在过零点上产生干扰、为了理解这一点、我们订购了 EVM 板、但我尚未获取数据。

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

    ADS8345具有二进制补码输出、输入电压范围为 Vref。  正常操作是将 COM 引脚设置为2.5V、这是在 EVM 上通过引脚1-2上的 W5完成的。  您的电压施加到 ch5 -输入为0V、您应该具有接近满量程(-)的代码、即0x8000。  在2.5V 时、你将处于中标度或0xFFFF/0x0000阶的某个位置。  在输入电压为5V 的情况下、您应该会得到 FS +或0x7FFF。

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

    我不明白。 我预计-2.5V 至+2.5V 的测量范围不像您所说的那样。

    BTW、EVM 板上还有 ADS8345。

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

    ADS8345的输入限制为-300mV 最大值(请参阅绝对最大值表和第3页的顶部)。  对于2.5V 基准、当您有5V 电源时、输入范围是0-5V。

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

    我明白、如果我为 ADC 馈送一个峰峰值为5V 的正弦信号、我应该期望原始值为0、即0x0000和0x7FFF @+2.5VDC 和0x8000 @-2.5VDC。

    我是否给了一个损害,因为我喂了高达-2V,这是在边界外?

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

    尊敬的 Ismail:

    如果超过模拟输入限值、则可能会发生损坏。

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

    您好、Tom、  

    感谢上帝,它正在工作。  

    但我仍然难以理解该运行间隔。

    我知道我必须更早地查找输入电压限值 、但是数据表显示 IC 支持双极输入、表中显示0V 为量程中点、并且描述为 在 Vref = 2.5VDC 的情况下它将具有摆幅[-2.5V、+2.5V-1LSB]。  

    它是工作知道,它应该是,但我的思想仍然令人困惑...

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

    尊敬的 Ismail:

    ADS8345输入为 Vref 周围的 Vref。  请查看图2、它可能有助于您理解。  输入基于 COM 引脚或另一通道进行差分采样、其中两个输入都通过(通常) Vref 的共模电压进行采样。