找回密码
 立即注册
查看: 790|回复: 7

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

[复制链接]
  • TA的每日心情
    开心
    昨天 01:23
  • 签到天数: 65 天

    [LV.6]常住居民II

    5

    主题

    39

    回帖

    456

    积分

    中级会员

    积分
    456
    发表于 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, 下载次数: 50

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

    使用道具 举报

  • TA的每日心情
    奋斗
    半小时前
  • 签到天数: 100 天

    [LV.6]常住居民II

    0

    主题

    81

    回帖

    594

    积分

    高级会员

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

    使用道具 举报

  • TA的每日心情
    开心
    昨天 01:23
  • 签到天数: 65 天

    [LV.6]常住居民II

    5

    主题

    39

    回帖

    456

    积分

    中级会员

    积分
    456
     楼主| 发表于 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;
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    5 天前
  • 签到天数: 117 天

    [LV.6]常住居民II

    0

    主题

    43

    回帖

    108

    积分

    注册会员

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

    使用道具 举报

  • TA的每日心情
    奋斗
    1 小时前
  • 签到天数: 145 天

    [LV.7]常住居民III

    8

    主题

    77

    回帖

    1000

    积分

    金牌会员

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

    使用道具 举报

    该用户从未签到

    46

    主题

    2927

    回帖

    6585

    积分

    超级版主

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

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

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 12:13
  • 签到天数: 51 天

    [LV.5]常住居民I

    2

    主题

    148

    回帖

    191

    积分

    注册会员

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

    使用道具 举报

  • TA的每日心情
    开心
    昨天 14:17
  • 签到天数: 18 天

    [LV.4]偶尔看看III

    0

    主题

    73

    回帖

    226

    积分

    中级会员

    积分
    226
    发表于 昨天 14:32 | 显示全部楼层
    学习了
    回复 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-4-30 09:28 , Processed in 0.069991 second(s), 60 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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