串口终于通了...ADC是有漂移

这个结果是在EMSTM32V1上用ADC的例程得到的结果.
42;31m AD value = 0x0F41 
 AD value = 0x0F44 
 AD value = 0x0F53 
 AD value = 0x0F42 
 AD value = 0x0F44 
 AD value = 0x0F46 
 AD value = 0x0F41 
 AD value = 0x0F45 
 AD value = 0x0F44 
 AD value = 0x0F45 
 AD value = 0x0F42 
 AD value = 0x0F40 
 AD value = 0x0F42 
 AD value = 0x0F46 
 AD value = 0x0F45 
 AD value = 0x0F30 
 AD value = 0x0F41 
 AD value = 0x0F43 
 AD value = 0x0F43 
 AD value = 0x0F3C 
 AD value = 0x0F44 
 AD value = 0x0F44 
 AD value = 0x0F3B 
 AD value = 0x0F45 
 AD value = 0x0F45 
 AD value = 0x0F45 
 AD value = 0x0F45 
 AD value = 0x0F45 
 AD value = 0x0F45 
 AD value = 0x0F46 

家里没表,先来个估算吧.

假定Vref=3.30V. 12位ADC

vd1=0x0f30=3888   

v1=vd1*Vref/2^12=3888*3.3/4096=3.132421875V

vd2=0x0f46=3910

v2=vd2*Vref/2^12=3910*3.3/4096=3.150146484375V

从这个结果可以看出有近18mV的漂移~~~

当然这个没加入软件滤波...

如果外电压在15V左右采用1/5分压电路后,会有90mV的漂移~~~

没看板子的采样保持电路,所以现在没有发言权~~~
点赞  2007-12-30 14:44

看错了~~~还有个0x0f53,看来漂移还要大~~~

                                  
点赞  2007-12-30 14:46

KAO 菜农!

你保重身体哦!你家网管出去玩去了?!哈哈

关键你假设的这个3.30V 在不同板子上由于3.30V的三端的离散性,同样的外部输入还要变!

TO 圈圈同学:
ADI这样的老牌模拟公司当然啦!它的都不好,没好的了~~
点赞  2007-12-30 14:53

1/3处还不错~~~(网管让我一小时~~~)

42;31m AD value = 0x0662 
 AD value = 0x0661 
 AD value = 0x0663 
 AD value = 0x0660 
 AD value = 0x0660 
 AD value = 0x0663 
 AD value = 0x0662 
 AD value = 0x0662 
 AD value = 0x065E 
 AD value = 0x0661 
 AD value = 0x0662 
 AD value = 0x0662 
 AD value = 0x0662 
 AD value = 0x0661 
 AD value = 0x0662 
 AD value = 0x0660 
 AD value = 0x0661 
 AD value = 0x0660 
 AD value = 0x0662 
 AD value = 0x0663 
 AD value = 0x0663 
 AD value = 0x0663 
 AD value = 0x0662 
点赞  2007-12-30 14:59

谢谢~~~哈哈...1/2处也行~~~

42;31m AD value = 0x07FA 
 AD value = 0x07FB 
 AD value = 0x07FA 
 AD value = 0x07FA 
 AD value = 0x07FB 
 AD value = 0x07FB 
 AD value = 0x07F9 
 AD value = 0x07F6 
 AD value = 0x07F7 
 AD value = 0x07FA 
 AD value = 0x07F9 
 AD value = 0x07F8 
 AD value = 0x07FA 
 AD value = 0x07F8 
 AD value = 0x07F9 
 AD value = 0x07F6 
 AD value = 0x07F7 
 AD value = 0x07FE 
 AD value = 0x07FA 
点赞  2007-12-30 15:02

LED跑马

                                 TIM1 输出占空比不同的PWM,IIC放出去写EEPROM,使用最高的采用速率试试
点赞  2007-12-30 15:12

几个月前我也做过ADC的测试

  几个月前也做过ADC的测试,对于测试结果的稳定性可以感到满意。我使用的是ST官方的DEMO板,测量结果比万利的和EMBEST的DEMO板好。我在0~3.3V间,选取了不同电压等级进行测量,过些时候可以贴出来让大家参考。
点赞  2007-12-31 11:09

STM32的ADC-稳定性试验

  使用的是ST官方的STM32的DEMO板,测量的是DEMO板上的电位器电压,每次的测量结果由4次采样取平均值得到,采样时间设置为55.5 cycles。
  注:每个测量点都进行了>30秒的测量和统计,统计包括最大值、最小值和平均值。另外,每秒可以得到和统计多个测量结果,也就是说下面每个测量点的统计结果都是由上百个测量结果来的。

1)~4000
    min        4058
    max        4064
    avr        4060
2)~3000
    min        2952
    max        2956
    avr        2953
3)~2000
    min        2027
    max        2030
    avr        2028
4)~1000
    min        980
    max        982
    avr        981
5)~200
    min        216
    max        218
    avr        216
