C2000有3代产品2812,28335,28035。他们的ADC说是12位,但是很多人做不到,一般认为他们的ENOB是10.1,10.9,10.4.
但其实针对C2000的ADC说ENOB并没有很大意义。因为在测试交流电时ENOB和实际精度并不是1:1的。而测量直流电的时候ENOB却包含了,INL,offset error,gain error....
而TI的datasheet给的相关参数又给人以误导,以28335为例,datasheet中给的offset error ±15LSB,Gain error ±30LSB,是经过adc_cal()矫正后的值;
这里的Gain error 是极端值,即C2000工业品在-40C - 125C,量程在0~3V之间的极限值;实际上Gain error是会因为输入值大小而改变,比如3V的时候是30LSB的Gain error,1.5V的时候就是15LSB。还会因为内部参考的温飘而变化。通常情况下,Gain error 应该是±10LSB。
offset error是可以矫正的,理论上,可以矫正到0.
实际应用中28335的精度一般是有4LSB的error。
正因为如此我个人认为,再在28335中引用2808的校正程序好像有点多余。毕竟28335出厂时已经有一个矫正数据在adc_cal()中,而真正会影响采样精度的C2000芯片各通道之间的串扰又很难解决 |