STM32G4系列之DAC

发布于:2024-07-01 ⋅ 阅读:(18) ⋅ 点赞:(0)

一、STM32G4单片机有几个DAC外设?

STM32G4单片机共有4个DAC,两个为低速DAC(采样率1MHz),两个为高速DAC(采样率15MHz)。共包括7个通道,3个外部通道和4个内部通道。
三个外部DAC包括DAC1和DAC2,其可以映射到外部管脚,供自由使用。其中DAC1的输出管脚有两个DAC1_CH1(PA4管脚)
和DAC1_CH2(PA5管脚)。DAC2有一个输出管脚DAC2_CH1(PA6管脚)。  

二、STM32G4单片机DAC的最大输出频率?

STM32G4单片机外部DAC的采样率1MSPS;内部DAC的采样率15MSPS。实测单片机采用下列方法三,正弦波输出速率最大200KHz。

三、STM32G4单片机的DAC输出驱动能力?

其最小负载电阻5kΩ。

四、STM32G4的DAC模块调用方法:

方法一:输出固定直流电压

1.1CubeMx设置:

在这里插入图片描述

1.2生成的代码如下:

在这里插入图片描述

1.3主函数中需要调用的函数:

在这里插入图片描述

方法二:使用“内置三角波”产生三角波

STM32G4系列的DAC可以直接产生三角波,只需要配合定时器使用,定时器定时更新事件触发DAC进行电压输出。不需要设置定时器的中断函数。

2.1 CubeMx设置:

在这里插入图片描述

Trigger 选项选择Timer6;Wave generation选择 Triangle wave。
Maximum Triangle Amplitude 可自由选择。代表三角波的增加幅度。 
****备注:**TIM6触发时,每次定时触发,DAC的值增加1,直到到达Maximum Triangle 	Amplitude。然后DAC的值定时依次减1,周期循环。**

在这里插入图片描述

 Trigger Event Select 选择Update Event。

2.2生成的代码如下:

在这里插入图片描述

2.3主函数中调用如下:

在这里插入图片描述

方法三:采用DAC+TIMER+DMA自由产生正弦波或三角波

采用方法二只能输出三角波,且输出三角波的Vpp是一些固定值,而且,其输出的三角波频率只有几k。分析原因是方法二是定时触发时,DAC的值+1,导致信号频率低。
方法三的原理:定时器定时触发DAC外设,DAC外设通过DMA定时传输设置电压值,DAC更新电压值产生正弦波信号。

3.1 CubeMx设置:

在这里插入图片描述

DAC设置中Wave generation 改为disable。其实是产生直流信号。

定时器的设置仍旧保持不变即可,如下。

在这里插入图片描述

3.2生成的代码如下:

在这里插入图片描述

3.3主函数中代码:

在这里插入图片描述

实测方法三产生的三角波频率最大可达200KHz,方法二产生的频率一般为2KHz左右。