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.

[参考译文] ADS8661:无法读取1MSPS?

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1084015/ads8661-not-able-to-read-1msps

部件号:ADS8661

您好,

  我使用的是 stm32h7,我能够读取 ADS8661 IC 到 HAL_SPI_receive()的12位 ADC 值,如代码中所示(每循环它需要13us), 但当绘制和计算采样率时,我只能在25度左右读取一个样本(我得出这一结论是因为我打开了要在20毫秒后监控的信号,所以我将其作为参考)

以20Mhz 运行 SPI_clock。  

SPI 初始化以供参考

我不知道哪里出了问题。是否有办法进一步优化以获得1MSPS?

for(int i=0;i<3000;i++)
	{

		//__HAL_TIM_SET_COUNTER(&htim4,0);
		while(!(GPIOI->IDR &(1<<5))); //monitoring RVS Pin
	 	GPIOI->ODR &= ~(1<<0); // CS pin Low

		HAL_SPI_Receive(&hspi2, data_rcv ,2,1); // reading 2 bytes at a time

		GPIOI->ODR |= 1<<0;  //CS pin high
			  temp[temp_cnt]=((data_rcv[0]<<8)|data_rcv[1])>>4;
			  temp_cnt=temp_cnt+1;
		//  counterCount=TIM4->CNT;
	}

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

    您好 

    毫无疑问,ADS8661支持高达1.25 Msps 的采样率。 您是否正在接收模拟步进信号? 您来自 ADC 的转换代码是否与您的模拟输入信号相对应?  您能否提供您的示意图来审查和使用示波器捕获的/CS,SCLK,SDO 和 SDI 的正时图以进行检查?

    谢谢(&W),

    戴尔

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

      

    您好,戴尔,  

        您是否正在接收模拟步进信号? 是的
        您来自 ADC 的转换代码是否与您的模拟输入信号相对应?  是的 ,使用公式(ADC_VAL-2048)*(6/1000),因为我们使用的是默认的±3×VREF。  

        您能否提供您的示意图来审查和使用示波器捕获的/CS,SCLK,SDO 和 SDI 的正时图以进行检查?

         ——我已经提出了同样的要求,一旦获得批准,我将分享。  

    但是,尽管我们还有其他任何可以尝试的方法,通过该代码来优化(因为我们已经在测量每环13-14 us)。 我的意思是,通过计时器切换大约300 ns 的 CS 引脚,并通过 HAL_SPI_receive()一次读取多个值。 [这会有帮助吗?]。

    谢谢,此致,

    维贝什。

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

    你好,维贝什。

    ADS8661集成了一个具有15kHz 带宽 的 LPF 滤波器,此 LPF 需要88us 稳定时间才能实现12位1/2LSB 的精度。 要对步进信号进行采样,您需要具有宽带宽滤波 器或 没有滤波器(低电压精密 ADC)的 ADC。 您是否只需要单通道12位 ADC? 您的最大输入信号是多少?

    此致,

    戴尔