一、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左右。