数字/模拟转换模块(DAC)是12位数字输入,电压输出的数字/模拟转换器。DAC可以配置为8位或12位模式,也可以与DMA控制器配合使用。DAC工作在12位模式时,数据可以设置成左对齐或右对齐。DAC模块有2个输出通道,每个通道都有单独的转换器。在双DAC模式下,2个通道可以独立地进行转换,也可以同时进行转换并同步地更新2个通道的输出。DAC可以通过引脚输入参考电压VREF+以获得更精确的转换结果。
DAC主要特征
● 2个DAC转换器:每个转换器对应1个输出通道
● 8位或者12位单调输出
● 12位模式下数据左对齐或者右对齐
● 同步更新功能
● 噪声波形生成
● 三角波形生成
● 双DAC通道同时或者分别转换
● 每个通道都有DMA功能
● 外部触发转换
● 输入参考电压VREF+
DAC输出电压公式
数字输入经过DAC被线性地转换为模拟电压输出,其范围为0到VREF+。
任一DAC通道引脚上的输出电压满足下面的关系:
DAC输出 = VREF x (DOR / 4095)。
(一)噪声波形生成,主要程序如下
int main(void)
{
/* System Clocks Configuration */
RCC_Configuration();
/* Once the DAC channel is enabled, the corresponding GPIO pin is automatically
connected to the DAC converter. In order to avoid parasitic consumption,
the GPIO pin should be configured in analog */
GPIO_Configuration();
/* DAC channel1 Configuration */
DAC_InitStructure.DAC_Trigger = DAC_Trigger_Software;
DAC_InitStructure.DAC_WaveGeneration = DAC_WaveGeneration_Noise;
DAC_InitStructure.DAC_LFSRUnmask_TriangleAmplitude= DAC_LFSRUnmask_Bits11_0 ;//这里设置噪声幅度最大4095
DAC_InitStructure.DAC_OutputBuffer = DAC_OutputBuffer_Enable;
DAC_Init(DAC_Channel_1, &DAC_InitStructure);
/* Enable DAC Channel1: Once the DAC channel1 is enabled, PA.04 is
automatically connected to the DAC converter. */
DAC_Cmd(DAC_Channel_1, ENABLE);
/* Set DAC Channel1 DHR12L register */
DAC_SetChannel1Data(DAC_Align_12b_L, 0x0);//设置起始位置为0
while (1)
{
/* Start DAC Channel1 conversion by software */
DAC_SoftwareTriggerCmd(DAC_Channel_1, ENABLE);
}
}
我使用采集卡采集到的波形如下,噪声的分布不是高斯,是随机噪声。
(二)将上面程序稍微修改下,就能得到三角波。生成幅度0到3.3V 频率测量为183HZ,不知道为什么这么慢?????
这幅图采集到三角波频率3KHZ,幅度0.21V,下面有点失真。我再研究下,怎么使得速率提高,和生成自己想要的波形,如正旋波,锯齿波等等。
上一篇:神舟IV学习笔记(十二)IWDG独立看门狗
下一篇:神舟IV学习笔记(十)SPI存储W25X16
推荐阅读最新更新时间:2024-11-06 13:46
设计资源 培训 开发板 精华推荐
- 使用 Analog Devices 的 LT1076HVCR 的参考设计
- 【Totoro】模仿“埙”的电子吹奏乐器
- 使用 Analog Devices 的 LT3965EFE#PBF 的参考设计
- Tiny_CP2104
- AD8304-EVAL,评估板经过精心布局和测试,以展示 AD8304 的指定高速性能
- 使用 ON Semiconductor 的 LV8075LP 的参考设计
- NCP13992UHD300WGEVB:基于 GaN 的超高功率密度适配器 300W
- 使用 Analog Devices 的 RH37C 的参考设计
- 使用 ROHM Semiconductor 的 BA00BC0WT 的参考设计
- STM32F407VET6