你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F051 ADC1采样时间和采样值稳定性设计

[复制链接]
fanhoufa 提问时间:2014-10-23 16:31 /
本帖最后由 fanhoufa 于 2014-10-23 16:37 编辑

STM32F0 如果用ADC1做AD采样8路模拟值 ,跟据资料如果设定12B的精度,时间最快是2US,如果用连续模式采样8路.16US,这样的采样值稳定吗? /* ADC1 registers reset ----------------------------------------------------*/
  ADC_DeInit(ADC1);
  /* ADC Calibration */
  ADC_GetCalibrationFactor(ADC1);  
  
  /* Enable ADC1 */
  ADC_Cmd(ADC1, ENABLE);
  /* Wait the ADRDY falg */
  while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_ADRDY));
  {
  }
  
   /* ADC1 configuration ------------------------------------------------------*/
  ADC_StructInit(&ADC_InitStructure);
  ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;  // ½ûÓÃÁ¬Ðøģʽ
          ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Left; // Êý¾Ý×ó¶ÔÆë
  ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T1_TRGO; // T1 ´¥·¨×ª»»
  ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None;//
          ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b; // 12λ¾«¶È

  ADC_InitStructure.ADC_ScanDirection = ADC_ScanDirection_Upward;// ÏòÉÏɨÃè 0-18
  ADC_Init(ADC1, &ADC_InitStructure);
  ADC_ChannelConfig(ADC1, ADC_Channel_0 | ADC_Channel_2| ADC_Channel_3  
                          | ADC_Channel_4 | ADC_Channel_5 | ADC_Channel_6| ADC_Channel_7| ADC_Channel_8,  
                          ADC_SampleTime_13_5Cycles);   
        
           ADC_GetCalibrationFactor(ADC1);                                 // ʹÄÜǰУ׼
    ADC_Cmd(ADC1, ENABLE);                                          // ʹÄÜADC1
    while(ADC_GetFlagStatus(ADC1, ADC_FLAG_ADEN) == RESET);         // µÈ ADC1ʹÄÜÍê³É
  

  ADC_OverrunModeCmd(ADC1,ENABLE); // ʹÄÜÊý¾Ý ģʽ
  
        ADC_DMACmd(ADC1, ENABLE);                                       // ʹÄÜADC_DMA
  ADC_DMARequestModeConfig(ADC1, ADC_DMAMode_Circular);           // ÅäÖÃDMAģʽΪѭ»·Ä£Ê½
  ADC_StartOfConversion(ADC1);                                    // Æô¶¯Ò»´Îת»»
1 收藏 评论2 发布时间:2014-10-23 16:31

举报

2个回答
fanhoufa 回答时间:2014-10-23 16:32:37

  /* ADC1 registers reset ----------------------------------------------------*/
  ADC_DeInit(ADC1);
  /* ADC Calibration */
  ADC_GetCalibrationFactor(ADC1);  
  
  /* Enable ADC1 */
  ADC_Cmd(ADC1, ENABLE);
  /* Wait the ADRDY falg */
  while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_ADRDY));
  {
  }
  
   /* ADC1 configuration ------------------------------------------------------*/
  ADC_StructInit(&ADC_InitStructure);
  ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;  // ½ûÓÃÁ¬Ðøģʽ
          ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Left; // Êý¾Ý×ó¶ÔÆë
  ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T1_TRGO; // T1 ´¥·¨×ª»»
  ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None;//
          ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b; // 12λ¾«¶È

  ADC_InitStructure.ADC_ScanDirection = ADC_ScanDirection_Upward;// ÏòÉÏɨÃè 0-18
  ADC_Init(ADC1, &ADC_InitStructure);
  ADC_ChannelConfig(ADC1, ADC_Channel_0 | ADC_Channel_2| ADC_Channel_3  
                          | ADC_Channel_4 | ADC_Channel_5 | ADC_Channel_6| ADC_Channel_7| ADC_Channel_8,  
                          ADC_SampleTime_13_5Cycles);   
       
           ADC_GetCalibrationFactor(ADC1);                                 // ʹÄÜǰУ׼
    ADC_Cmd(ADC1, ENABLE);                                          // ʹÄÜADC1
    while(ADC_GetFlagStatus(ADC1, ADC_FLAG_ADEN) == RESET);         // µÈ ADC1ʹÄÜÍê³É
  

  ADC_OverrunModeCmd(ADC1,ENABLE); // ʹÄÜÊý¾Ý ģʽ
  
        ADC_DMACmd(ADC1, ENABLE);                                       // ʹÄÜADC_DMA
  ADC_DMARequestModeConfig(ADC1, ADC_DMAMode_Circular);           // ÅäÖÃDMAģʽΪѭ»·Ä£Ê½
  ADC_StartOfConversion(ADC1);                                    // Æô¶¯Ò»´Îת»»
               
奔跑小蜗牛 回答时间:2014-10-31 09:32:07
stm32内部AD是逐次逼近型的,这种AD特点就是速度快,稳定一般,你单次测量AD值是不稳的,要想稳定就要添加滤波算法。要想提高分辨率,可以以过采样方式牺牲速度换取高分辨率。

 相对于逐次逼近型AD,ΔΣ型AD是转换速度慢,分辨率高,单次采样值比较稳定。

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版