点赞  2007-12-31 13:38

STM32的ADC-稳定性试验的结论

  根据楼上的测量试验,对照STM32 ADC的特性参数(Rev.4),可以相信它的
Total unadjusted error的典型值能达到3。
  说明,ST官方的STM32的DEMO板在VDDA和Vref+的电路连接为:VDD经过LC滤波接VDDA,L估计是10uH数量级,C为10uF并联10nF;VDDA经过RC滤波接Vref+,R为47欧,C为10nF。由此可见,ST官方的STM32的DEMO板用料更好些,但也没什么特别设计。
点赞  2007-12-31 14:11

ijk 这试验效果真不错

不是用USB 供电的?

关于STM32的AD的设计,我也发了些噪声,呵呵,其实我的主要看法是在没有外接ref的情况下(非100Pin的),由于在板的时候,供电的3.3V一般是三端,这个三端本身的离散性是要考虑的,而不是针对一块板上本身的离散性,是生产时,由于不同板子上的3.3V(基准)完全可能有3%的离散性,那么对于外部输入的信号在不同板上转换结果将有3%的离散性。
点赞  2007-12-31 14:15

哦 VDDA 有LC! 呵呵

                                 这就是老牌帝国主义和新兴力量的差距哈!
点赞  2007-12-31 14:20

关于STM32的VDDA 有LC

                                   上面提到STM32官方DEMO板的VDDA 有LC滤波,但需要说明的是,使用的L实际上是很低廉的贴片封装的,尺寸可能是0603或0805,成本或许也就1毛钱人民币,并不希奇,呵呵
点赞  2007-12-31 15:08

qihao

由于不同板子上的3.3V(基准)完全可能有3%的离散性,那么对于外部输入的信号在不同板上转换结果将有3%的离散性。
-------------qihao:这个好办,其实采样值都是相对值,还没考虑零漂,温漂,可以用软件重新整定,这个工作可以在设备完成后来做,设备完成后,在软件上加一个系统整定界面,设备外加允许输入的最大信号(标准信号源)这个测试的对应采样值就和外加标准信号的物理量对应起来了,然后找到零信号(输入端短接)对应的采样值,知道了满量程和零点的采样值,那么每个采样点对应的物理量就清楚了,至于温漂的整定,可以用补偿的方法。
点赞  2007-12-31 15:14

ijk:你那里买的板子?多少钱?

                                  
点赞  2007-12-31 15:21

STM32官方DEMO板的电源部分线路图

完整的线路图可在ST网站下载:http://www.st.com/stonline/products/literature/um/13472.pdf
点赞  2007-12-31 15:23

建议楼主的问题还是要多些思考深入分析的好

STM32的12BIT ADC自身实际上是非常棒,可以负责任的说STM32自带的ADC实际上比大部分独立的12BIT ADC还要好,楼主说的数据跳动大的问题,还得具体问题具体分析。
     就我个人实地使用的情况,我用的板子是ST公司的评估版(ST网站上可以下到该板的PROTEL文件),电路板是四层板,板上有一个电位器可以来测试ADC,我在实地测试ADC的数据是非常稳定的,数据基本上是恒定的跳动不会超过1LSB的!用2根杜邦线引出ADC输入引脚和AGND引脚,直接去测量一节电池的电压,数值也是非常稳定的,变动也是不超过正负1LSB,实在是非常了不起的。对比之下我用12bit 的MAX1284这个独立ADC都得有2~3LSB,
    我在我发过的STM32做的示波器的帖子里有ADC采样的图形曲线
点赞  2008-1-2 21:38

补充下,

绿色的那根线就是测试评估板上可调电位器输出的电压,可以看到直线是非常平直,非常稳定的的。读数跳动不会大于1LSB。
    看了楼上几位的数据,跟我这边的实验结果还是有很大差距的。个人觉得估计还是跟电源以及布线有很大关系,ST的官方评估板的布线水平还是相当高的,值得学习
点赞  2008-1-2 21:47

可能是4层板的关系!

                                 这个显示程序是你做的?做得不错!是.net的吧,C# ?,不像是VC的~!
点赞  2008-1-2 23:10

to 00:

ADI 的ARM内置的ADC是12bit分辨率和12bit精度的,当然很好的啦
一般集成的达不到的...
点赞  2008-1-3 14:05

回40楼:

    程序是.NET的,用C#2005写的。个人认为如果要开发.NET的程序的话,最好还是用C#来做,用C++来开发.NET应用的话,感觉相对C#并没有什么优势,C#是.NET最佳的搭档,C#本身就是专门为.NET平台而度身定做。
     不过好像基于.NET的程序好像性能要比传统MFC的程序差些,同样的绘图程序用.NET开发的和用MFC做的相比CPU利用率要高不少,在老PIII850笔记本上.NET的要到60%,MFC的则不足30%。不过在双核的机器上好像始终都是零
点赞  2008-1-3 19:32
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复