首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

STM32 F1 系列 DAC 的示例详解

STM32 F1 系列 DAC 的示例详解


前言


基于学习的目的详细讲解关于 Cube 库中的 DAC 的功能。本次介绍 DAC


一、示例详解


基于硬件平台STM32F10C-EVALMCU 的型号是 STM32F107VCT6


软件则是其 Cube路径


STM32Cube\Repository\STM32Cube_FW_F1_V1.3.0\Projects\STM3210C_EVAL\Examples\DAC\DAC_SignalsGeneration


1、主程序


软件配置运行程序可以发现系统时钟设置为 72MHz定时器使用到的是 TIM6;










根据时钟树的图谱及其程序 该示例选择的是内部时钟源作为定时器的时钟源TIM6 的时钟源来自 APB1 的分频。














AHB 时钟 (HCLK) RCC_CFGR 寄存器中的分频系数 HPRE 的值为 0 SYSCLK not divided/1所以 HCLK 就是72MHz
APB1 prescaler 的系数是 PPRE10x4HCLK divided 2/2APB1CLK 36MHz由于 APB1 prescaler 系数部
分频/4所以倍频器起作用即为上图中的 TIMxCLK = 72Mhz




2、 定时器 Tim6










设置的是向上计数周期是 0x7FF(2047),0 开始计数到 2047,所以该定时器的更新周期:(2047+1/72 = 28us,






所以传输的 6 个数值







对于8位的DAC程序中设定的是右对齐


所以对应的DOR分别为

0x0000, 0x330816, 0x6601632, 0x9902448, 0xCC03264, 0xFF04080 ;

Vref = 3.3V, 所以

Vdac 分别等于也是约在 0V; 0.66V; 1.32V; 1.98V; 2.64V; 3.3V 之间


3、阶梯波形










对于阶梯波形比较简单

就是上述的 6 个数值每个 28us 触发 DMA 传输一次到 DOR 的寄存器

所以测得的实际波形(6 个梯阶电压分别 0V; 0.66V; 1.32V; 1.98V; 2.64V; 3.3V 周期 28*6 = 168us);
融创芯城(一站式供应链)
平台网址:http://www.digiic.com
电子技术群:499391543
返回列表