主题中讨论的其他部件: ADS114S08,LMP9.01万
您好,
我正在尝试按照规格文档第26页中描述的步骤对LMP9.008万执行系统校准。
说明似乎不完整,没有提到如何准备校准流程,也没有关于初步要求的信息。
我尝试校准CH0,而不是立即校准CH1。 这个过程有时会成功,但我无法控制。
是否有人尝试过系统校准?
下面是我正在使用的一些代码序列:
//校准准备
//重置LMP
SPI_Send(0x10);
SPI_Send(0x00);
SPI_Send(0x00);
SPI_Send(0xC3);
延迟(1000);
//设置通道CH0配置
SPI_Send(0x10);
SPI_Send(0x02);
SPI_Send(0x01);
// 26.83 SPS,增益=1,路径中没有缓冲区
SPI_Send(0x41);
//设置通道CH1配置
SPI_Send(0x10);
SPI_Send(0x02);
SPI_Send(0x03);
// 26.83 SPS,增益=1,路径中没有缓冲区
SPI_Send(0x41);
//设置时钟
SPI_Send(0x10);
SPI_Send(0x01);
SPI_Send(0x02);
//内部时钟
SPI_Send(0x20);
// CH0系统校准(CH1系统校准顺序相同)
SPI_Send(0x10);
SPI_Send(0x01);
执行{
数据= SPI_Send(0x8E)和0x2;
}同时(data != 0x0);
//设置信道扫描模式
SPI_Send(0x10);
SPI_Send(0x01);
SPI_Send(0x0F);
SPI_Send(0x00);
//校零
//-----------
//将通道CH0设置为VIN7 (GND)
SPI_Send(0x10);
SPI_Send(0x02);
SPI_Send(0x00);
// VINP:VIN7,VINN:VIN7 (GND)
SPI_Send(0x3F);
延迟(100);
//将SCALCN设置为偏移系数确定模式
SPI_Send(0x10);
SPI_Send(0x01);
SPI_Send(0x07);
SPI_Send(0x01);
//等待校准结束
执行{
数据= SPI_Send(0x87);
}同时(data != 0x0);
//刻度校准
//-----------
//将通道CH0设置为VIN6
SPI_Send(0x10);
SPI_Send(0x02);
SPI_Send(0x00);
// VINP:VIN6,VINN:VIN7 (GND)
SPI_Send(0x37);
//启用IB1源电流
SPI_Send(0x10);
SPI_Send(0x01);
SPI_Send(0x02);
// 1000uA电流->预期读出1.0V
SPI_Send(0x2A);
//将1.0V值设置为CH0_SCAL_Gain (0x67A5)
SPI_Send(0x10);
SPI_Send(0x03);
SPI_Send(0x03);
//SPI_SendData (0x67);
SPI_Send(0x7F);
SPI_Send(0x04);
//SPI_SendData(0xA5);
SPI_Send(0x67);
延迟(100);
//将SCALCN设置为增益系数确定模式
SPI_Send(0x10);
SPI_Send(0x01);
SPI_Send(0x07);
SPI_Send(0x02);
//等待校准结束
执行{
数据= SPI_Send(0x87);
}同时(data != 0x0);
另一个问题与ADC条目上的预期值1.0V有关。 增益校准的计算值为0x67A5,但所需结果是通过使用0x7F67获得的。
请注意!
谢谢!
克里斯蒂安