打印

ADC采集的数据怎么那么不准

[复制链接]
6299|26
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yjf1979yjf|  楼主 | 2009-2-10 19:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在他的AD上外部接了干电池, 我把电压调整到2.8V,采样250次后 我看数据, 发现数据 从3470----3420 的数据都有,真的叫人郁闷 请问香主 他的误差有那么大么.
我把电路贴出来, 不知道那位采的数据精确点啊
沙发
yjf1979yjf|  楼主 | 2009-2-10 19:40 | 只看该作者

我再贴下程序

   RCC_ADCCLKConfig(RCC_PCLK2_Div8);
   RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
                          
     
   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOC 
                           RCC_APB2Periph_ADC1,   ENABLE);   
 RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);
   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|   
                                 GPIO_Pin_6; 
   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
   GPIO_Init(GPIOA, &GPIO_InitStructure); 

   ADC_DeInit(ADC1);
   ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;                    //ADC1 configuration
   ADC_InitStructure.ADC_ScanConvMode = ENABLE;
   ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;
   ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T4_CC4;
   ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
   ADC_InitStructure.ADC_NbrOfChannel = 6;
   ADC_Init(ADC1, &ADC_InitStructure); 
  
   for (cnt = 0; cnt < 6; cnt++) {
       ADC_RegularChannelConfig(ADC1, Adc_ChallArr[cnt], cnt+1, ADC_SampleTime_13Cycles5); //ADC1 regular channelx configuration 
  } 
  // ADC int  dma and trugle source enable ------------------------------//                                                 
  /* Enable ADC1 */
  ADC_Cmd(ADC1, ENABLE);                                                 // Enable ADC1 DMA  
  ADC_ExternalTrigConvCmd(ADC1, ENABLE);                                 //Enable ADC1 external trigger  
                                                 // Enable ADC1 
  
  //ADC Calibration model------------------------------------------------//
  ADC_ResetCalibration(ADC1);                                            // Enable ADC1 reset calibaration register 
  while(ADC_GetResetCalibrationStatus(ADC1));                            //Check the end of ADC1 reset calibration register 
  ADC_StartCalibration(ADC1);                                            //tart ADC1 calibaration 
  while(ADC_GetCalibrationStatus(ADC1));                                 //Check the end of ADC1 calibration 

使用特权

评论回复
板凳
mohanwei| | 2009-2-10 20:13 | 只看该作者

用示波器看一下VDDA和VREF……然后看一下信号

布线布局情况未知,不好说。不过一般说来ADC只跳变2bit是很容易做到的

使用特权

评论回复
地板
香水城| | 2009-2-10 21:05 | 只看该作者

注意VDDA和VREF+上的滤波电容应尽可能地靠近芯片

同时要保证VDDA和VREF+上的电压稳定。

使用特权

评论回复
5
yjf1979yjf|  楼主 | 2009-2-11 08:56 | 只看该作者

我贴下PCB

使用特权

评论回复
6
yjf1979yjf|  楼主 | 2009-2-11 14:52 | 只看该作者

怎么没人回答

使用特权

评论回复
7
ST_ARM| | 2009-2-11 16:25 | 只看该作者

Vdd和Vdda的差值最好小于0.3V

使用特权

评论回复
8
yjf1979yjf|  楼主 | 2009-2-11 17:10 | 只看该作者

我使用 的TL431 输出的是3.3V

使用特权

评论回复
9
香水城| | 2009-2-11 17:38 | 只看该作者

AD脚输入阻抗如何?

我4楼引用的帖子就是TL431线路没搞好。

使用特权

评论回复
10
ijk| | 2009-2-12 08:18 | 只看该作者

STM32的AD没那么难

可以用示波器测量单片机的模拟电源和输入脚 的纹波,建议用交流档测。

使用特权

评论回复
11
yjgyiy| | 2009-2-12 08:28 | 只看该作者

没看到AD端怎样接的

逐次逼近型模拟数字转换器

必需在输入端接个电容

我的当时也是不准,后来AD端接了个10nF的电容后就准了

使用特权

评论回复
12
yjgyiy| | 2009-2-12 10:58 | 只看该作者

TO 楼上

不好意思
不班不能QQ

可以在信号的输出端加10nF电容

不是10NF

使用特权

评论回复
13
ijk| | 2009-2-12 11:19 | 只看该作者

AD输入端接个电容

  AD输入端(或者信号的输出端)接个小电容,只是在信号是直流或者接近直流时才这么做,否则信号就被小电容滤掉了。
  对于很多AD(包括STM32的AD)来说,这个小电容不是必须的。

使用特权

评论回复
14
yjf1979yjf|  楼主 | 2009-2-12 15:03 | 只看该作者

bu 不接小电容的话 就是测直流都跳的很很厉害

使用特权

评论回复
15
yjf1979yjf|  楼主 | 2009-2-12 15:43 | 只看该作者

IJK 可以加我么

帮我看看板子  给点指导啊

使用特权

评论回复
16
ijk| | 2009-2-13 11:26 | 只看该作者

测直流

  曾经在ST的官方板子(STM3210B)上面测过直流,就是测10k电位器的电压(电位器的输出应该没有接电容),效果挺好:
1)~4000
    min        4058
    max        4064
2)~3000
    min        2952
    max        2956
3)~2000
    min        2027
    max        2030
4)~1000
    min        980
    max        982
5)<100
    min        51
    max        52
从结果来看, ADC转换的结果挺稳定 (ADC转换结果取了 4次的平均)

使用特权

评论回复
17
ijk| | 2009-2-13 11:30 | 只看该作者

注意事项

  STM32的AD使用注意事项,上面已经说了很多了,没什么好多说的。

使用特权

评论回复
18
yjgyiy| | 2009-2-13 12:42 | 只看该作者

to:ijk

曾经在ST的官方板子(STM3210B)…… 

ST的官方板子上面是有个电容的

使用特权

评论回复
19
yjf1979yjf|  楼主 | 2009-2-13 15:20 | 只看该作者

上面明显的有电容

使用特权

评论回复
20
yjf1979yjf|  楼主 | 2009-2-13 15:23 | 只看该作者

你看板子图

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

103

帖子

0

粉丝