- 打卡等级:以坛为家II
- 打卡总天数:415
- 最近打卡:2025-05-01 09:38:35
金牌会员
- 积分
- 1307
|
关于STC8单片机叠加精准可控三角波实现18位ADC的方案
梁工16位过采样方案是加入白噪声,由于白噪声幅值不可控,会带来比较大误差,16位时误差已经很大了,
为了得到精度更高18位ADC,本方案采取叠加精准可控三角波,具体方案如下:
1、单片机产生15位PWM通过4级低通滤波加运算放大器做电压跟随得到可控电压信号。
2、1产生的电压通过RC充放电得到占空比80%,电压可以精准控制的三角波,三角波幅度需要精准控制到4倍LSB。
3、2产生的三角波经过反相器得到负三角波。
4、通过运放减法器将要检测的电压Vin与3产生的负三角波相减得到Vout再用单片机ADC检测。
说明:
1、12位AD,4900mV参考电压,分辨率=4900/4095=1.1963mV
4倍=4.785mV,30MHz单片机用DMA可做到ADC频率=30000/26/2=576.923KHz,
256次采样频率=576.923K/256=2.2536KHz,80%PWM,采样频率=2.2536KHz*80%
=1.80288KHZ
要产生三角波为:幅值4.785mV,频率1.80288KHZ,占空比80%;
每次ADC采样64*4=256次,可达18位精度。
需要3个IO口,1个AD口,1个15位PWM,1个频率1.80288KHZ80%PWM口。
2、18位精度,幅值4.785mV校准:测内部1.19v,上升沿ADC一共检测256次,
4倍LSB,每1LSB检测64次,下降沿不用。上升沿开始时用DMA检测AD256次,取中间AD值统计次数n,
如果三角波幅值=4.785mV时,有n=64,为了准确连测10次n相加和为m。如果m不等于640,
取PWM新=PWM旧*m/640,延时400ms等稳定后再校准,重复直到m=640±2;m越接近640越准确。
3、为了保证精度4级低通滤波RC比较大,三角波需要400ms才稳定,三角波稳定后,待检测电压Vin
是通过运放与三角波相减,很快就能够稳定不需要额外稳定时间,理论上检测频率可以达到1.80288KHZ。
4、三角波的最低电压设置为十几mv,当检测电压Vin=0时,ADC实际检测电压为十几mv,
规避了ADC在0mv附近不准确问题。
5、下面是仿真图:
file:///C:/Users/Administrator/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg
file:///C:/Users/Administrator/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg
|
1
喜欢他/她就送朵鲜花吧,赠人玫瑰,手有余香!
-
+1
楼主威武~
|