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.

[参考译文] WEBENCH®︎工具:ADS8860IDGS

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

https://e2e.ti.com/support/tools/simulation-hardware-system-design-tools-group/sim-hw-system-design/f/simulation-hardware-system-design-tools-forum/962560/webench-tools-ads8860idgs

主题中讨论的其他器件:ADS8860LM6144OPA320LM1117

工具/软件:WEBENCHRegistered设计工具

尊敬的先生/女士:

我使用16位 ADS8860连接到支持32 Wroom。 今天、当我用1.5V 直流电压测试 ads8860并在示波器中检查 CONVST、SCLK 和 DOUT 信号时、我发现我在 ESP32代码中设置的 CLK 频率与示波器读数不匹配。 我在 ESP32代码中设置10kHz 时钟频率、但示波器中显示了115.740kHz 的时钟频率。  

ESP32和 ADS 8860之间的详细电路连接如下所示。

下图显示了在示波器中读取的 CONVST (黄色)、CLK 信号(绿色)和 DOUT (粉色)。 从图中可以看出、clk 频率为115.740kHz、而不是10kHz。 我不确定问题是由 ESP32微控制器造成的、还是我的电路连接有问题。  

问题1. 您能不能建议可能的原因是什么?

接下来、当我将输入电压更改为150uV DC 时、DOUT 信号的测量值为零。 详细电路图如下所示。

问题2.  下图显示了在示波器中读取的 CONVST (黄色)、CLK 信号(绿色)和 DOUT (粉色)。 从图中可以看出、DOUT 信号为零、读取 ESP 32微控制器为0V。 根据计算结果、ADS8860应该能够将模拟输入电压低至50uV (3.3V/65536)。 因此、我想检查我的电流电路连接是否正确? 如果我的电流电路连接错误、我在哪里犯错? 以及如何纠正这些错误? 以便我可以使用完整的输入电压范围。

最后、但同样重要的是、在上面的示波器图中、CLK 频率为1kHz。 但是、clk 信号(绿色)看起来像锯齿波形。 因此、我想知道时钟信号为什么看起来像锯齿波?

谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、 Q1。 您的示波器似乎出现测量误差。 如果您看一下 CLK 的缩放部分、时间刻度为200us、您有两个时钟周期。 这等于10kHz。 问题2. ADS8860的偏移规格典型值为+/-1mV。 这意味着您不能在每个部件上测量小于该值的电压。 您将需要添加一个可添加失调电压 的放大器、以便 ADC 能够测量低于1mV Q3的输入。 这似乎表明您的 MCU 正在将时钟引脚设置为高阻态、或使其在读取之间浮动。 如果将示波器通道设置为交流耦合、这也可能是测量误差。 我建议您对输入施加更大的电压、例如1V。 然后查看 ADC 输出结果是否接近此电压、以确认您与器件的通信正常。 此致、 Keith Nicholas 精密 ADC 应用
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Nicholas 先生:

    感谢你的答复。

    我想澄清您对问题2的回答。 您说过、我需要添加一个放大器、该放大器可以向 Vin 添加1mV 的失调电压、以便能够测量小于1mV 的 Vin。  

    我在输入端添加了加法放大器(请参阅下面的原理图)。 您能帮我检查原理图、它是否正确?

    最后、在我的代码中、我是否需要减去1mV 的失调电压值才能恢复实际输入电压? 例如、假设 Vin = 150uV。 在我向 Vin 添加1mV 偏移后、ADS8860 AINP 的电压将为1.15mV。 因此,在 ESP 微控制器程序中,我是否需要执行以下操作?

    V_measure = (ADC 读数* 3.3V/65536)- 1mV  

    谢谢、  

    Susan

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

    您好 Susan、

    您所采取的方法将添加随输入电阻变化的失调电压。

    您要测量的 Vin 范围是多少?  输入电阻器网络值是多少?  

    如果您希望测量0V (54uV 分辨率)至3.3V 的输入、则以下放大器配置应该起作用。  该电路将增加偏移和小增益变化、以使电压保持在 ADS8860的范围内。

    在软件中、您将需要调整偏移和增益。

    V_measure = 1.064516*[(ADC 读数* 3.3V/65536)- 100mV ]

    此致、
    Keith

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

    尊敬的 Nicholas 先生:

    感谢你的答复。

    我希望输入电压范围为60uV 至3.3V。

    下面的原理图显示了从 MEMS 振动传感器>缓冲器>带通滤波器>汇总放大器>电荷反冲滤波器> ADS8860的整个电路连接。

    我使用的是 LM6144轨到轨输入/输出运算放大器、而不是 OP292。 带通滤波器的截止频率较低、为10Hz、带通滤波器的截止频率较高、为1.5kHz。

    对于60uV 至3.3V 的输入电压范围、您可以建议使用 ADS8860的加法放大器配置吗? 我可以使用您在上一帖子中建议的加法放大器配置吗? 由于加法放大器配置可接受0V 至3.3V 的输入电压范围、因此我只需要60uV 的最小输入电压。

    最后、您能否帮助我检查我的电流电路配置是否支持10kHz 采样频率? 我使用3线配置、SPI CLK 频率为200kHz。

    谢谢、

    Susan。

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

    尊敬的 Nicholas 先生:

    今天、当我使用函数发生器的交流输入测试 ADS8860时、我发现 ADC 转换结果是错误的。

    电路连接的方框图如下所示。 我之前的帖子中显示了每个块的详细原理图。

    •SPI 时钟频率为400kHz、采样频率为5kHz。 使用- ADC 读数*(3.3/65536)将 ADC 读数转换为电压。 然后、我收集 ADC 读数1秒。 之后、我在 MATLAB 中执行快速傅里叶变换以检查幅度频谱。
    •时间信号和幅度频谱如下所示。 右侧图像是低通滤波器输出端的信号。 中间的图像是 ESP32收集的 ADC 读数。 左侧图像是 MATLAB 中 ADC 读数的幅度频谱。 在幅度频谱中、频率和幅度结果是错误的。
    •在前面的帖子中,您建议添加“加法放大器”以增加 ADS8860的1mV 偏移误差。 但是,我不知道怎么做。  我的输入电压可以在60uV 至3.3V 之间变化。
    因此、您能否建议如何针对我的电流问题构建加法放大器?
    谢谢、
    Susan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Susan、

    由于您具有带通滤波器、因此只需调整滤波器的增益即可将 ADC 的输入范围保持在可接受的范围内。

    右侧的上面波形看起来像10mVpp 信号、但采集的波形已饱和、这意味着 ADC 的输入大于3.3Vpp。

    请确保您的输入放大器提供正确的振幅电平。  滤波放大器的输出波形应在1.5V+/-1.4V 或0.1V 至2.9V 范围内。  这将使用 ADC 的大部分可用满量程输入范围并提供良好的结果。

    请 查看前端放大器并调整增益、使滤波放大器的满量程输出处于0.1V 至2.9V 的范围内。  (+/-1.4V、具有1.5V 直流偏置)

    2. 在您获得正确的输入振幅后、我们可以查看 ADC。   SCLK=200kHz 将支持10ksps 的采样率。

    请 将 ADC 上的输入电容器从2.2uF 更改为2.2nF。  2.2uF 过大、不会在10ksps 趋稳。

    此致、
    Keith

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

    Nicholas、您好!

    以前、我错误地单击了"这解决了我的问题"按钮。 问题尚未解决。

    我已经编辑了我的电路、并在 TINA 软件和实践中测试了电路。 对于+/-260mV 的输入交流电压范围、此电路的输出在0.2V 至3.0V 范围内。 滤波器带宽为10Hz 至1kHz。

    整个电路的原理图

    仿真结果- Vin =+/-260mV。

    我对硬件设置有几个问题。

    问题1. 在数据表的图63中、电荷反冲滤波器之前有缓冲器电路。 那么,我想知道我是否需要在电路的输出端放置缓冲器?

    问题2. 我能否在应用中使用数据表图63中给出的相同电阻器和电容器值[我想测量 MEMS 传感器5ks/s 时的振动数据]?  

    问题3. 我找不到5m Ω 的电阻器。 REF6003驱动器是否有任何替代电阻值?

    问题4. 如果我将 LM1117T (3.3V 输出)连接到 ADS8860的 AVDD、DVDD、DIN 和 REF 引脚、最大 SPI 时钟速率和数据采样率应该是多少?

    接下来、对于软件设置-  

    问题5. ADS8860支持什么 SPI 数据模式? 因为有4种不同的 SPI 数据模式、所以我无法在数据表中找到 ADS8860支持的 SPI 数据模式。

    问题6. ADS8860的投标顺序是什么(MSB 在前还是 LSB 在前)?

    问题7. 根据3线通信时序图、能否使用 Arduino IDE 中的"spi.transfer16 (val16)"一次读取全部16位?

    问题8. 根据 Arduino SPI 库、SPI 传输函数"spi.transfer (val)"需要 通过总线发送字节、该函数将返回接收到的数据。 因此、"spi.transfer"函数的输入参数应该是什么?

    问题9. 是否有使用 Arduino SPI 库的 ADS8860 SPI 通信示例 、因为我无法在 ADS8860和 ESP32之间进行 SPI 通信、但仍在工作? 因此、我想参考检查 Arduino IDE 代码。

    此致、

    Susan  

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

    您好 Susan、

    使用 OPA320的 ADS8860示例设计和电荷反冲滤波器组件已经过构建和测试、以满足 ADC 的全部性能要求。  如果以较低的采样率运行、则可以消除这种情况、但需要进行设计和仿真工作、以确定最大采样率和电荷反冲滤波器的正确值。  我建议您保留 OPA320和值、以便从 ADC 获得预测的性能。

    2. 如果使用 OPA320、则只能使用这些值。  否则、您需要调整这些值、并可能降低 ADC 采样率、以实现良好的性能。  有关如何设计该部分的详细信息、请参阅 TI 高精度实验室- ADC 第6节。


    https://training.ti.com/ti-precision-labs-adcs-introduction-sar-adc-front-end-component-selection?context=1139747-1140267-1128375-1139106-1128643

     SS 引脚上的5mOHM 存在误差、您可以为此电阻使用120k 欧姆。  对于与47uF 输出电容器串联的5m Ω 电阻、您可以使用20m Ω 和100m Ω 之间的任何值。  使用47uF 时、不建议使用5m Ω。

     SPI CLK 频率与采样率无关。  如果您使用 LM1117直接驱动基准引脚、则可能需要将采样率降低到10ksps 以下、但您需要在 SPICE 中运行详细分析或构建和测试、以确定确切的要求。

     5. SPI 模式00

     帧中的第一个启动位是 D15、因此 MSB 在前。

    问题7、8、9  我们没有 Arduino 的任何代码示例、我不熟悉用于回答您的问题的语法。  我建议在 Arduino 问答论坛上发布任何 Arduino 特定问题。

    但是、ADS8860没有任何内部寄存器。  Arduino 将在 MOSI 引脚上输出数据、因此在本例中只需写入0x0000h 即可。  为了传输数据、您需要一个16b (16 SCLK)传输帧、或者总共2个字节。

    此致、
    Keith