MCU微课堂|CKS32F107xx DAC

cathy的头像
cathy 发布于:周一, 08/19/2024 - 09:28 ,关键词:

DAC简介

DAC(digital to analog converter)即数模转换器,它可以将数字信号转换为模拟信号。在常见的数字信号系统中,传感器信号被ADC模块把电压模拟信号转换成易于计算机存储、处理的数字信号,由计算机处理完成后,再由DAC模块转化输出电压模拟信号来驱动某些执行器件。

CKS32F107xx内部集成12位数字输入,电压输出型的DAC 模块,可以配置为8位或12位模式,也可以与DMA控制器配合使用,DAC工作在12位模式下时,数据可以设置为左对齐或右对齐。DAC模块有2个输出通道,每个通道都有单独的转换器;在双DAC模式下,2个通道可以独立地进行转换,也可以同时进行转换并同步地更新2个通道的输出;DAC可以通过引脚输入参考电压 VREF以获得更精确的转换结果。

CKS32F107xx DAC特点:

  • 两个DAC转换器:各有一个输出通道

  • 8位或12位单调输出

  • 12位模式下的左右数据对齐

  • 同步更新功能

  • 产生噪声波

  • 双DAC通道独立或同步转换

  • 每个通道都可使用DMA实现

  • 外部触发进行转换

  • 输入参考电压VREF+

CKS32F107xx DAC结构框图如下示:

1.png

图1 DAC通道模块框图

(1)VDDA和VSSA是DAC模块的供电引脚,VREF+是DAC模块的参考电压,DAC_OUTx是DAC的输出通道;当参考电压为VREF+时,DAC的输出电压是线性的(0~VREF+),12位模式下DAC输出电压计算公式如下:
  DAC_OUTx输出电压=VREF+*(DORx/4095)

(2)DAC输出是受DORx寄存器直接控制,但是不能直接往DORx寄存器写入数据,而是要通过DHRx间接传给DORx寄存器,实现对DAC输出的控制。如果未选择硬件触发,1个APB1时钟周期后,DHRx中存储的数据将自动转移到DORx寄存器;如果选择硬件触发,将在3个APB1时钟周期后进行转移;

(3)当DORx加载了DHRx内容时,模拟输出电压将在一端时间Tsetting后可用,具体取决于电源电压和模拟输出负载,可以从数据手册查到Tsetting的典型值为3us,最大值为4us,因此DAC的转换速度最快是250K左右。

DAC实验

DAC代码配置

(1)先使能GPIOA、DAC时钟;注意GPIOA对应APB2,DAC对应APB1;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE );//使能PORTA通道时钟
RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE ); //使能DAC通道时钟

(2)通道PA4配置,PA4必须配置为模拟输入,以减少寄生电流消耗;

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;     // 端口配置
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;    // 模拟输入
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_SetBits(GPIOA,GPIO_Pin_4) ;//PA.4输出高

(3)外部触发选择,如下图2,如果使用外部触发,必须在TEN2=1(DAC通道2触发使能)时设置;本实验没使用到外部触发;

DAC_InitType.DAC_Trigger=DAC_Trigger_None; //不使用触发功能 TEN1=0

2.png

图2 触发模式

(4)数据格式,可以设置单/双DAC通道、8bit/12bit、左/右对齐6种模式,如下图,本实验配置为:单ADC 12bit右对齐模式;

DAC_SetChannel1Data(DAC_Align_12b_R, 0);

3.png

图3 单DAC通道模式的数据寄存器

4.png

图4 双DAC通道模式的数据寄存器

(5)输出缓存,DAC集成了2个输出缓存,可以用来减少输出阻抗,无需外部运放即可直接驱动外部负载。每个DAC通道输出缓存可以通过设置DAC_CR寄存器的BOFFx位来使能或者关闭。注意:如果使能输出缓存,会出现输出不了0V,低电平最低只能到0.2V;本实验没有驱动实质性外部负载,故不需要配置缓存输出;

DAC_InitType.DAC_OutputBuffer=DAC_OutputBuffer_Disable; //DAC1输出缓存关闭

来源:中科芯MCU

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 8