Stm32F1 Dac 全解分析
存在疑问
- VREF 能不能大于VDDA
- 允许同步更新是什么意思
- 输出缓存原理和具体影响
DAC简介
主要特点:
简单介绍:
DAC整体框图
名称 | 符 | 注释 |
---|---|---|
模拟电源,输入 | VDDA | 模拟电源正极 |
模拟电源地,输入 | VSSA | 模拟电源地 |
正参考电压,输入 | VREF+ | 正参考电压:2.4V – VDDA(3.3V) |
模拟电压输出,输出 | DAC_OUTX | X通道模拟输出 |
外部中断线9 | EXTI_9 | 外部中断触发 |
定时器中断 | TIMX_TRGO | 定时器中断触发 |
软件触发 | SWTRGX | 通过软件置1 |
数据保持寄存器 | DHRX | 存储转换数据 |
数据输出寄存器 | DORX | DHRX 自动或者触发后传入该寄存器 |
控制寄存器 | DAC_CRX | 控制DAC转换状态,TSEL等均属于本寄存器 |
DAC数据格式
Stm32 支持8位和12位转换
触发方式
触发方式有定时器触发、外部事件触发和软件触发
其中软件触发和无触发时,数据从DHR->DOR仅需1个APB时钟,其他方式均需3个APB时钟
软件触发会自动清零,只需关心何时置‘1’
噪声
三角波
设置WAVEx[1:0]位为’10’选择DAC的三角波生成功能。设置DAC_CR寄存器的MAMPx[3:0]位来选择三角波的幅度。内部的三角波计数器每次触发事件之后3个APB1时钟周期后累加1。计数器的值与DAC_DHRx寄存器的数值相加并丢弃溢出位后写入DAC_DORx寄存器。在传入DAC_DORx寄存器的数值小于MAMP[3:0]位定义的最大幅度时,三角波计数器逐步累加。一旦达到设置的最大幅度,则计数器开始递减,达到0后再开始累加,周而复始。 将WAVEx[1:0]位置’0’可以复位三角波的生成。
可知:频率需要MAMP、TIM共同改变。
单通道函数配置
函数配置流程图
波形输出函数图
注:图中为定时器触发
寄存器和库函数见此
直接输出
直接输出需要配置I/O口,参考手册要求配置成模拟输入
配置DAC_CRX寄存器,详细函数内容
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!