TI中文支持网
TI专业的中文技术问题搜集分享网站

LMP90098: 器件IB2无电流输出

Part Number:LMP90098Other Parts Discussed in Thread: ADS124S08

程序如下。设置寄存器ADC_AUXCN时,可正常设置,并且可以读取到写入的值是0x2A,但是用万用表测量2K电阻两端,无电压,说明无电流输出,经测量,IB2管脚对地电阻是2.1K。电路如下图所示。

不知道是不是还有个什么启动设置?

/*ADC_AUXCN:ADC Auxiliary Control(Address 0x12)
使用内部时钟,1000μA电流
要使用内部时钟,请将CLK_EXT_DET设置为1,CLK_SEL设置为0
*/
for(i=0; i<10; i++) //最多设置10次
{
HAL_GPIO_WritePin(SPI1_NSS_GPIO_Port, SPI1_NSS_Pin, GPIO_PIN_RESET);
command[0] = 0x10; // 0x10:write address,0x90:Read Address
command[1] = 0x01; // Upper Address Byte:0x1 command[2] = 0x02;
/* bit 7=0: Reserved;
bit6 RESET_SYSCAL=0:Preserved even when "REG_AND_RST"=0xC3;
bit5 CLK_EXT_DET=1: default, external clock is operational;
bit4 CLK_SEL=0: default, select internal clock
bit[3:0] RTD_CUR_SEL = 0xA: 1000μA
*/
command[3] = 0x2A;
HAL_SPI_Transmit(&hspi1,&command[0],4,100); HAL_GPIO_WritePin(SPI1_NSS_GPIO_Port, SPI1_NSS_Pin, GPIO_PIN_SET);
j=100;
while(j–);
//读取设置的值,看下是否符合预期,测试是通过的
HAL_GPIO_WritePin(SPI1_NSS_GPIO_Port, SPI1_NSS_Pin, GPIO_PIN_RESET);
command[0] = 0x10; // 0x10:write address,0x90:Read Address
command[1] = 0x01; // Upper Address Byte:0x1
command[2] = 0x82;
HAL_SPI_Transmit(&hspi1,&command[0],3,100); HAL_SPI_Receive(&hspi1,&calibration[0],1,100);
HAL_GPIO_WritePin(SPI1_NSS_GPIO_Port, SPI1_NSS_Pin, GPIO_PIN_SET);
if((calibration[0] & 0x7F) == 0x2A) {
break;
i = 10; //经添加break语句测试,第一个循环即可校准完成
}
else if (i == 9)
{
//报错,不能初始化AUXCN,地址0x12
}
}

Amy Luo:

您好,

感谢您对TI产品的关注!

您的问题周一我将给您答复

,

yang wenhua:

好的  感谢,我将我这边的初始化设置说一下,这些设置都是设置成功了的,因为我也读了一遍。

1. SPI_HANDSHAKECN,地址0x01,设置的是0x08;

2. SPI_DRDYBCN,地址0x11,设置的是0x87;

3. CH0_CONFIG,地址0x21,设置的是0x36;

4. BGCALCN Address,地址 0x10,设置的是0x03;

5. CH0_INPUTCN,地址0x20,设置的是0x48;

6. ADC_AUXCN,地址0x12,设置的是0x2A;

7. CH_SCAN,地址是0x1F,设置的是0x00;

其它内容我未设置。

我微信15919927219,如果方便的话,可以加微信沟通,谢谢!

,

yang wenhua:

之前初始化CH_SCAN,未查询CH_STS寄存器的状态,现在读取了一下,CH_STS反馈是0x02,即CH_SCAN register is not ready to be programmed,那么很可能是这个问题。

Channel Scan not ready的话,那什么时候才会ready呢?

,

yang wenhua:

在写入CH_SCAN之前,我未读取CH_STS,现在读取了一下,发现反馈是0x02,即CH_SCAN register is not ready to be programmed,那问题是,这个CH_SCAN什么时候才能ready呢?

,

Amy Luo:

关于寄存器CH_STS中 CH_SCAN_NRDY bit 的值,数据表9.4.2 章节有说明,如下截图,即 CH_SCAN 寄存器是双缓冲的。 即,用户输入存储在slave buffer 中,直到下一次转换开始,在此期间,用户输入被传输到master buffer.。 写入slave buffer 后,后续更新将被忽略,直到传输到master buffer.。 因此,对 CH_SCAN 寄存器写入之前,需判断 CH_SCAN_NRDY 位,为0才可以写入。

CH_SCAN寄存器的写入应该不会影响 IB2电流的输出,我再具体看下IB2这块的原因

,

Amy Luo:

LMP90098的供电电压是多少?我担心会超出VA-0.8V这个范围:

除了VA电压 和寄存器ADC_AUXCN配置,我认为应该没有什么可以影响IB2的输出了;

您测试了几块电路板是这种情况?您可以多测试几块电路板吗,以排除焊接问题

,

yang wenhua:

换了一块板子,可以了,有输出了。我看了下焊接,应该没啥问题,不知道是不是配置中,是否把这个板子烧掉了。

谢谢您的答复。四线的RTD,有没有标准例程?

,

Amy Luo:

很高兴有输出了;

下面链接是一个四线RTD低侧参考的应用示例,是使用的ADS124S08,但设计思路是一样的:

https://www.ti.com/lit/an/sbaa336a/sbaa336a.pdf

另外,A Basic Guide to RTD Measurements 这个文档希望对您也有帮助:

https://www.ti.com/lit/an/sbaa275/sbaa275.pdf

,

yang wenhua:

谢谢,暂时没有新问题,多谢。

,

Amy Luo:

好的,别客气

赞(0)
未经允许不得转载:TI中文支持网 » LMP90098: 器件IB2无电流输出
分享到: 更多 (0)

© 2024 TI中文支持网   网站地图 鲁ICP备2022002796号-1