chenjunt 发表于 2023-1-7 23:14

F429 DAC振荡

我最近用STM32F4 内部DAC读取数据,发现出现振荡严重问题,不知道一般该从哪些方面排查,我没有用任何DMA,或者中断触发DAC,只配置了简单的DAC

supernan 发表于 2023-1-7 23:16

具体配置看下

chenjunt 发表于 2023-1-7 23:18


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;

chenjunt 发表于 2023-1-7 23:21


juventus9554 发表于 2023-1-7 23:23

问题描述的不是太清楚。你的DAC设定是恒值还是变化?

supernan 发表于 2023-1-7 23:25

你说的震荡是指正弦波上叠加的小波?

juventus9554 发表于 2023-1-7 23:28

有可能是缓冲运放引起,你可以直接断开外部电路,测mcu输出波形,传一个几百欧电阻。

chenjunt 发表于 2023-1-7 23:30

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

jiajs 发表于 2023-1-7 23:33

频率太高了吧,这东西是有响应时间的

chenjunt 发表于 2023-1-7 23:35

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

chenjunt 发表于 2023-1-7 23:36

正弦波频率多少呢

chenjunt 发表于 2023-1-7 23:40

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

xxrs 发表于 2023-1-7 23:41


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

chenjunt 发表于 2023-1-7 23:43

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

shimx 发表于 2023-1-7 23:45


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

zhanghqi 发表于 2023-1-7 23:47

我用HAL库,你这库太老了

chenjunt 发表于 2023-1-7 23:48

我参考一下,因为我要测试的东西精度比较高的,测试为了方便用了DAC

chenjunt 发表于 2023-1-7 23:50

如果DAC是用软件电压比较的方式而不是硬件实现的话可能之后还要换一个硬件DAC模块

zyf部长 发表于 2023-1-7 23:53

再测试看看

chenjunt 发表于 2023-1-7 23:55

主要是想知道这个STM32内部DAC是个什么东西
页: [1] 2
查看完整版本: F429 DAC振荡