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.

[参考译文] ADS1247:ADs1247前几个中断未给出当前转换值。

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/564886/ads1247-ads1247-first-few-interrupts-not-giving-the-current-converted-value

部件号:ADS1247

大家好,  

      我们将ADS1247用于RTD设计。 当我按以下方式进行所有初始化并将转换开始为高延迟(5ms)低。 我确实遇到了中断。 但是,当我发送0x12读取24位值时,前几个中断不会给我转换的数据。 我正在使用STM32控制器。 但是如果我连续循环运行,在大约5到6次中断后,它开始提供预期的正确值。  

中断几次后,我确实得到了预期的差分电压。 另外,在转换信号的一个起点上,我得到了多(2)个中断。  

请给出建议。  

以下是我的代码:

UINT8_t setMUX0[3]={0x40,0x00,0x02};
UINT8_t setMUX1[3]={0x42,0x00,0x30};
UINT8_t setSYS0[3]={0x43,0x00,0x02};

ADC_PIN_NSS_SELECT
ADC_TON_SOC_高

HAL_SPI_TransmitReceive(&hspi1,(uint8_t *)setMUX0, recvdata,31000);// AIN1 AS +和AIN2 AS -

HAL_SPI_TransmitReceive(&hspi1,(uint8_t *)setMUX1,recvdata,31000);
HAL_SPI_TransmitReceive(&hspi1,(uint8_t *)setsys0,recvdata,31000);

ADC_TON_SOC_LOW
HAL_NVIC_EnableIRQ (EXTI2_3_IRQn);

同时(1)

 ADC_START();  

 HAL_DELAY (100);// 100 ms

}

void ADC_START (void)

ADC_TON_SOC_高
HAL_DELAY (5);// 5 ms
ADC_TON_SOC_LOW
}

字符ReacCommand[4]={0x12,0xFF,0xFF,0xFF};

void EXTI2_3_IRQHandler(void)//数据就绪引脚的中断处理程序。  

/*用户代码BEGIN EXTI2_3_IRQn 0 */

HAL_SPI_TransmitReceive(&hspi1,(uint8_t *)ReacCommand, ReadData,41000);// char ReacCommand[4]={0x12,0xFF,0xFF,0xFF};
ADCVal = 0;
ADCVal = ReadData[1]<<16 | ReadData[2]<<8 | ReadData[3] ;
TEMP =(浮点)(2.048 * ADCVal);
电压=(浮动)温度/0x7FFFFFF;


}

此致,

三州。

  

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


    您在读取的数据的前几个中断中获得了哪些数据? 获取您正在读取的数据的序列(原始十六进制值,而不是转换的电压)可能会很有帮助。 这些数据以及输入电压和参考电压可能有助于调试您的问题。 一个解释您正在测量的内容的示意图也可能很有帮助。

    如果这些值看起来像输入测量值已稳定,则可能是前端的任何外部输入筛选都需要更多时间才能稳定。 此外,如果对参考输入进行了过滤,则可能会出现与参考设置为其最终值相同的问题。


    吴若瑟
x 出现错误。请重试或与管理员联系。