新版本公告
~~空空如也
加载中
加载中
表情图片
评为精选
鼓励
加载中...
分享
加载中...
文件下载
加载中...
好了继续更帖,PWM-ADC的调试


最初的ADC算法是 15ms的PWM延时 x 16次对折逼近 ,电压输入端口直接短接为0v,最终读数640多,7个字的读数抖动范围,这稳定性真惨。。。


为什么会这样?想不通。
尝试在16次对折逼近之后 再增加2次PWM微调逼近,也就是说在最后时刻再读取两次OP07的电压比较结果,每次微调PWM增或减一个数字。


这样优化之后,抖动范围降低到了4个字。嘿嘿有效果哎?
继续增加PWM的微调次数到4次,抖动范围还是4个字.....什么情况?增加到6次微调,也还是4个字......


遇到瓶颈了,又想不通了。折腾了一整天,尝试了各种方法,毫无收获。


然后怒接示波器,一看OP07的输出波形,真相大白。。
(此图中的电压刻度乘以10才是实际值,测量点是OP07输出电阻之后的电压,也就是74HC14的输入端,被自动钳位在-0.6到5.6v之间)
2015-01-22 比较器反应太慢,最长跳变时间长达20MS.png



OP07的输出跳变速度有快有慢,ADC过程刚开始的时候,电压区别大的时候,跳变快;到后面PWM电压越来越接近,就越来越慢了。
最慢的跳变时间都超过了20ms,都比我的PWM建立时间15ms还要慢了,只延时15ms就读OP07原来是太急了呀。


继续深入研究跳变时间,控制PWM电压在被测电压的一两个字附近调整,跳变时间居然超过了40ms.......你让我情何以堪?这么慢还怎么做ADC末位的高精度?只能是降标使用咯~~~
(此图中的电压刻度乘以10才是实际值,测量点是OP07的输出脚)
645跳到646.png








646跳到644.png



最终,为了改善PWM-ADC精度,ADC算法调整为:
在采样电容充电期间,先用STM8自带的10位ADC来预先测量电压的大概值(64次采样再求平均值)
得到低精度的内置ADC结果,保守取其8位精度,在目标电压的附近,再用PWM-ADC来进一步ADC(15ms x 8次逼近 + 60ms x 2次微调)
ADC速度为每秒2次,最终得到了抖动2个字的结果,至此,不折腾了
游客没有发表内容的权限。想参与大家的讨论?现在就 登录注册
文号 / 762743

十步芳草
名片发私信
学术分 0
总主题 4 帖总回复 65 楼拥有证书:进士 笔友
注册于 2013-08-16 12:11最后登录 2017-12-29 14:00
主体类型:个人
所属领域:无
认证方式:邮箱
IP归属地:未同步

个人简介

暂未填写
文件下载
加载中...
视频暂不能访问,请登录试试
仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。
音频暂不能访问,请登录试试
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

插入资源
全部
图片
视频
音频
附件
全部
未使用
已使用
正在上传
空空如也~
上传中..{{f.progress}}%
处理中..
上传失败,点击重试
等待中...
{{f.name}}
空空如也~
(视频){{r.oname}}
{{selectedResourcesId.indexOf(r.rid) + 1}}
处理中..
处理失败
插入表情
我的表情
共享表情
Emoji
上传
注意事项
最大尺寸100px,超过会被压缩。为保证效果,建议上传前自行处理。
建议上传自己DIY的表情,严禁上传侵权内容。
点击重试等待上传{{s.progress}}%处理中...已上传,正在处理中
空空如也~
处理中...
处理失败
加载中...
草稿箱
加载中...
此处只插入正文,如果要使用草稿中的其余内容,请点击继续创作。
{{fromNow(d.toc)}}
{{getDraftInfo(d)}}
标题:{{d.t}}
内容:{{d.c}}
继续创作
删除插入插入
插入公式
评论控制
加载中...
文号:{{pid}}
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的