主题中讨论的其他器件: ADS124S08、 ADS1248、 LMP90100
您好!
我已将 LMP90098与 PT-100 RTD 传感器集成、并通过 SPI 接口将 ADCout 提供给 MCU (具有 HAL API 的 STM33控制器)
LM90098的初始配置:
空 LMP90098_Init_Config (SPI_HandleTypeDef * hspi)
{
LMP90098_Write (hspi、0x01、0x08); //参数2-寄存器地址; 参数3-值
LMP90098_Write (hspi、0x03、0x00);
LMP90098_Write (hspi、0x08、0x00);
LMP90098_Write (hspi、0x10、0x02);
LMP90098_Write (hspi、0x11、0x83);
LMP90098_Write (hspi、0x12、0x2A);
LMP90098_Write (hspi、0x13、0x00);
LMP90098_Write (hspi、0x17、0x01);
LMP90098_Write (hspi、0x20、0x41);
}
读取的 ADC_OUT 值如下所示、
uint32_t ADC_Read (SPI_HandleTypeDef * hspi)
{
uint8_t ADC_RxBuff[6]={0x10、0x01、0xCA、0x00、0x00、0x00}; //从地址0x1A 开始读取3个字节的数据
uint32_t adc_out=0;
Val=LMP90098_read (hspi、0x1E); //读取寄存器0x1E 以 检查通道是否进行扫描
if (Val)>1==0)
{
LMP90098_Write (hspi、0x1F、0x80);
LMP90098_Write (hspi、0x17、0x02);
IF (DRDY_Flg)
{
DRDY_Flg = 0;
HAL_GPIO_WritePin (GPIOA、GPIO_PIN_4、GPIO_PIN_RESET); //将 CSB 置为有效
HAL_SPI_Receive (hspi、ADC_RxBuff、6100); //读取 ADC_DOUT
HAL_GPIO_WritePin (GPIOA、GPIO_PIN_4、GPIO_PIN_SET); //取消确认 CSB
}
ADC_OUT =((ADC_RxBuff[5])|((ADC_RxBuff[4]<8)|(ADC_RxBuff[3]<<16));
返回 ADC_OUT;
}
返回0;
}
下面是我们板中 AFE 的原理图:
如果 ADC_DOUT 是2字节值、则 ADC_DOUTH 将填充什么?
2.如何提高 ADC_DOUT 精度?
3、监测 DRDYB 信号是否足以识别 ADC_DOUT 中的新输出、或者是否应该甚至读取寄存器0x18中的值。
在相同的温度下、ADC_DOUT 值会波动、这可能是什么问题?
请帮我解决这个问题。