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

stm32 F2 DualADC 的问题

[复制链接]
billy145533 提问时间:2014-8-13 21:55 /
 代码是从Fwlib的例子里改的
基本配置代码如下
 
  /******************************************************************************/
/*  ADCs configuration: double interleaved with 6cycles delay to reach 5Msps  */
/******************************************************************************/
 
  /* ADC Common configuration *************************************************/
  ADC_CommonInitStructure.ADC_Mode = ADC_DualMode_Interl;
  ADC_CommonInitStructure.ADC_TwoSamplingDelay = ADC_TwoSamplingDelay_8Cycles;
  ADC_CommonInitStructure.ADC_DMAAccessMode = ADC_DMAAccessMode_3;
  ADC_CommonInitStructure.ADC_Prescaler = ADC_Prescaler_Div2;
  ADC_CommonInit(&ADC_CommonInitStructure);  
  
  /* DMA mode 3 is used in interleaved mode in 6-bit or 8-bit resolutions */
  ADC_InitStructure.ADC_Resolution = ADC_Resolution_8b;//ADC_Resolution_8b;
 
  /* ADC1 regular channel 12 configuration ************************************/
  ADC_InitStructure.ADC_ScanConvMode = DISABLE;
  ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;
  ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None;   
  ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
  ADC_InitStructure.ADC_NbrOfConversion = 1;
  ADC_Init(ADC1, &ADC_InitStructure);
  /* ADC1 regular channel12 configuration */ 
  ADC_RegularChannelConfig(ADC1, ADC_Channel_1, 1, ADC_SampleTime_3Cycles);
  /* Enable ADC1 DMA */
  ADC_DMACmd(ADC1, ENABLE);  
 
  /* ADC2 regular channel 12 configuration ************************************/
  ADC_Init(ADC2, &ADC_InitStructure);
  /* ADC2 regular channel12 configuration */
  ADC_RegularChannelConfig(ADC2, ADC_Channel_1, 1, ADC_SampleTime_3Cycles);
 
  /* Enable DMA request after last transfer (multi-ADC mode) ******************/
  ADC_MultiModeDMARequestAfterLastTransferCmd(ENABLE);
 
  /* Enable ADC1 **************************************************************/
  ADC_Cmd(ADC1, ENABLE);
 
  /* Enable ADC2 **************************************************************/
  ADC_Cmd(ADC2, ENABLE);
 
  /* Start ADC1 Software Conversion */
  ADC_SoftwareStartConv(ADC1);
 
代码如上,这里  ADC_CommonInitStructure.ADC_TwoSamplingDelay 
输入信号为300k的正弦波,采样结果如图所示
黑色波形为ADC1,2的组合数据,蓝色和红色分别对应 ADC1,ADC2
如果将输入信号改为800k,那么ADC1,ADC2的差距将更加明显。另外,从图中可以看到,ADC1,ADC2的采样分辨率视乎根本没达到8位的效果
我试过ADC_TwoSamplingDelay_6Cycles,效果差不多,我使用单ADC采样,则没有问题,就是达不到我要的4M左右的AD速度
双AD inter模式本来就是为高速设计的,现在这样的结果肯定不是预期的效果,不知道问题错在哪里,请各位指教
 
 
 
QQ图片20140813213332.jpg
收藏 评论1 发布时间:2014-8-13 21:55

举报

1个回答
andrewz 回答时间:2016-10-25 08:40:33
LZ问题解决没?


st.png

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版