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.

[参考译文] ADS124S08:即使在所有条件良好时,DRDY也不会变低

Guru**** 2563550 points
Other Parts Discussed in Thread: ADS124S08, ADS1248

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/638641/ads124s08-drdy-never-goes-low-even-when-all-the-conditions-are-good

部件号:ADS124S08
在“线程: ADS1248”中讨论的其他部件

嗨,Forum,

我们一直将ADS1248与STM32一起用于4线RTD测量应用。 通过新设计,我们将ADS1248更改为ads124s08,并将STM32更改为STM32不同的封装。 我们在一个板上有14个ads124s08,每个7个都与一个SPI连接。

现在我面临着一个问题,即DRDY引脚永远不会变低。 但下面的工作正在进行中。

1.能够与地址124s08通信。

2.能够根据设计要求读写寄存器

从数据表中,我了解DRDY必须为低值,力矩复位引脚和起始引脚都是高帮助值。

下面是我的ads124s08初始化代码。

void ADS124s08_Initialize(void)
{
uint8_t i, j, adcchannelnumber;
/* clear buffers */
	for (j = eADC1; j < TotalNumberofADC;j++)
	{
		for (i =0; i < eNumberOfADS124s08; i+){
		
			ads08_i=<_registeri;<_i=0;<_registeradj=<_<_<_<_<_adj;<_<_adj=0;<_adj<_<_<_<_<_adj<_<=0;<_adj<_<_<_<_<_adj<=<_adj<_<_<=0;
		
	

	
	
		
	

	i++)
	{
		ads124s08_raW_data[i]= 0;
		ads124s08_programmable_gain [i]= pga_4;
		ads124s08_sample_rate [i]= dor_400_0sps;
	}

	用于(channel = eADC1;channel < 124NumberofADC;channel ++)// start pin 124s08_gPI_chin;
	
		doesfall
	(gpin = gpin = gPI_chall_pset_chall_chall_pset_chall_challs)

	

	j++)//已重置所有ads124s08
	{
		HAL_GPIO写入引脚(ADS_RESET[j].port,ADS_RESET[j].pin,GPIO PIN重置);
		DelayMs(2);
		HAL_GPIO写入引脚(ADS_RESET[j].port, ADS_RESET[j].pin,gPIO_PIN_SET);
	}
		DelayMs(2);
	
	ADS124s08_reset_status_reg();//清除状态寄存器

	__NOP()中的POR标志;
	用于(adcReadelnumber = eADC1;adcchannelnumber < TotalNumberofADC;adcelnumber +)/通道
	
		
		
		数_ADxADs08_channel08_ADc_ADc_ADc_ADs08_ADc_adsfunregister_ads124_ad_adc_adc_adc_adcadc_adcads124_adc_adc_adcads_通道寄存
	
	
	器
	
	ADS124s08_ReadRegisters(eADC3);
	ADS124s08_ReadRegisters(eADC4);
} 

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

    你好,Dhanaraj,

    欢迎参加论坛!  您如何确定DRDY引脚未从高变为低?  如果起始针脚高,您应该能够将示波器探头放在DRDY针脚上,并在所选数据速率期间看到它从高转换为低。

    您发送了很多设置代码,但没有关于DRDY的任何信息。  您是轮询DRDY还是使用中断?  您是否已验证GPIO设置正确?

    此致,

    Bob B

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

    Bob,您好!

    感谢您的回复。 我通过示波器观察DRDY引脚 ,以查看是否存在脉冲。 我已将DRDY引脚配置为输入。

    在我的代码中,我只是轮询DRDY引脚,因为我没有读取相同ads124s08采样率的转换数据。 这种方法是由另一位工程师实施的,我可能想问一下,通过设置高采样率(640sps)和只读几次(4 Hz),性能是否有任何差异?

    但我的紧迫问题是提起主板,ads124s08是唯一悬而未决的问题。 设置寄存器似乎没问题。

    	ads124s08寄存器[EPGA]	=(uint8_t)((ads124s08_programmable_gain [aSensor]<< PGA_POS)|(PGA_EN <PG_CTL_POS));
    	ads124s08寄存器[eVBARATE]	=(u8_SIAS)寄存
    		
    		
    		
    	器[124u_1<_POS<_IMu_1=<_IMu8_BIS_1<_RE1=(e088_POS<_I)<_I)<IMu_BIAS_I =<_1<_1= e085_I =(e8_I) e8_I = e8_I =寄存器<_1<IMu8_1=(e085_I) e8_I =寄存器<_1<_I =(e8_I 	
    	
    	
    	
    	
    	else
    	{
    	ads124s08寄存器[eIDACMUX]=(uint8_t)(( IDACMUX_DISCNT<I1MUX_POS)|( IDACMUX_AIN0<I2MUX_POS))}
    	
    
    静态void ADS124REGs(uint8_DROG_NO_DSTRE08;
    
    	<I=1241_NO_IP_NO_DROTE08=
    	
    		
    		
    		
    	
    
    
    静态ADS124TE_AD_AD1TE08=
    
    	
    	
    	
    	
    
    	IF ((number >0)&&(number + regAddr < eTotalNumberOfRegADS124s08)
    	{
    		bytestosend[i+]= cmdWREG|regAddr;
    		bytestosend[i+]= numbersofRegisters-1;
    
    		while (number >0)	
    		{
    			number--;bytestosend[i+]=[testosend[ipx,
    			Idrs08v+]
    		
    
    		;byspendsipegreby>
    	
    }
    
    

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

    你好,Dhanaraj,

    遗憾的是,查看您的注册写入代码并不能帮助我确定许多内容。  最好是查看通信的范围或逻辑分析器镜头以进行验证。  这是唯一真正可靠的确认。

    如果您正在探测DRDY (与DOUT/DRDY相对),并且起始引脚较高,则即使在默认寄存器设置下,您也应该看到DRDY切换,前提是AVDD-AVSS和DVDD都已正确连接和通电。 复位也必须为高。

    此致,

    Bob B