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.

关于ADS1259自动校准

Other Parts Discussed in Thread: ADS1259, DAC8832

这是DS上的描述

void Calibration_1259(void)
{
Shield_SamplingInterrupt(); // ÆÁ±ÎÖжÏ
/*Set the gate control mode (PULSE bit = 0)*/

ADC_StartConv();                                          /*Start the ADS1259 conversions*/
DAC_Write(0x8000);                                         /*Apply the appropriate input to the ADS1259 (zero)输出0V*/
delay_ms(20);                                                   /*Allow time for the input to completely settle*/
ADC_WR_CMD(OFSCAL_1259);                   /*Send the OFSCAL command, as appropriate*/
while(ADC_DRDY == 1);
ADC_StopConv();
delay_ms(10);
ADC_StartConv();                                           /*Start the ADS1259 conversions*/
DAC_Write(0xFFFF);                                     /*Apply the appropriate input to the ADS1259 (full-scale)输出2.5V*/
delay_ms(10);                                                /*Allow time for the input to completely settle*/
ADC_WR_CMD(GANCAL_1259);                /*Send the OFSCAL command, as appropriate*/
while(ADC_DRDY == 1);
ADC_StopConv();

Open_SamplingInterrupt(); 
}

这是我根据数据手册描述写的校准程序。

校准后的读到的值完全不对。

望TI工程师指导

  • 你的系统是还有一个DAC的输出给ADS1259?

    在你的程序中没看到设置 PLUSE 位; 没看到你在给ADS1259输入并等该输入稳定后读取ADS1259的转换结果; 没看到设置OFSCAL寄存器设置的具体值是什么!

    建议先了解一下ADC校准的一般流程,可以参考文档SPRAAD8A:http://www.ti.com/sitesearch/docs/universalsearch.tsp?searchTerm=SPRAAD8A#linkId=1&src=top

  • 是的,我的系统还有一个DAC8832;

    PLUSE无论是默认值还是在我的初始化程序中都为0;

    DA输出电压后,等待20ms 足够电路电压稳定了。

    发送校准cmd之后AD自动校准,OFC FSC 6个寄存器自动保存了校准之后的值,为什么主机还要获取转换结果呢?转换结果的值又有什么用呢?

    这个片子应该不用靠主机校准的吧。

    另外,上面的链接我也看了 。

    我认为AD校准其实就是2点校准。

    还有满量程校准的时候不是准确的2.5V 或者-2.5V,这个 有影响吗

  • 如果是用的是芯片自动校准,那么校准的是芯片的,非系统的。

    这种情况在校准过程中主机不需要获取转换结果。

    gain error校准的时候,输入需要是准确的满量程!不然的话芯片认为你是满量程输入,实际采集结果并非满量程,那么校准后就会导致有增益误差

  • 感谢你的帮助,目前如果只用offset校准的时候,结果正常。如果加上gain校准,结果出现很偏差,比如-1.2V得到的转换结果是-2.4V左右。

    我的满量程确实不是准确的2.5V,大概有4mV的误差,但是我想结果应该不会有这么大的偏差。

    ADS1259是有极性的AD,测量范围是-2.5V~+2.5V,gain校准的时候输出满量程是两者任意取一个吗?我总觉得有些问题。