原创 ADuc7026学习-DAC

2015-1-9 14:07 1453 14 14 分类: 消费电子

                                                                   ADuc7026学习-DAC


              这次我们来学习如何使用ADuc7026上的DAC,7026上共有四个12位的DAC,每个DAC都有三个可选电压输出范围:0V至
V REF (内部带隙2.5V基准电压源) 、 0V至DAC REF 、 0V至AV DD 。 DAC REF 为DAC的外部基准源,使用外部基准源的时候,需要在DACref引脚接一个0.47uf的电容到地,信号范围为0至AV DD 。

              与 DAC相关的寄存器共有三个,分别是 REFCON、DACxCON(x=0,1,2,3)、DACxDAT(x=0,1,2,3),其中

1. REFCON 是一个八位的寄存器,在使用DAC/ADC 的时候我们只使用到它的最低位。也就是 REFCON 寄存器的最低位置 1 为内部2.5V 基准电压源接在 V ref 上,基准电压源可用于外部元件,但需要增加缓冲(在Vref引脚上用一个0.47uf的电容接到GND); 清 0为内部 2.5V 基准电压源断开与 V REF 管脚的连接。

2. DACxCON(x=0,1,2,3) 是用来配置 DAC 的工作方式的,它也是一个八位的寄存器,其中 7~6 保留, 第 5 位是选择 DAC 的更新速率。置 1,通过定时器 1更新 DAC 。清 0 ,使用 HCLK (内核时钟)更新 DAC 。第 4 位是 DAC 清 0 位。置 1 , DAC 正常操作使能。 清 0 , 复位 DAC 数据寄存器为 0 。3 ~2 保留。这两位保持为 0 。

1~0  控制DAC 输出范围
00  掉电模式。 DAC 输出为三态。
01  0 至 DAC REF
10  0 至 V REF ( 2.5V )
11  0 至 AV DD

3.DACxDAT(x=0,1,2,3) 是一个32位的寄存器,通过对它写入我们的数字量,然后 DAC 转换成相应的模拟量,它的高四位和底16位保
留,使用 27~16 这十二个位。

好,现在我们来看下具体的编程

#include

int main(void)
{
        while(1)
        {        
                REFCON=0x01;                         //打开内部2.5V基准电压
                //不使用内部2.5V基准源的时候,不用配置 REFCON 寄存器
                DAC0CON = 0x12;                         //使用内部核时钟更新DAC,输出范围0-2.5v        
                //DAC0CON = 0x11;                         //使用内部核时钟更新DAC,使用外部基准源,输出范围0-DACref,
                //DAC0CON = 0x13;                         //使用内部核时钟更新DAC,使用电源电压作为基准源,输出范围0-AVdd        
                DAC0DAT = 0x08000000;         //设置DAC输出模拟电压值
                while(1);
        }        
}


这样便可以使用 DAC 输出一个与 0x800 相对应的模拟电压了,DAC的使用就这么简单。
             

文章评论0条评论)

登录后参与讨论
我要评论
0
14
关闭 站长推荐上一条 /2 下一条