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.

[参考译文] ADS8584S:ADS8584S 处于串行模式冻结输出

Guru**** 2769405 points

Other Parts Discussed in Thread: ADS8584S

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1616952/ads8584s-ads8584s-in-serial-mode-frozen-output

器件型号: ADS8584S

我尝试在串行模式下使用 ADS8584S 和 STM32H7 微控制器来以大约 100ksps 的速率对 4 个通道进行采样。 我在低采样率(精确地对直流电压进行采样)下运行良好、在 100ksps 采样率下、它将准确的数据输出到我的 SPI 缓冲器中、但在我尝试添加一些信号处理代码后、数据不再有意义。 我查看了示波器、它仍在我提供的时钟边沿上输出位、但这些位没有随模拟输入端的电压而变化。 即使在我将我的代码从以前的版本恢复到工作版本后、它也一直这样做。 我想知道导致这种情况的是哪种关机模式或错误消息? 非常感谢!

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

    您好 Bobby、

    欢迎来到 TI E2E 论坛。

    您能否发布使用示波器或逻辑分析仪捕获的 SPI 时序? 您添加了什么类型的代码?

    BR、

    Dale

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

    https://drive.google.com/file/d/1KzBLmfPJ2KugAqcB6VlBiYuuOrHuoBjs/view?usp=sharing

    https://drive.google.com/file/d/1KzBLmfPJ2KugAqcB6VlBiYuuOrHuoBjs/view?usp=sharing

    您好、Dale、感谢您的答复。 上图显示了我的 SPI 对话的布线 — 顶部的黄色为 CONVST、蓝色为来自 ADC 的数据输出、紫色为芯片选择(未显示时钟)。 两者都是针对相同的 ADC 输入电压、但在第一个图中、它提供“冻结“响应、即使在更改输入电压时、我也会一直看到这个响应。 第二个问题是当我对其进行解码时、它实际上似乎在提供准确的值。  

    至于固件、我将使用两个同步计时器生成 CONVST 和芯片选择、然后使用该计时器触发 HAL SPI 驱动程序函数:  

    void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) {
    	if (telemetry_update_counter >= 150){
    		HAL_SPI_Receive_DMA(&hspi1, spi_rx_buffer, BUFFER_SIZE);
    		telemetry_update_counter = 0;
    	} else {
    		telemetry_update_counter++;
    	}
    }

    由于我的采样速度有多快,为每个 ADC 样本调用 HAL_SPI_RECEIVE_dma () 需要的时间太长,所以我试图用一个非常长的缓冲区调用它,希望我能够在稍后进行拼接。  

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

    哦,等我发送了两次相同的图像。 这是冻结后的一个、它不对电压变化做出响应: https://drive.google.com/file/d/1IF2gDAQZ4SxYt79Sig-5Gz6Nt0w39-wk/view?usp=sharing

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

    您好 Bobby、

    我们无法访问 google drive。 请直接上传时间。 此外、主要支持工程师将因在美国度假而回到下一个星期二办公室、因此请延迟响应。

    此致、

    Dale

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

    这样可以吗? 右边的是我不想要的 — 出于某种原因,无论测量的电压是多少,它总是从一堆 1 开始。  

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

    您好 Bobby、

    感谢您的响应和耐心。 看起来 SPI 线路上有很多振铃。 SPI 线路上是否有任何阻尼电阻来减少这种振铃?

    此外、您在哪里获得 HAL_DMA 函数? 您是否可以尝试只调用一次或两次函数、而不是循环?

    数据表部分为该器件定义了一些不同的运行模式(包括关断模式)  8.4.2.1.能否告诉我设备是否可以输入其中任何一项? 除此之外、没有显示新样本的一个原因是 ADC 未正确记录 CONVST 信号。 下电上电时、ADC 是否恢复正常运行?

    此致、

    Samiha

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

    尊敬的 Samiha:  

    我忘记在 SPI 线路中添加阻尼电阻 、但我肯定会在将来进行迭代、感谢您指出这一点。 我认为这个问题与我发送到 ADC 的复位信号有关 — 我更改了一些内容,使它们更清晰,与后续数据读取间隔更大,并且现在在 125ksps 下一切都正常运行。 非常感谢您的帮助!