找回密码
 立即注册
查看: 1558|回复: 6

关于STC8单片机叠加精准可控三角波实现18位ADC的方案

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-05-01 09:38:35

10

主题

70

回帖

1307

积分

金牌会员

积分
1307
发表于 2023-11-28 00:18:05 | 显示全部楼层 |阅读模式
关于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




18位ADC精确电压函数产生2.zip

378.34 KB, 下载次数: 126

1 喜欢他/她就送朵鲜花吧,赠人玫瑰,手有余香!
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:365
  • 最近打卡:2025-05-01 22:23:00

0

主题

83

回帖

1126

积分

金牌会员

积分
1126
发表于 2023-11-28 09:29:45 | 显示全部楼层
向高手学习
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-05-01 09:38:35

10

主题

70

回帖

1307

积分

金牌会员

积分
1307
发表于 2023-12-1 10:27:44 | 显示全部楼层
简单来说就是在输入电压Vin上叠加了一个幅值=4LSB(最小值约=十几mV,最大值=最小值+4LSB),使用时要先检测0V时AD值,输入0V,用DMA连续测量256次AD,0V时AD值A0=256次AD值之和/4,其他电压的AD值:An=实际256次AD值之和/4-A0;
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:117
  • 最近打卡:2024-04-25 05:05:05

0

主题

43

回帖

114

积分

注册会员

积分
114
发表于 2023-12-8 10:52:59 | 显示全部楼层
向高手学习
心里装着小星星生活才能亮晶晶
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:464
  • 最近打卡:2025-04-29 08:25:45

10

主题

130

回帖

564

积分

高级会员

积分
564
发表于 2023-12-27 21:00:38 | 显示全部楼层
有没有实测
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:50
  • 最近打卡:2025-04-30 22:59:03

73

主题

5882

回帖

1万

积分

超级版主

积分
12073
发表于 2024-3-7 10:04:16 | 显示全部楼层
我的ADC过采样方案是加入三角波而不是白噪声。
三角波幅度可控,也不需要精确控制,
因为是对称叠加并且是与采样同步的,
所以三角波会在计算中被抵消(可以认为是平均值滤波)。
过采样可以增加分辨率,也可以超过16bit,

但精度取决于硬件。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:246
  • 最近打卡:2025-04-30 10:10:32

3

主题

155

回帖

537

积分

高级会员

积分
537
发表于 2024-4-8 14:16:39 | 显示全部楼层
学习了
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 02:31 , Processed in 0.157475 second(s), 94 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表