[STM32F4]

求解一下STM32F429 DAC振荡问题

[复制链接]
1932|25
手机看帖
扫描二维码
随时随地手机跟帖
gujiahui|  楼主 | 2019-1-13 14:00 | 显示全部楼层 |阅读模式
我最近用STM32F4 内部DAC读取数据,发现出现振荡严重问题,不知道一般该从哪些方面排查,我没有用任何DMA,或者中断触发DAC,只配置了简单的DAC,具体配置代码如下:
void DAC_GPIO_Config(void)
{
GPIO_InitTypeDef GPIO_InitStructure;

  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
  GPIO_Init(GPIOA,&GPIO_InitStructure);
  
}

void DAC_Config(void)
{
  DAC_InitTypeDef DAC_InitStructure;

//  DAC_GPIO_Config();
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC,ENABLE);
  DAC_InitStructure.DAC_WaveGeneration = DAC_WaveGeneration_None;
  DAC_InitStructure.DAC_Trigger = DAC_Trigger_None;
  DAC_InitStructure.DAC_OutputBuffer = DAC_OutputBuffer_Enable;
微信图片_20190113135653.jpg
gujiahui|  楼主 | 2019-1-13 14:07 | 显示全部楼层
求助

使用特权

评论回复
gujiahui|  楼主 | 2019-1-13 16:05 | 显示全部楼层
··111

使用特权

评论回复
gnaijnaoul| | 2019-1-13 20:02 | 显示全部楼层
问题描述的不是太清楚。你的DAC设定是恒值还是变化?你说的震荡是指正弦波上叠加的小波?有可能是缓冲运放引起,你可以直接断开外部电路,测mcu输出波形,传一个几百欧电阻。

使用特权

评论回复
gujiahui|  楼主 | 2019-1-14 08:56 | 显示全部楼层
gnaijnaoul 发表于 2019-1-13 20:02
问题描述的不是太清楚。你的DAC设定是恒值还是变化?你说的震荡是指正弦波上叠加的小波?有可能是缓冲运放 ...

DAC设定的是一个正弦表,是一个储存了2000个数的正弦表,用查找表内容进行DAC输出的,测试用的是开发板,振荡指的是曲线不平滑,是因为STM32内部DAC用的是比较电压+软件滤波原理吗?

使用特权

评论回复
ayb_ice| | 2019-1-14 09:00 | 显示全部楼层
频率太高了吧,这东西是有响应时间的

使用特权

评论回复
gujiahui|  楼主 | 2019-1-14 09:06 | 显示全部楼层
ayb_ice 发表于 2019-1-14 09:00
频率太高了吧,这东西是有响应时间的

啥频率 示波器上那个不是波形频率 不一样的 正弦波频率没那么大

使用特权

评论回复
ayb_ice| | 2019-1-14 09:08 | 显示全部楼层
gujiahui 发表于 2019-1-14 09:06
啥频率 示波器上那个不是波形频率 不一样的 正弦波频率没那么大

正弦波频率多少呢

使用特权

评论回复
gujiahui|  楼主 | 2019-1-14 09:10 | 显示全部楼层
ayb_ice 发表于 2019-1-14 09:08
正弦波频率多少呢

200Hz 和5Hz,做的测试,5Hz的波形都有如上的小震荡

使用特权

评论回复
ayb_ice| | 2019-1-14 09:16 | 显示全部楼层
gujiahui 发表于 2019-1-14 09:10
200Hz 和5Hz,做的测试,5Hz的波形都有如上的小震荡

这频率不高,我用5KHz,200个点都很好啊
你换个通道试试

使用特权

评论回复
gujiahui|  楼主 | 2019-1-14 09:17 | 显示全部楼层
ayb_ice 发表于 2019-1-14 09:16
这频率不高,我用5KHz,200个点都很好啊
你换个通道试试

您用了DMA吗?如果没用能看看我的配置是否有问题吗?

使用特权

评论回复
ayb_ice| | 2019-1-14 09:19 | 显示全部楼层
gujiahui 发表于 2019-1-14 09:17
您用了DMA吗?如果没用能看看我的配置是否有问题吗?

我用DMA了
你这代码不全,看不出问题

使用特权

评论回复
ayb_ice| | 2019-1-14 09:20 | 显示全部楼层
gujiahui 发表于 2019-1-14 09:17
您用了DMA吗?如果没用能看看我的配置是否有问题吗?

我用HAL库,你这库太老了

使用特权

评论回复
gujiahui|  楼主 | 2019-1-14 09:42 | 显示全部楼层
ayb_ice 发表于 2019-1-14 09:20
我用HAL库,你这库太老了

多谢,我参考一下,因为我要测试的东西精度比较高的,测试为了方便用了DAC,如果DAC是用软件电压比较的方式而不是硬件实现的话可能之后还要换一个硬件DAC模块,总之 多谢了,我在测试看看。主要是想知道这个STM32内部DAC是个什么东西,如果精度还可以的话,以后测试可以都放在内部做了

使用特权

评论回复
青春,年轻| | 2019-1-14 10:40 | 显示全部楼层
顶起

使用特权

评论回复
gujiahui|  楼主 | 2019-1-14 13:17 | 显示全部楼层

请问出现过这个现象吗?

使用特权

评论回复
xiaofei558008| | 2019-1-14 14:09 | 显示全部楼层
是不是示波器没接地呀

使用特权

评论回复
hyhjhnhg| | 2019-1-14 14:15 | 显示全部楼层
应该是哪里配置不对导致的问题,正常不应该出现这种问题的。

使用特权

评论回复
雪山飞狐D| | 2019-1-14 17:21 | 显示全部楼层
    你的IO口输出是否有电感或者电容接到地了?你先测试单点电压是否会有震荡,里面有个缓冲运放,IO口有电容的话容易出现这种震荡

使用特权

评论回复
zzdsj2| | 2019-1-16 14:30 | 显示全部楼层

使用特权

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

本版积分规则

7

主题

34

帖子

0

粉丝